diff options
author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2010-06-30 03:47:56 +0000 |
---|---|---|
committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2010-06-30 03:47:56 +0000 |
commit | ec0115c9b7b34613fef4cd439fddcd584ebe99af (patch) | |
tree | 01f12ced591cb8bf0b70671480f4817c10af23d3 /llvm/lib | |
parent | 5364655e02d051ed7acab56ef0f66c0fe3586621 (diff) | |
download | bcm5719-llvm-ec0115c9b7b34613fef4cd439fddcd584ebe99af.tar.gz bcm5719-llvm-ec0115c9b7b34613fef4cd439fddcd584ebe99af.zip |
Add AVX SSE2 packed integer shuffle instructions
llvm-svn: 107245
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/X86/X86InstrSSE.td | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrSSE.td b/llvm/lib/Target/X86/X86InstrSSE.td index 305fb5016dc..e0a058b3bf4 100644 --- a/llvm/lib/Target/X86/X86InstrSSE.td +++ b/llvm/lib/Target/X86/X86InstrSSE.td @@ -2672,6 +2672,20 @@ def mi : Ii8<0x70, MRMSrcMem, } } // ExeDomain = SSEPackedInt +let isAsmParserOnly = 1, Predicates = [HasAVX, HasSSE2] in { + let AddedComplexity = 5 in + defm VPSHUFD : sse2_pshuffle<"vpshufd", v4i32, pshufd, bc_v4i32>, OpSize, + VEX; + + // SSE2 with ImmT == Imm8 and XS prefix. + defm VPSHUFHW : sse2_pshuffle<"vpshufhw", v8i16, pshufhw, bc_v8i16>, XS, + VEX; + + // SSE2 with ImmT == Imm8 and XD prefix. + defm VPSHUFLW : sse2_pshuffle<"vpshuflw", v8i16, pshuflw, bc_v8i16>, XD, + VEX; +} + let Predicates = [HasSSE2] in { let AddedComplexity = 5 in defm PSHUFD : sse2_pshuffle<"pshufd", v4i32, pshufd, bc_v4i32>, TB, OpSize; |