}
} // 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;
// 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
+
// 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
+