diff options
Diffstat (limited to 'llvm/lib/Target/SystemZ/SystemZISelLowering.h')
| -rw-r--r-- | llvm/lib/Target/SystemZ/SystemZISelLowering.h | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZISelLowering.h b/llvm/lib/Target/SystemZ/SystemZISelLowering.h index 0ac07a12ab7..defcaa6eb6e 100644 --- a/llvm/lib/Target/SystemZ/SystemZISelLowering.h +++ b/llvm/lib/Target/SystemZ/SystemZISelLowering.h @@ -58,8 +58,7 @@ enum NodeType : unsigned { ICMP, // Floating-point comparisons. The two operands are the values to compare. - // Regular and strict (quiet and signaling) versions. - FCMP, STRICT_FCMP, STRICT_FCMPS, + FCMP, // Test under mask. The first operand is ANDed with the second operand // and the condition codes are set on the result. The third operand is @@ -249,10 +248,9 @@ enum NodeType : unsigned { // Compare floating-point vector operands 0 and 1 to produce the usual 0/-1 // vector result. VFCMPE is for "ordered and equal", VFCMPH for "ordered and // greater than" and VFCMPHE for "ordered and greater than or equal to". - // Regular and strict (quiet and signaling) versions. - VFCMPE, STRICT_VFCMPE, STRICT_VFCMPES, - VFCMPH, STRICT_VFCMPH, STRICT_VFCMPHS, - VFCMPHE, STRICT_VFCMPHE, STRICT_VFCMPHES, + VFCMPE, + VFCMPH, + VFCMPHE, // Likewise, but also set the condition codes on the result. VFCMPES, @@ -263,12 +261,12 @@ enum NodeType : unsigned { VFTCI, // Extend the even f32 elements of vector operand 0 to produce a vector - // of f64 elements. Regular and strict versions. - VEXTEND, STRICT_VEXTEND, + // of f64 elements. + VEXTEND, // Round the f64 elements of vector operand 0 to f32s and store them in the - // even elements of the result. Regular and strict versions. - VROUND, STRICT_VROUND, + // even elements of the result. + VROUND, // AND the two vector operands together and set CC based on the result. VTM, @@ -292,6 +290,24 @@ enum NodeType : unsigned { // Operand 1: the bit mask TDC, + // Strict variants of scalar floating-point comparisons. + // Quiet and signaling versions. + STRICT_FCMP = ISD::FIRST_TARGET_STRICTFP_OPCODE, + STRICT_FCMPS, + + // Strict variants of vector floating-point comparisons. + // Quiet and signaling versions. + STRICT_VFCMPE, + STRICT_VFCMPH, + STRICT_VFCMPHE, + STRICT_VFCMPES, + STRICT_VFCMPHS, + STRICT_VFCMPHES, + + // Strict variants of VEXTEND and VROUND. + STRICT_VEXTEND, + STRICT_VROUND, + // Wrappers around the inner loop of an 8- or 16-bit ATOMIC_SWAP or // ATOMIC_LOAD_<op>. // |

