mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-24 08:33:39 +00:00
[SKX] Deriving rmb multiclasses from general one (avx512_icmp_packed_rmb and avx512_icmp_cc_rmb).
Thanks Adam Nemet for notice about this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218051 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cf5bea8e4a
commit
262d57d578
@ -1054,7 +1054,8 @@ multiclass avx512_icmp_packed<bits<8> opc, string OpcodeStr, SDNode OpNode,
|
||||
}
|
||||
|
||||
multiclass avx512_icmp_packed_rmb<bits<8> opc, string OpcodeStr, SDNode OpNode,
|
||||
X86VectorVTInfo _> {
|
||||
X86VectorVTInfo _> :
|
||||
avx512_icmp_packed<opc, OpcodeStr, OpNode, _> {
|
||||
let mayLoad = 1 in {
|
||||
def rmb : AVX512BI<opc, MRMSrcMem,
|
||||
(outs _.KRC:$dst), (ins _.RC:$src1, _.ScalarMemOp:$src2),
|
||||
@ -1114,15 +1115,11 @@ defm VPCMPEQW : avx512_icmp_packed_vl<0x75, "vpcmpeqw", X86pcmpeqm,
|
||||
avx512vl_i16_info, HasBWI>,
|
||||
EVEX_CD8<16, CD8VF>;
|
||||
|
||||
defm VPCMPEQD : avx512_icmp_packed_vl<0x76, "vpcmpeqd", X86pcmpeqm,
|
||||
avx512vl_i32_info, HasAVX512>,
|
||||
avx512_icmp_packed_rmb_vl<0x76, "vpcmpeqd", X86pcmpeqm,
|
||||
defm VPCMPEQD : avx512_icmp_packed_rmb_vl<0x76, "vpcmpeqd", X86pcmpeqm,
|
||||
avx512vl_i32_info, HasAVX512>,
|
||||
EVEX_CD8<32, CD8VF>;
|
||||
|
||||
defm VPCMPEQQ : avx512_icmp_packed_vl<0x29, "vpcmpeqq", X86pcmpeqm,
|
||||
avx512vl_i64_info, HasAVX512>,
|
||||
avx512_icmp_packed_rmb_vl<0x29, "vpcmpeqq", X86pcmpeqm,
|
||||
defm VPCMPEQQ : avx512_icmp_packed_rmb_vl<0x29, "vpcmpeqq", X86pcmpeqm,
|
||||
avx512vl_i64_info, HasAVX512>,
|
||||
T8PD, VEX_W, EVEX_CD8<64, CD8VF>;
|
||||
|
||||
@ -1134,15 +1131,11 @@ defm VPCMPGTW : avx512_icmp_packed_vl<0x65, "vpcmpgtw", X86pcmpgtm,
|
||||
avx512vl_i16_info, HasBWI>,
|
||||
EVEX_CD8<16, CD8VF>;
|
||||
|
||||
defm VPCMPGTD : avx512_icmp_packed_vl<0x66, "vpcmpgtd", X86pcmpgtm,
|
||||
avx512vl_i32_info, HasAVX512>,
|
||||
avx512_icmp_packed_rmb_vl<0x66, "vpcmpgtd", X86pcmpgtm,
|
||||
defm VPCMPGTD : avx512_icmp_packed_rmb_vl<0x66, "vpcmpgtd", X86pcmpgtm,
|
||||
avx512vl_i32_info, HasAVX512>,
|
||||
EVEX_CD8<32, CD8VF>;
|
||||
|
||||
defm VPCMPGTQ : avx512_icmp_packed_vl<0x37, "vpcmpgtq", X86pcmpgtm,
|
||||
avx512vl_i64_info, HasAVX512>,
|
||||
avx512_icmp_packed_rmb_vl<0x37, "vpcmpgtq", X86pcmpgtm,
|
||||
defm VPCMPGTQ : avx512_icmp_packed_rmb_vl<0x37, "vpcmpgtq", X86pcmpgtm,
|
||||
avx512vl_i64_info, HasAVX512>,
|
||||
T8PD, VEX_W, EVEX_CD8<64, CD8VF>;
|
||||
|
||||
@ -1227,7 +1220,8 @@ multiclass avx512_icmp_cc<bits<8> opc, string Suffix, SDNode OpNode,
|
||||
}
|
||||
|
||||
multiclass avx512_icmp_cc_rmb<bits<8> opc, string Suffix, SDNode OpNode,
|
||||
X86VectorVTInfo _> {
|
||||
X86VectorVTInfo _> :
|
||||
avx512_icmp_cc<opc, Suffix, OpNode, _> {
|
||||
let mayLoad = 1 in {
|
||||
def rmib : AVX512AIi8<opc, MRMSrcMem,
|
||||
(outs _.KRC:$dst), (ins _.RC:$src1, _.ScalarMemOp:$src2,
|
||||
@ -1306,22 +1300,14 @@ defm VPCMPW : avx512_icmp_cc_vl<0x3F, "w", X86cmpm, avx512vl_i16_info,
|
||||
defm VPCMPUW : avx512_icmp_cc_vl<0x3E, "uw", X86cmpmu, avx512vl_i16_info,
|
||||
HasBWI>, VEX_W, EVEX_CD8<16, CD8VF>;
|
||||
|
||||
defm VPCMPD : avx512_icmp_cc_vl<0x1F, "d", X86cmpm, avx512vl_i32_info,
|
||||
HasAVX512>,
|
||||
avx512_icmp_cc_rmb_vl<0x1F, "d", X86cmpm, avx512vl_i32_info,
|
||||
defm VPCMPD : avx512_icmp_cc_rmb_vl<0x1F, "d", X86cmpm, avx512vl_i32_info,
|
||||
HasAVX512>, EVEX_CD8<32, CD8VF>;
|
||||
defm VPCMPUD : avx512_icmp_cc_vl<0x1E, "ud", X86cmpmu, avx512vl_i32_info,
|
||||
HasAVX512>,
|
||||
avx512_icmp_cc_rmb_vl<0x1E, "ud", X86cmpmu, avx512vl_i32_info,
|
||||
defm VPCMPUD : avx512_icmp_cc_rmb_vl<0x1E, "ud", X86cmpmu, avx512vl_i32_info,
|
||||
HasAVX512>, EVEX_CD8<32, CD8VF>;
|
||||
|
||||
defm VPCMPQ : avx512_icmp_cc_vl<0x1F, "q", X86cmpm, avx512vl_i64_info,
|
||||
HasAVX512>,
|
||||
avx512_icmp_cc_rmb_vl<0x1F, "q", X86cmpm, avx512vl_i64_info,
|
||||
defm VPCMPQ : avx512_icmp_cc_rmb_vl<0x1F, "q", X86cmpm, avx512vl_i64_info,
|
||||
HasAVX512>, VEX_W, EVEX_CD8<64, CD8VF>;
|
||||
defm VPCMPUQ : avx512_icmp_cc_vl<0x1E, "uq", X86cmpmu, avx512vl_i64_info,
|
||||
HasAVX512>,
|
||||
avx512_icmp_cc_rmb_vl<0x1E, "uq", X86cmpmu, avx512vl_i64_info,
|
||||
defm VPCMPUQ : avx512_icmp_cc_rmb_vl<0x1E, "uq", X86cmpmu, avx512vl_i64_info,
|
||||
HasAVX512>, VEX_W, EVEX_CD8<64, CD8VF>;
|
||||
|
||||
// avx512_cmp_packed - compare packed instructions
|
||||
|
Loading…
x
Reference in New Issue
Block a user