diff options
-rw-r--r-- | llvm/lib/Target/X86/X86InstrFragmentsSIMD.td | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td b/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td index 670af0d1b46..2ec730c5f0d 100644 --- a/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td +++ b/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td @@ -140,42 +140,38 @@ def X86trunc : SDNode<"X86ISD::TRUNC", SDTypeProfile<1, 1, [SDTCisInt<0>, SDTCisInt<1>, SDTCisOpSmallerThanOp<0, 1>]>>; def X86vfpext : SDNode<"X86ISD::VFPEXT", - SDTypeProfile<1, 1, [SDTCisVec<0>, SDTCisVec<1>, - SDTCisFP<0>, SDTCisFP<1>, - SDTCisOpSmallerThanOp<1, 0>]>>; + SDTypeProfile<1, 1, [SDTCVecEltisVT<0, f64>, + SDTCVecEltisVT<1, f32>, + SDTCisSameSizeAs<0, 1>]>>; def X86vfpround: SDNode<"X86ISD::VFPROUND", - SDTypeProfile<1, 1, [SDTCisVec<0>, SDTCisVec<1>, - SDTCisFP<0>, SDTCisFP<1>, - SDTCisOpSmallerThanOp<0, 1>]>>; + SDTypeProfile<1, 1, [SDTCVecEltisVT<0, f32>, + SDTCVecEltisVT<1, f64>, + SDTCisSameSizeAs<0, 1>]>>; def X86fround: SDNode<"X86ISD::VFPROUND", SDTypeProfile<1, 2, [SDTCVecEltisVT<0, f32>, SDTCisSameAs<0, 1>, SDTCVecEltisVT<2, f64>, - SDTCisSameSizeAs<0, 2>, - SDTCisOpSmallerThanOp<0, 2>]>>; + SDTCisSameSizeAs<0, 2>]>>; def X86froundRnd: SDNode<"X86ISD::VFPROUND", SDTypeProfile<1, 3, [SDTCVecEltisVT<0, f32>, SDTCisSameAs<0, 1>, SDTCVecEltisVT<2, f64>, SDTCisSameSizeAs<0, 2>, - SDTCisOpSmallerThanOp<0, 2>, - SDTCisInt<3>]>>; + SDTCisVT<3, i32>]>>; def X86fpext : SDNode<"X86ISD::VFPEXT", SDTypeProfile<1, 2, [SDTCVecEltisVT<0, f64>, SDTCisSameAs<0, 1>, SDTCVecEltisVT<2, f32>, - SDTCisSameSizeAs<0, 2>, - SDTCisOpSmallerThanOp<2, 0>]>>; + SDTCisSameSizeAs<0, 2>]>>; def X86fpextRnd : SDNode<"X86ISD::VFPEXT", SDTypeProfile<1, 3, [SDTCVecEltisVT<0, f64>, SDTCisSameAs<0, 1>, SDTCVecEltisVT<2, f32>, SDTCisSameSizeAs<0, 2>, - SDTCisOpSmallerThanOp<2, 0>, - SDTCisInt<3>]>>; + SDTCisVT<3, i32>]>>; def X86vshldq : SDNode<"X86ISD::VSHLDQ", SDTIntShiftOp>; def X86vshrdq : SDNode<"X86ISD::VSRLDQ", SDTIntShiftOp>; |