enum CmpInst::Predicate

Description

This enumeration lists the possible predicates for CmpInst subclasses. Values in the range 0-31 are reserved for FCmpInst, while values in the range 32-64 are reserved for ICmpInst. This is necessary to ensure the predicate values are not overlapping between the classes. Some passes (e.g. InstCombine) depend on the bit-wise characteristics of FCMP_* values. Changing the bit patterns requires a potential change to those passes.

Declared at: llvm/include/llvm/IR/InstrTypes.h:719

Enumerators

NameValueComment
FCMP_FALSE00 0 0 0 Always false (always folded)
FCMP_OEQ10 0 0 1 True if ordered and equal
FCMP_OGT20 0 1 0 True if ordered and greater than
FCMP_OGE30 0 1 1 True if ordered and greater than or equal
FCMP_OLT40 1 0 0 True if ordered and less than
FCMP_OLE50 1 0 1 True if ordered and less than or equal
FCMP_ONE60 1 1 0 True if ordered and operands are unequal
FCMP_ORD70 1 1 1 True if ordered (no nans)
FCMP_UNO81 0 0 0 True if unordered: isnan(X) | isnan(Y)
FCMP_UEQ91 0 0 1 True if unordered or equal
FCMP_UGT101 0 1 0 True if unordered or greater than
FCMP_UGE111 0 1 1 True if unordered, greater than, or equal
FCMP_ULT121 1 0 0 True if unordered or less than
FCMP_ULE131 1 0 1 True if unordered, less than, or equal
FCMP_UNE141 1 1 0 True if unordered or not equal
FCMP_TRUE151 1 1 1 Always true (always folded)
FIRST_FCMP_PREDICATE0
LAST_FCMP_PREDICATE15
BAD_FCMP_PREDICATE16
ICMP_EQ32equal
ICMP_NE33not equal
ICMP_UGT34unsigned greater than
ICMP_UGE35unsigned greater or equal
ICMP_ULT36unsigned less than
ICMP_ULE37unsigned less or equal
ICMP_SGT38signed greater than
ICMP_SGE39signed greater or equal
ICMP_SLT40signed less than
ICMP_SLE41signed less or equal
FIRST_ICMP_PREDICATE32
LAST_ICMP_PREDICATE41
BAD_ICMP_PREDICATE42