mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-05 23:52:45 +00:00
Add AVX SSE4.1 blend, mpsadbw and vdp
llvm-svn: 107560
This commit is contained in:
parent
2ab712f212
commit
ca99012ac0
@ -4190,6 +4190,8 @@ multiclass SS48I_binop_rm<bits<8> opc, string OpcodeStr, SDNode OpNode,
|
||||
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>;
|
||||
|
||||
@ -4220,6 +4222,23 @@ multiclass SS41I_binop_rmi_int<bits<8> opc, string OpcodeStr,
|
||||
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>;
|
||||
|
@ -11870,3 +11870,60 @@
|
||||
// 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
|
||||
|
||||
|
||||
|
@ -1918,3 +1918,59 @@ pshufb CPI1_0(%rip), %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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user