Comparison condition codes for SETCC and related SelectionDAG nodes.
Synopsis
Declared in <llvm/CodeGen/ISDOpcodes.h>
enum CondCode;
Description
These are ordered carefully to make the bitfields below work out, when considering SETFALSE (something that never exists dynamically) as 0. "U" ‐> Unsigned (for integer operands) or Unordered (for floating point), "L" ‐> Less than, "G" ‐> Greater than, "E" ‐> Equal to. If the "N" column is 1, the result of the comparison is undefined if the input is a NAN.
All of these (except for the 'always folded ops') should be handled for floating point. For integer, only the SETEQ,SETNE,SETLT,SETLE,SETGT, SETGE,SETULT,SETULE,SETUGT, and SETUGE opcodes are used.
Note that these are laid out in a specific order to allow bit‐twiddling to transform conditions.
Members
Name |
Description |
|
Always false (always folded). |
|
True if ordered and equal. |
|
True if ordered and greater than. |
|
True if ordered and greater than or equal. |
|
True if ordered and less than. |
|
True if ordered and less than or equal. |
|
True if ordered and operands are unequal. |
|
True if ordered (no nans). |
|
True if unordered: isnan(X) | isnan(Y). |
|
True if unordered or equal. |
|
True if unordered or greater than. |
|
True if unordered, greater than, or equal. |
|
True if unordered or less than. |
|
True if unordered, less than, or equal. |
|
True if unordered or not equal. |
|
Always true (always folded). |
|
Always false (always folded); NaN behavior don't‐care. |
|
True if equal; NaN behavior don't‐care. |
|
True if greater than; NaN behavior don't‐care. |
|
True if greater than or equal; NaN behavior don't‐care. |
|
True if less than; NaN behavior don't‐care. |
|
True if less than or equal; NaN behavior don't‐care. |
|
True if not equal; NaN behavior don't‐care. |
|
Always true (always folded); NaN behavior don't‐care. |
|
Marker value for an invalid or unrepresentable condition code. |
Non-Member Functions
Name |
Description |
Return the SetCC opcode equivalent to X op1 Y) & (X op2 Y. |
|
Return the operation corresponding to !(X op Y), where 'op' is a valid SetCC operation. |
|
Return the SetCC opcode equivalent to X op1 Y) | (X op2 Y. |
|
Return the operation corresponding to (Y op X) when given the operation for (X op Y). |
|
Classify how |
|
Return true if this is a setcc instruction that performs an equality comparison when used with floating point operands. |
|
Return true if this is a setcc instruction that performs an equality comparison when used with integer operands. |
|
Return true if this is a setcc instruction that performs a signed comparison when used with integer operands. |
|
Return true if |
|
Return true if this is a setcc instruction that performs an unsigned comparison when used with integer operands. |
|
Return the SetCC opcode for !(X op Y) under GlobalISel type rules. |
|
getFCmpCodeWithoutNaN ‐ Given an ISD condition code comparing floats, return the equivalent code if we're allowed to assume that NaNs won't occur. |
|
Return the ISD condition code for an LLVM IR floating‐point predicate. |
|
getICmpCondCode ‐ Return the ISD condition code corresponding to the given LLVM IR integer condition code. |
|
getICmpCondCode ‐ Return the LLVM IR integer condition code corresponding to the given ISD integer condition code. |
|
|
Match any conditional code SDNode and return its ISD::CondCode value. |
|
Match a conditional code SDNode with a specific ISD::CondCode. |
Created with MrDocs