forked from OSchip/llvm-project
Add AVX SSE2 packed integer shuffle instructions
llvm-svn: 107245
This commit is contained in:
parent
5364655e02
commit
ec0115c9b7
|
@ -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;
|
||||
|
|
|
@ -11394,3 +11394,27 @@
|
|||
// CHECK: encoding: [0xc5,0xe9,0x67,0x18]
|
||||
vpackuswb (%eax), %xmm2, %xmm3
|
||||
|
||||
// CHECK: vpshufd $4, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xf9,0x70,0xda,0x04]
|
||||
vpshufd $4, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vpshufd $4, (%eax), %xmm3
|
||||
// CHECK: encoding: [0xc5,0xf9,0x70,0x18,0x04]
|
||||
vpshufd $4, (%eax), %xmm3
|
||||
|
||||
// CHECK: vpshufhw $4, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xfa,0x70,0xda,0x04]
|
||||
vpshufhw $4, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vpshufhw $4, (%eax), %xmm3
|
||||
// CHECK: encoding: [0xc5,0xfa,0x70,0x18,0x04]
|
||||
vpshufhw $4, (%eax), %xmm3
|
||||
|
||||
// CHECK: vpshuflw $4, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xfb,0x70,0xda,0x04]
|
||||
vpshuflw $4, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vpshuflw $4, (%eax), %xmm3
|
||||
// CHECK: encoding: [0xc5,0xfb,0x70,0x18,0x04]
|
||||
vpshuflw $4, (%eax), %xmm3
|
||||
|
||||
|
|
|
@ -1434,3 +1434,27 @@ pshufb CPI1_0(%rip), %xmm1
|
|||
// CHECK: encoding: [0xc5,0x19,0x67,0x28]
|
||||
vpackuswb (%rax), %xmm12, %xmm13
|
||||
|
||||
// CHECK: vpshufd $4, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x79,0x70,0xec,0x04]
|
||||
vpshufd $4, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vpshufd $4, (%rax), %xmm13
|
||||
// CHECK: encoding: [0xc5,0x79,0x70,0x28,0x04]
|
||||
vpshufd $4, (%rax), %xmm13
|
||||
|
||||
// CHECK: vpshufhw $4, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x7a,0x70,0xec,0x04]
|
||||
vpshufhw $4, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vpshufhw $4, (%rax), %xmm13
|
||||
// CHECK: encoding: [0xc5,0x7a,0x70,0x28,0x04]
|
||||
vpshufhw $4, (%rax), %xmm13
|
||||
|
||||
// CHECK: vpshuflw $4, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x7b,0x70,0xec,0x04]
|
||||
vpshuflw $4, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vpshuflw $4, (%rax), %xmm13
|
||||
// CHECK: encoding: [0xc5,0x7b,0x70,0x28,0x04]
|
||||
vpshuflw $4, (%rax), %xmm13
|
||||
|
||||
|
|
Loading…
Reference in New Issue