summaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86InstrFragmentsSIMD.td
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2012-04-16 00:12:20 +0000
committerCraig Topper <craig.topper@gmail.com>2012-04-16 00:12:20 +0000
commitca9ee66e3641c9c56b43dfcddf9c5a1cce91e5ae (patch)
tree54d9188028cc88616c1e1961acef66e7f81a4acb /lib/Target/X86/X86InstrFragmentsSIMD.td
parent095c528f30a07f5f7819448ec4f144623239eca8 (diff)
downloadllvm-ca9ee66e3641c9c56b43dfcddf9c5a1cce91e5ae.tar.gz
llvm-ca9ee66e3641c9c56b43dfcddf9c5a1cce91e5ae.tar.bz2
llvm-ca9ee66e3641c9c56b43dfcddf9c5a1cce91e5ae.tar.xz
Fix SDTypeProfile for vpermps. The mask operand should be v8i32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154781 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrFragmentsSIMD.td')
-rw-r--r--lib/Target/X86/X86InstrFragmentsSIMD.td6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/Target/X86/X86InstrFragmentsSIMD.td b/lib/Target/X86/X86InstrFragmentsSIMD.td
index c61ca4659e..0215480b8f 100644
--- a/lib/Target/X86/X86InstrFragmentsSIMD.td
+++ b/lib/Target/X86/X86InstrFragmentsSIMD.td
@@ -124,6 +124,8 @@ def SDTShuff2OpI : SDTypeProfile<1, 2, [SDTCisVec<0>,
SDTCisSameAs<0,1>, SDTCisInt<2>]>;
def SDTShuff3OpI : SDTypeProfile<1, 3, [SDTCisVec<0>, SDTCisSameAs<0,1>,
SDTCisSameAs<0,2>, SDTCisInt<3>]>;
+def SDTVPermv : SDTypeProfile<1, 2, [SDTCisVec<0>, SDTCisVT<1, v8i32>,
+ SDTCisSameAs<0,2>]>;
def SDTVBroadcast : SDTypeProfile<1, 1, [SDTCisVec<0>]>;
def SDTBlend : SDTypeProfile<1, 3, [SDTCisVec<0>, SDTCisSameAs<0,1>,
@@ -155,8 +157,8 @@ def X86Unpckl : SDNode<"X86ISD::UNPCKL", SDTShuff2Op>;
def X86Unpckh : SDNode<"X86ISD::UNPCKH", SDTShuff2Op>;
def X86VPermilp : SDNode<"X86ISD::VPERMILP", SDTShuff2OpI>;
-def X86VPermd : SDNode<"X86ISD::VPERMD", SDTShuff2Op>;
-def X86VPermps : SDNode<"X86ISD::VPERMPS", SDTShuff2Op>;
+def X86VPermd : SDNode<"X86ISD::VPERMD", SDTVPermv>;
+def X86VPermps : SDNode<"X86ISD::VPERMPS", SDTVPermv>;
def X86VPermq : SDNode<"X86ISD::VPERMQ", SDTShuff2OpI>;
def X86VPermpd : SDNode<"X86ISD::VPERMPD", SDTShuff2OpI>;