diff options
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/SystemZ/SystemZISelLowering.h | 36 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.h | 20 |
2 files changed, 40 insertions, 16 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>. // diff --git a/llvm/lib/Target/X86/X86ISelLowering.h b/llvm/lib/Target/X86/X86ISelLowering.h index 16b076e85af..f48bacd1391 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.h +++ b/llvm/lib/Target/X86/X86ISelLowering.h @@ -79,9 +79,6 @@ namespace llvm { /// X86 compare and logical compare instructions. CMP, COMI, UCOMI, - /// X86 strict FP compare instructions. - STRICT_FCMP, STRICT_FCMPS, - /// X86 bit-test instructions. BT, @@ -325,7 +322,6 @@ namespace llvm { // Vector packed double/float comparison. CMPP, - STRICT_CMPP, // Vector integer comparisons. PCMPEQ, PCMPGT, @@ -338,7 +334,6 @@ namespace llvm { /// Vector comparison generating mask bits for fp and /// integer signed and unsigned data types. CMPM, - STRICT_CMPM, // Vector comparison with SAE for FP values CMPM_SAE, @@ -506,7 +501,6 @@ namespace llvm { // Vector float/double to signed/unsigned integer with truncation. CVTTP2SI, CVTTP2UI, CVTTP2SI_SAE, CVTTP2UI_SAE, - STRICT_CVTTP2SI, STRICT_CVTTP2UI, // Scalar float/double to signed/unsigned integer with truncation. CVTTS2SI, CVTTS2UI, CVTTS2SI_SAE, CVTTS2UI_SAE, @@ -605,6 +599,20 @@ namespace llvm { // For avx512-vp2intersect VP2INTERSECT, + /// X86 strict FP compare instructions. + STRICT_FCMP = ISD::FIRST_TARGET_STRICTFP_OPCODE, + STRICT_FCMPS, + + // Vector packed double/float comparison. + STRICT_CMPP, + + /// Vector comparison generating mask bits for fp and + /// integer signed and unsigned data types. + STRICT_CMPM, + + // Vector float/double to signed/unsigned integer with truncation. + STRICT_CVTTP2SI, STRICT_CVTTP2UI, + // Compare and swap. LCMPXCHG_DAG = ISD::FIRST_TARGET_MEMORY_OPCODE, LCMPXCHG8_DAG, |

