In reply to Ravi Nagadia:
In reply to dave_59:
In LRM :: The =?= and !?= operators treat X or Z as wild cards that match any value, thus, they too never result in X.
The LRM does not say that. It does say
The == and != operators may result in x if any of their operands contains an X or Z. The**===** and !== operators explicitly check for 4-state values; therefore, X and Z values shall either match or mismatch, never resulting in X. The ==? and !=? operators may result in X if the left operand contains an x or Z that is not being compared with a wildcard in the right operand.
An X in a conditional if statement is treated as false.