diff options
| author | Craig Topper <craig.topper@gmail.com> | 2016-05-09 05:34:14 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2016-05-09 05:34:14 +0000 |
| commit | a5d0bf5c36a19a802e3e63514d86fac45de9a905 (patch) | |
| tree | 12c2576aaaedb73843549e5a1b5e4faaaba4b8e4 /llvm/lib | |
| parent | a58abd1cc6ef0cd84c08e196dbd4cbf132a83eb1 (diff) | |
| download | bcm5719-llvm-a5d0bf5c36a19a802e3e63514d86fac45de9a905.tar.gz bcm5719-llvm-a5d0bf5c36a19a802e3e63514d86fac45de9a905.zip | |
[X86] Strengthen some type contraints for floating point round and extend.
llvm-svn: 268892
Diffstat (limited to 'llvm/lib')
| -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>; |

