Some predicates, can be considered the same as long as the operands are flipped. For example, a > b gives the same result as b > a. This maps instructions in a greater than form, to their appropriate less than form, swapping the operands in the IRInstructionData only, allowing for more flexible matching.
Tests:
- llvm/test/Transforms/IROutliner/outlining-isomorphic-predicates.ll
- llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp