Before floating point relations were added, we tried to sanitize value-relation records to not include non-sensensical records... ie x != x or x < x.   Instead, we made a VREL_VARYING record with no operands. When floating point relation support was added, some of these were no longer non-sensical, AND we expanded the use of value_relation records into GORI shortly thereafter. As a result, this sanitization is no longer needed, nor desired. The Oracle does not create records with op1 == op2 already, so its only within GORI that these records can exist, and we shouldn't try to interpret them. The bug occurs because the "sanitized" records doesn't set op1 and op2, and changes the relation to VARYING..  and we expected the operands it to be set the way they were specified.  We should not be setting a VREL_VARYING record if asked to set something else.  In fact, we are missing some opportunities because we are trying to FP range-ops that op1 != op1  but its getting transformed into a VREL_VARYING record and not communicated properly. Currently bootstrapping on x86_64-pc-linux-gnu and assuming no regressions, OK for trunk? Andrew