Skip to content
This repository was archived by the owner on Mar 28, 2020. It is now read-only.

Commit 3c29a69

Browse files
committed
[X86] Strengthen some type contraints for floating point round and extend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268892 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 63eccc2 commit 3c29a69

File tree

1 file changed

+10
-14
lines changed

1 file changed

+10
-14
lines changed

lib/Target/X86/X86InstrFragmentsSIMD.td

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -140,42 +140,38 @@ def X86trunc : SDNode<"X86ISD::TRUNC",
140140
SDTypeProfile<1, 1, [SDTCisInt<0>, SDTCisInt<1>,
141141
SDTCisOpSmallerThanOp<0, 1>]>>;
142142
def X86vfpext : SDNode<"X86ISD::VFPEXT",
143-
SDTypeProfile<1, 1, [SDTCisVec<0>, SDTCisVec<1>,
144-
SDTCisFP<0>, SDTCisFP<1>,
145-
SDTCisOpSmallerThanOp<1, 0>]>>;
143+
SDTypeProfile<1, 1, [SDTCVecEltisVT<0, f64>,
144+
SDTCVecEltisVT<1, f32>,
145+
SDTCisSameSizeAs<0, 1>]>>;
146146
def X86vfpround: SDNode<"X86ISD::VFPROUND",
147-
SDTypeProfile<1, 1, [SDTCisVec<0>, SDTCisVec<1>,
148-
SDTCisFP<0>, SDTCisFP<1>,
149-
SDTCisOpSmallerThanOp<0, 1>]>>;
147+
SDTypeProfile<1, 1, [SDTCVecEltisVT<0, f32>,
148+
SDTCVecEltisVT<1, f64>,
149+
SDTCisSameSizeAs<0, 1>]>>;
150150

151151
def X86fround: SDNode<"X86ISD::VFPROUND",
152152
SDTypeProfile<1, 2, [SDTCVecEltisVT<0, f32>,
153153
SDTCisSameAs<0, 1>,
154154
SDTCVecEltisVT<2, f64>,
155-
SDTCisSameSizeAs<0, 2>,
156-
SDTCisOpSmallerThanOp<0, 2>]>>;
155+
SDTCisSameSizeAs<0, 2>]>>;
157156
def X86froundRnd: SDNode<"X86ISD::VFPROUND",
158157
SDTypeProfile<1, 3, [SDTCVecEltisVT<0, f32>,
159158
SDTCisSameAs<0, 1>,
160159
SDTCVecEltisVT<2, f64>,
161160
SDTCisSameSizeAs<0, 2>,
162-
SDTCisOpSmallerThanOp<0, 2>,
163-
SDTCisInt<3>]>>;
161+
SDTCisVT<3, i32>]>>;
164162

165163
def X86fpext : SDNode<"X86ISD::VFPEXT",
166164
SDTypeProfile<1, 2, [SDTCVecEltisVT<0, f64>,
167165
SDTCisSameAs<0, 1>,
168166
SDTCVecEltisVT<2, f32>,
169-
SDTCisSameSizeAs<0, 2>,
170-
SDTCisOpSmallerThanOp<2, 0>]>>;
167+
SDTCisSameSizeAs<0, 2>]>>;
171168

172169
def X86fpextRnd : SDNode<"X86ISD::VFPEXT",
173170
SDTypeProfile<1, 3, [SDTCVecEltisVT<0, f64>,
174171
SDTCisSameAs<0, 1>,
175172
SDTCVecEltisVT<2, f32>,
176173
SDTCisSameSizeAs<0, 2>,
177-
SDTCisOpSmallerThanOp<2, 0>,
178-
SDTCisInt<3>]>>;
174+
SDTCisVT<3, i32>]>>;
179175

180176
def X86vshldq : SDNode<"X86ISD::VSHLDQ", SDTIntShiftOp>;
181177
def X86vshrdq : SDNode<"X86ISD::VSRLDQ", SDTIntShiftOp>;

0 commit comments

Comments
 (0)