mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-18 01:17:46 +00:00
Add the rest of AVX SSE4.1 packed move with sign/zero extend instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107723 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e6fd5ad6f4
commit
ee94e8297e
@ -4370,6 +4370,17 @@ multiclass SS41I_binop_rm_int4<bits<8> opc, string OpcodeStr, Intrinsic IntId> {
|
||||
OpSize;
|
||||
}
|
||||
|
||||
let isAsmParserOnly = 1, Predicates = [HasAVX, HasSSE41] in {
|
||||
defm VPMOVSXBD : SS41I_binop_rm_int4<0x21, "vpmovsxbd", int_x86_sse41_pmovsxbd>,
|
||||
VEX;
|
||||
defm VPMOVSXWQ : SS41I_binop_rm_int4<0x24, "vpmovsxwq", int_x86_sse41_pmovsxwq>,
|
||||
VEX;
|
||||
defm VPMOVZXBD : SS41I_binop_rm_int4<0x31, "vpmovzxbd", int_x86_sse41_pmovzxbd>,
|
||||
VEX;
|
||||
defm VPMOVZXWQ : SS41I_binop_rm_int4<0x34, "vpmovzxwq", int_x86_sse41_pmovzxwq>,
|
||||
VEX;
|
||||
}
|
||||
|
||||
defm PMOVSXBD : SS41I_binop_rm_int4<0x21, "pmovsxbd", int_x86_sse41_pmovsxbd>;
|
||||
defm PMOVSXWQ : SS41I_binop_rm_int4<0x24, "pmovsxwq", int_x86_sse41_pmovsxwq>;
|
||||
defm PMOVZXBD : SS41I_binop_rm_int4<0x31, "pmovzxbd", int_x86_sse41_pmovzxbd>;
|
||||
@ -4400,6 +4411,12 @@ multiclass SS41I_binop_rm_int2<bits<8> opc, string OpcodeStr, Intrinsic IntId> {
|
||||
OpSize;
|
||||
}
|
||||
|
||||
let isAsmParserOnly = 1, Predicates = [HasAVX, HasSSE41] in {
|
||||
defm VPMOVSXBQ : SS41I_binop_rm_int2<0x22, "vpmovsxbq", int_x86_sse41_pmovsxbq>,
|
||||
VEX;
|
||||
defm VPMOVZXBQ : SS41I_binop_rm_int2<0x32, "vpmovzxbq", int_x86_sse41_pmovzxbq>,
|
||||
VEX;
|
||||
}
|
||||
defm PMOVSXBQ : SS41I_binop_rm_int2<0x22, "pmovsxbq", int_x86_sse41_pmovsxbq>;
|
||||
defm PMOVZXBQ : SS41I_binop_rm_int2<0x32, "pmovzxbq", int_x86_sse41_pmovzxbq>;
|
||||
|
||||
|
@ -11998,3 +11998,51 @@
|
||||
// CHECK: encoding: [0xc4,0xe2,0x79,0x35,0x10]
|
||||
vpmovzxdq (%eax), %xmm2
|
||||
|
||||
// CHECK: vpmovsxbq %xmm2, %xmm5
|
||||
// CHECK: encoding: [0xc4,0xe2,0x79,0x22,0xea]
|
||||
vpmovsxbq %xmm2, %xmm5
|
||||
|
||||
// CHECK: vpmovsxbq (%eax), %xmm2
|
||||
// CHECK: encoding: [0xc4,0xe2,0x79,0x22,0x10]
|
||||
vpmovsxbq (%eax), %xmm2
|
||||
|
||||
// CHECK: vpmovzxbq %xmm2, %xmm5
|
||||
// CHECK: encoding: [0xc4,0xe2,0x79,0x32,0xea]
|
||||
vpmovzxbq %xmm2, %xmm5
|
||||
|
||||
// CHECK: vpmovzxbq (%eax), %xmm2
|
||||
// CHECK: encoding: [0xc4,0xe2,0x79,0x32,0x10]
|
||||
vpmovzxbq (%eax), %xmm2
|
||||
|
||||
// CHECK: vpmovsxbd %xmm2, %xmm5
|
||||
// CHECK: encoding: [0xc4,0xe2,0x79,0x21,0xea]
|
||||
vpmovsxbd %xmm2, %xmm5
|
||||
|
||||
// CHECK: vpmovsxbd (%eax), %xmm2
|
||||
// CHECK: encoding: [0xc4,0xe2,0x79,0x21,0x10]
|
||||
vpmovsxbd (%eax), %xmm2
|
||||
|
||||
// CHECK: vpmovsxwq %xmm2, %xmm5
|
||||
// CHECK: encoding: [0xc4,0xe2,0x79,0x24,0xea]
|
||||
vpmovsxwq %xmm2, %xmm5
|
||||
|
||||
// CHECK: vpmovsxwq (%eax), %xmm2
|
||||
// CHECK: encoding: [0xc4,0xe2,0x79,0x24,0x10]
|
||||
vpmovsxwq (%eax), %xmm2
|
||||
|
||||
// CHECK: vpmovzxbd %xmm2, %xmm5
|
||||
// CHECK: encoding: [0xc4,0xe2,0x79,0x31,0xea]
|
||||
vpmovzxbd %xmm2, %xmm5
|
||||
|
||||
// CHECK: vpmovzxbd (%eax), %xmm2
|
||||
// CHECK: encoding: [0xc4,0xe2,0x79,0x31,0x10]
|
||||
vpmovzxbd (%eax), %xmm2
|
||||
|
||||
// CHECK: vpmovzxwq %xmm2, %xmm5
|
||||
// CHECK: encoding: [0xc4,0xe2,0x79,0x34,0xea]
|
||||
vpmovzxwq %xmm2, %xmm5
|
||||
|
||||
// CHECK: vpmovzxwq (%eax), %xmm2
|
||||
// CHECK: encoding: [0xc4,0xe2,0x79,0x34,0x10]
|
||||
vpmovzxwq (%eax), %xmm2
|
||||
|
||||
|
@ -2046,4 +2046,51 @@ pshufb CPI1_0(%rip), %xmm1
|
||||
// CHECK: encoding: [0xc4,0x62,0x79,0x35,0x20]
|
||||
vpmovzxdq (%rax), %xmm12
|
||||
|
||||
// CHECK: vpmovsxbq %xmm12, %xmm10
|
||||
// CHECK: encoding: [0xc4,0x42,0x79,0x22,0xd4]
|
||||
vpmovsxbq %xmm12, %xmm10
|
||||
|
||||
// CHECK: vpmovsxbq (%rax), %xmm12
|
||||
// CHECK: encoding: [0xc4,0x62,0x79,0x22,0x20]
|
||||
vpmovsxbq (%rax), %xmm12
|
||||
|
||||
// CHECK: vpmovzxbq %xmm12, %xmm10
|
||||
// CHECK: encoding: [0xc4,0x42,0x79,0x32,0xd4]
|
||||
vpmovzxbq %xmm12, %xmm10
|
||||
|
||||
// CHECK: vpmovzxbq (%rax), %xmm12
|
||||
// CHECK: encoding: [0xc4,0x62,0x79,0x32,0x20]
|
||||
vpmovzxbq (%rax), %xmm12
|
||||
|
||||
// CHECK: vpmovsxbd %xmm12, %xmm10
|
||||
// CHECK: encoding: [0xc4,0x42,0x79,0x21,0xd4]
|
||||
vpmovsxbd %xmm12, %xmm10
|
||||
|
||||
// CHECK: vpmovsxbd (%rax), %xmm12
|
||||
// CHECK: encoding: [0xc4,0x62,0x79,0x21,0x20]
|
||||
vpmovsxbd (%rax), %xmm12
|
||||
|
||||
// CHECK: vpmovsxwq %xmm12, %xmm10
|
||||
// CHECK: encoding: [0xc4,0x42,0x79,0x24,0xd4]
|
||||
vpmovsxwq %xmm12, %xmm10
|
||||
|
||||
// CHECK: vpmovsxwq (%rax), %xmm12
|
||||
// CHECK: encoding: [0xc4,0x62,0x79,0x24,0x20]
|
||||
vpmovsxwq (%rax), %xmm12
|
||||
|
||||
// CHECK: vpmovzxbd %xmm12, %xmm10
|
||||
// CHECK: encoding: [0xc4,0x42,0x79,0x31,0xd4]
|
||||
vpmovzxbd %xmm12, %xmm10
|
||||
|
||||
// CHECK: vpmovzxbd (%rax), %xmm12
|
||||
// CHECK: encoding: [0xc4,0x62,0x79,0x31,0x20]
|
||||
vpmovzxbd (%rax), %xmm12
|
||||
|
||||
// CHECK: vpmovzxwq %xmm12, %xmm10
|
||||
// CHECK: encoding: [0xc4,0x42,0x79,0x34,0xd4]
|
||||
vpmovzxwq %xmm12, %xmm10
|
||||
|
||||
// CHECK: vpmovzxwq (%rax), %xmm12
|
||||
// CHECK: encoding: [0xc4,0x62,0x79,0x34,0x20]
|
||||
vpmovzxwq (%rax), %xmm12
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user