OpSize;
}
+let isAsmParserOnly = 1, Predicates = [HasAVX, HasSSE41] in
+ defm VPMULLD : SS48I_binop_rm<0x40, "vpmulld", mul, v4i32, 0>, VEX_4V;
let Constraints = "$src1 = $dst" in
defm PMULLD : SS48I_binop_rm<0x40, "pmulld", mul, v4i32>;
OpSize;
}
+let isAsmParserOnly = 1, Predicates = [HasAVX, HasSSE41] in {
+ let isCommutable = 0 in {
+ defm VBLENDPS : SS41I_binop_rmi_int<0x0C, "vblendps", int_x86_sse41_blendps,
+ 0>, VEX_4V;
+ defm VBLENDPD : SS41I_binop_rmi_int<0x0D, "vblendpd", int_x86_sse41_blendpd,
+ 0>, VEX_4V;
+ defm VPBLENDW : SS41I_binop_rmi_int<0x0E, "vpblendw", int_x86_sse41_pblendw,
+ 0>, VEX_4V;
+ defm VMPSADBW : SS41I_binop_rmi_int<0x42, "vmpsadbw", int_x86_sse41_mpsadbw,
+ 0>, VEX_4V;
+ }
+ defm VDPPS : SS41I_binop_rmi_int<0x40, "vdpps", int_x86_sse41_dpps,
+ 0>, VEX_4V;
+ defm VDPPD : SS41I_binop_rmi_int<0x41, "vdppd", int_x86_sse41_dppd,
+ 0>, VEX_4V;
+}
+
let Constraints = "$src1 = $dst" in {
let isCommutable = 0 in {
defm BLENDPS : SS41I_binop_rmi_int<0x0C, "blendps", int_x86_sse41_blendps>;
// CHECK: encoding: [0xc4,0xe2,0x69,0x28,0x18]
vpmuldq (%eax), %xmm2, %xmm3
+// CHECK: vpmulld %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0x40,0xca]
+ vpmulld %xmm2, %xmm5, %xmm1
+
+// CHECK: vpmulld (%eax), %xmm5, %xmm3
+// CHECK: encoding: [0xc4,0xe2,0x51,0x40,0x18]
+ vpmulld (%eax), %xmm5, %xmm3
+
+// CHECK: vblendps $3, %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x0c,0xca,0x03]
+ vblendps $3, %xmm2, %xmm5, %xmm1
+
+// CHECK: vblendps $3, (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x0c,0x08,0x03]
+ vblendps $3, (%eax), %xmm5, %xmm1
+
+// CHECK: vblendpd $3, %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x0d,0xca,0x03]
+ vblendpd $3, %xmm2, %xmm5, %xmm1
+
+// CHECK: vblendpd $3, (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x0d,0x08,0x03]
+ vblendpd $3, (%eax), %xmm5, %xmm1
+
+// CHECK: vpblendw $3, %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x0e,0xca,0x03]
+ vpblendw $3, %xmm2, %xmm5, %xmm1
+
+// CHECK: vpblendw $3, (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x0e,0x08,0x03]
+ vpblendw $3, (%eax), %xmm5, %xmm1
+
+// CHECK: vmpsadbw $3, %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x42,0xca,0x03]
+ vmpsadbw $3, %xmm2, %xmm5, %xmm1
+
+// CHECK: vmpsadbw $3, (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x42,0x08,0x03]
+ vmpsadbw $3, (%eax), %xmm5, %xmm1
+
+// CHECK: vdpps $3, %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x40,0xca,0x03]
+ vdpps $3, %xmm2, %xmm5, %xmm1
+
+// CHECK: vdpps $3, (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x40,0x08,0x03]
+ vdpps $3, (%eax), %xmm5, %xmm1
+
+// CHECK: vdppd $3, %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x41,0xca,0x03]
+ vdppd $3, %xmm2, %xmm5, %xmm1
+
+// CHECK: vdppd $3, (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x41,0x08,0x03]
+ vdppd $3, (%eax), %xmm5, %xmm1
+
+
// CHECK: encoding: [0xc4,0x62,0x19,0x28,0x28]
vpmuldq (%rax), %xmm12, %xmm13
+// CHECK: vpmulld %xmm12, %xmm5, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x51,0x40,0xdc]
+ vpmulld %xmm12, %xmm5, %xmm11
+
+// CHECK: vpmulld (%rax), %xmm5, %xmm13
+// CHECK: encoding: [0xc4,0x62,0x51,0x40,0x28]
+ vpmulld (%rax), %xmm5, %xmm13
+
+// CHECK: vblendps $3, %xmm12, %xmm5, %xmm11
+// CHECK: encoding: [0xc4,0x43,0x51,0x0c,0xdc,0x03]
+ vblendps $3, %xmm12, %xmm5, %xmm11
+
+// CHECK: vblendps $3, (%rax), %xmm5, %xmm11
+// CHECK: encoding: [0xc4,0x63,0x51,0x0c,0x18,0x03]
+ vblendps $3, (%rax), %xmm5, %xmm11
+
+// CHECK: vblendpd $3, %xmm12, %xmm5, %xmm11
+// CHECK: encoding: [0xc4,0x43,0x51,0x0d,0xdc,0x03]
+ vblendpd $3, %xmm12, %xmm5, %xmm11
+
+// CHECK: vblendpd $3, (%rax), %xmm5, %xmm11
+// CHECK: encoding: [0xc4,0x63,0x51,0x0d,0x18,0x03]
+ vblendpd $3, (%rax), %xmm5, %xmm11
+
+// CHECK: vpblendw $3, %xmm12, %xmm5, %xmm11
+// CHECK: encoding: [0xc4,0x43,0x51,0x0e,0xdc,0x03]
+ vpblendw $3, %xmm12, %xmm5, %xmm11
+
+// CHECK: vpblendw $3, (%rax), %xmm5, %xmm11
+// CHECK: encoding: [0xc4,0x63,0x51,0x0e,0x18,0x03]
+ vpblendw $3, (%rax), %xmm5, %xmm11
+
+// CHECK: vmpsadbw $3, %xmm12, %xmm5, %xmm11
+// CHECK: encoding: [0xc4,0x43,0x51,0x42,0xdc,0x03]
+ vmpsadbw $3, %xmm12, %xmm5, %xmm11
+
+// CHECK: vmpsadbw $3, (%rax), %xmm5, %xmm11
+// CHECK: encoding: [0xc4,0x63,0x51,0x42,0x18,0x03]
+ vmpsadbw $3, (%rax), %xmm5, %xmm11
+
+// CHECK: vdpps $3, %xmm12, %xmm5, %xmm11
+// CHECK: encoding: [0xc4,0x43,0x51,0x40,0xdc,0x03]
+ vdpps $3, %xmm12, %xmm5, %xmm11
+
+// CHECK: vdpps $3, (%rax), %xmm5, %xmm11
+// CHECK: encoding: [0xc4,0x63,0x51,0x40,0x18,0x03]
+ vdpps $3, (%rax), %xmm5, %xmm11
+
+// CHECK: vdppd $3, %xmm12, %xmm5, %xmm11
+// CHECK: encoding: [0xc4,0x43,0x51,0x41,0xdc,0x03]
+ vdppd $3, %xmm12, %xmm5, %xmm11
+
+// CHECK: vdppd $3, (%rax), %xmm5, %xmm11
+// CHECK: encoding: [0xc4,0x63,0x51,0x41,0x18,0x03]
+ vdppd $3, (%rax), %xmm5, %xmm11
+