1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00

AVX-512: Added VPTESTM and VPTESTNM instructions for SKX

llvm-svn: 235383
This commit is contained in:
Elena Demikhovsky 2015-04-21 13:13:46 +00:00
parent 1b99f111c2
commit 61a239b83c
5 changed files with 739 additions and 31 deletions

View File

@ -287,6 +287,54 @@ multiclass AVX512_maskable_in_asm<bits<8> O, Format F, X86VectorVTInfo _,
OpcodeStr, AttSrcAsm, IntelSrcAsm, Pattern, [], [], "",
"$src0 = $dst">;
// Instruction with mask that puts result in mask register,
// like "compare" and "vptest"
multiclass AVX512_maskable_custom_cmp<bits<8> O, Format F,
dag Outs,
dag Ins, dag MaskingIns,
string OpcodeStr,
string AttSrcAsm, string IntelSrcAsm,
list<dag> Pattern,
list<dag> MaskingPattern,
string Round = "",
InstrItinClass itin = NoItinerary> {
def NAME: AVX512<O, F, Outs, Ins,
OpcodeStr#"\t{"#AttSrcAsm#", $dst "#Round#"|"#
"$dst "#Round#", "#IntelSrcAsm#"}",
Pattern, itin>;
def NAME#k: AVX512<O, F, Outs, MaskingIns,
OpcodeStr#"\t{"#AttSrcAsm#", $dst {${mask}}"#Round#"|"#
"$dst {${mask}}"#Round#", "#IntelSrcAsm#"}",
MaskingPattern, itin>, EVEX_K;
}
multiclass AVX512_maskable_common_cmp<bits<8> O, Format F, X86VectorVTInfo _,
dag Outs,
dag Ins, dag MaskingIns,
string OpcodeStr,
string AttSrcAsm, string IntelSrcAsm,
dag RHS, dag MaskingRHS,
string Round = "",
InstrItinClass itin = NoItinerary> :
AVX512_maskable_custom_cmp<O, F, Outs, Ins, MaskingIns, OpcodeStr,
AttSrcAsm, IntelSrcAsm,
[(set _.KRC:$dst, RHS)],
[(set _.KRC:$dst, MaskingRHS)],
Round, NoItinerary>;
multiclass AVX512_maskable_cmp<bits<8> O, Format F, X86VectorVTInfo _,
dag Outs, dag Ins, string OpcodeStr,
string AttSrcAsm, string IntelSrcAsm,
dag RHS, string Round = "",
InstrItinClass itin = NoItinerary> :
AVX512_maskable_common_cmp<O, F, _, Outs, Ins,
!con((ins _.KRCWM:$mask), Ins),
OpcodeStr, AttSrcAsm, IntelSrcAsm, RHS,
(and _.KRCWM:$mask, RHS),
Round, itin>;
// Bitcasts between 512-bit vector types. Return the original type since
// no instruction is needed for the conversion
let Predicates = [HasAVX512] in {
@ -3383,36 +3431,83 @@ def : Pat<(v8f64 (int_x86_avx512_mask_min_pd_512 (v8f64 VR512:$src1),
// AVX-512 VPTESTM instructions
//===----------------------------------------------------------------------===//
multiclass avx512_vptest<bits<8> opc, string OpcodeStr, RegisterClass KRC,
RegisterClass RC, X86MemOperand x86memop, PatFrag memop_frag,
SDNode OpNode, ValueType vt> {
def rr : AVX512PI<opc, MRMSrcReg,
(outs KRC:$dst), (ins RC:$src1, RC:$src2),
!strconcat(OpcodeStr, "\t{$src2, $src1, $dst|$dst, $src1, $src2}"),
[(set KRC:$dst, (OpNode (vt RC:$src1), (vt RC:$src2)))],
SSEPackedInt>, EVEX_4V;
def rm : AVX512PI<opc, MRMSrcMem,
(outs KRC:$dst), (ins RC:$src1, x86memop:$src2),
!strconcat(OpcodeStr, "\t{$src2, $src1, $dst|$dst, $src1, $src2}"),
[(set KRC:$dst, (OpNode (vt RC:$src1),
(bitconvert (memop_frag addr:$src2))))], SSEPackedInt>, EVEX_4V;
multiclass avx512_vptest<bits<8> opc, string OpcodeStr, SDNode OpNode,
X86VectorVTInfo _> {
defm rr : AVX512_maskable_cmp<opc, MRMSrcReg, _, (outs _.KRC:$dst),
(ins _.RC:$src1, _.RC:$src2), OpcodeStr,
"$src2, $src1", "$src1, $src2",
(OpNode (_.VT _.RC:$src1), (_.VT _.RC:$src2))>,
EVEX_4V;
let mayLoad = 1 in
defm rm : AVX512_maskable_cmp<opc, MRMSrcMem, _, (outs _.KRC:$dst),
(ins _.RC:$src1, _.MemOp:$src2), OpcodeStr,
"$src2, $src1", "$src1, $src2",
(OpNode (_.VT _.RC:$src1),
(_.VT (bitconvert (_.LdFrag addr:$src2))))>,
EVEX_4V,
EVEX_CD8<_.EltSize, CD8VF>;
}
defm VPTESTMDZ : avx512_vptest<0x27, "vptestmd", VK16, VR512, f512mem,
loadv16i32, X86testm, v16i32>, T8PD, EVEX_V512,
EVEX_CD8<32, CD8VF>;
defm VPTESTMQZ : avx512_vptest<0x27, "vptestmq", VK8, VR512, f512mem,
loadv8i64, X86testm, v8i64>, T8PD, EVEX_V512, VEX_W,
EVEX_CD8<64, CD8VF>;
let Predicates = [HasCDI] in {
defm VPTESTNMDZ : avx512_vptest<0x27, "vptestnmd", VK16, VR512, f512mem,
loadv16i32, X86testnm, v16i32>, T8XS, EVEX_V512,
EVEX_CD8<32, CD8VF>;
defm VPTESTNMQZ : avx512_vptest<0x27, "vptestnmq", VK8, VR512, f512mem,
loadv8i64, X86testnm, v8i64>, T8XS, EVEX_V512, VEX_W,
EVEX_CD8<64, CD8VF>;
multiclass avx512_vptest_mb<bits<8> opc, string OpcodeStr, SDNode OpNode,
X86VectorVTInfo _> {
let mayLoad = 1 in
defm rmb : AVX512_maskable_cmp<opc, MRMSrcMem, _, (outs _.KRC:$dst),
(ins _.RC:$src1, _.ScalarMemOp:$src2), OpcodeStr,
"${src2}"##_.BroadcastStr##", $src1",
"$src1, ${src2}"##_.BroadcastStr,
(OpNode (_.VT _.RC:$src1), (_.VT (X86VBroadcast
(_.ScalarLdFrag addr:$src2))))>,
EVEX_B, EVEX_4V, EVEX_CD8<_.EltSize, CD8VF>;
}
multiclass avx512_vptest_dq_sizes<bits<8> opc, string OpcodeStr, SDNode OpNode,
AVX512VLVectorVTInfo _> {
let Predicates = [HasAVX512] in
defm Z : avx512_vptest<opc, OpcodeStr, OpNode, _.info512>,
avx512_vptest_mb<opc, OpcodeStr, OpNode, _.info512>, EVEX_V512;
let Predicates = [HasAVX512, HasVLX] in {
defm Z256 : avx512_vptest<opc, OpcodeStr, OpNode, _.info256>,
avx512_vptest_mb<opc, OpcodeStr, OpNode, _.info256>, EVEX_V256;
defm Z128 : avx512_vptest<opc, OpcodeStr, OpNode, _.info128>,
avx512_vptest_mb<opc, OpcodeStr, OpNode, _.info128>, EVEX_V128;
}
}
multiclass avx512_vptest_dq<bits<8> opc, string OpcodeStr, SDNode OpNode> {
defm D : avx512_vptest_dq_sizes<opc, OpcodeStr#"d", OpNode,
avx512vl_i32_info>;
defm Q : avx512_vptest_dq_sizes<opc, OpcodeStr#"q", OpNode,
avx512vl_i64_info>, VEX_W;
}
multiclass avx512_vptest_wb<bits<8> opc, string OpcodeStr,
SDNode OpNode> {
let Predicates = [HasBWI] in {
defm WZ: avx512_vptest<opc, OpcodeStr#"w", OpNode, v32i16_info>,
EVEX_V512, VEX_W;
defm BZ: avx512_vptest<opc, OpcodeStr#"b", OpNode, v64i8_info>,
EVEX_V512;
}
let Predicates = [HasVLX, HasBWI] in {
defm WZ256: avx512_vptest<opc, OpcodeStr#"w", OpNode, v16i16x_info>,
EVEX_V256, VEX_W;
defm WZ128: avx512_vptest<opc, OpcodeStr#"w", OpNode, v8i16x_info>,
EVEX_V128, VEX_W;
defm BZ256: avx512_vptest<opc, OpcodeStr#"b", OpNode, v32i8x_info>,
EVEX_V256;
defm BZ128: avx512_vptest<opc, OpcodeStr#"b", OpNode, v16i8x_info>,
EVEX_V128;
}
}
multiclass avx512_vptest_all_forms<bits<8> opc_wb, bits<8> opc_dq, string OpcodeStr,
SDNode OpNode> :
avx512_vptest_wb <opc_wb, OpcodeStr, OpNode>,
avx512_vptest_dq<opc_dq, OpcodeStr, OpNode>;
defm VPTESTM : avx512_vptest_all_forms<0x26, 0x27, "vptestm", X86testm>, T8PD;
defm VPTESTNM : avx512_vptest_all_forms<0x26, 0x27, "vptestnm", X86testnm>, T8XS;
def : Pat <(i16 (int_x86_avx512_mask_ptestm_d_512 (v16i32 VR512:$src1),
(v16i32 VR512:$src2), (i16 -1))),

View File

@ -178,11 +178,13 @@ def X86ptest : SDNode<"X86ISD::PTEST", SDTX86CmpPTest>;
def X86testp : SDNode<"X86ISD::TESTP", SDTX86CmpPTest>;
def X86kortest : SDNode<"X86ISD::KORTEST", SDTX86CmpPTest>;
def X86testm : SDNode<"X86ISD::TESTM", SDTypeProfile<1, 2, [SDTCisVec<0>,
SDTCisVec<1>,
SDTCisSameAs<2, 1>]>>;
SDTCisVec<1>, SDTCisSameAs<2, 1>,
SDTCVecEltisVT<0, i1>,
SDTCisSameNumEltsAs<0, 1>]>>;
def X86testnm : SDNode<"X86ISD::TESTNM", SDTypeProfile<1, 2, [SDTCisVec<0>,
SDTCisVec<1>,
SDTCisSameAs<2, 1>]>>;
SDTCisVec<1>, SDTCisSameAs<2, 1>,
SDTCVecEltisVT<0, i1>,
SDTCisSameNumEltsAs<0, 1>]>>;
def X86select : SDNode<"X86ISD::SELECT" , SDTSelect>;
def X86pmuludq : SDNode<"X86ISD::PMULUDQ",

View File

@ -71,3 +71,195 @@
// CHECK: vpblendmw -8256(%rdx), %zmm20, %zmm26
// CHECK: encoding: [0x62,0x62,0xdd,0x40,0x66,0x92,0xc0,0xdf,0xff,0xff]
vpblendmw -8256(%rdx), %zmm20, %zmm26
// CHECK: vptestmb %zmm19, %zmm17, %k5
// CHECK: encoding: [0x62,0xb2,0x75,0x40,0x26,0xeb]
vptestmb %zmm19, %zmm17, %k5
// CHECK: vptestmb %zmm19, %zmm17, %k5 {%k3}
// CHECK: encoding: [0x62,0xb2,0x75,0x43,0x26,0xeb]
vptestmb %zmm19, %zmm17, %k5 {%k3}
// CHECK: vptestmb (%rcx), %zmm17, %k5
// CHECK: encoding: [0x62,0xf2,0x75,0x40,0x26,0x29]
vptestmb (%rcx), %zmm17, %k5
// CHECK: vptestmb 291(%rax,%r14,8), %zmm17, %k5
// CHECK: encoding: [0x62,0xb2,0x75,0x40,0x26,0xac,0xf0,0x23,0x01,0x00,0x00]
vptestmb 291(%rax,%r14,8), %zmm17, %k5
// CHECK: vptestmb 8128(%rdx), %zmm17, %k5
// CHECK: encoding: [0x62,0xf2,0x75,0x40,0x26,0x6a,0x7f]
vptestmb 8128(%rdx), %zmm17, %k5
// CHECK: vptestmb 8192(%rdx), %zmm17, %k5
// CHECK: encoding: [0x62,0xf2,0x75,0x40,0x26,0xaa,0x00,0x20,0x00,0x00]
vptestmb 8192(%rdx), %zmm17, %k5
// CHECK: vptestmb -8192(%rdx), %zmm17, %k5
// CHECK: encoding: [0x62,0xf2,0x75,0x40,0x26,0x6a,0x80]
vptestmb -8192(%rdx), %zmm17, %k5
// CHECK: vptestmb -8256(%rdx), %zmm17, %k5
// CHECK: encoding: [0x62,0xf2,0x75,0x40,0x26,0xaa,0xc0,0xdf,0xff,0xff]
vptestmb -8256(%rdx), %zmm17, %k5
// CHECK: vptestmw %zmm19, %zmm29, %k4
// CHECK: encoding: [0x62,0xb2,0x95,0x40,0x26,0xe3]
vptestmw %zmm19, %zmm29, %k4
// CHECK: vptestmw %zmm19, %zmm29, %k4 {%k2}
// CHECK: encoding: [0x62,0xb2,0x95,0x42,0x26,0xe3]
vptestmw %zmm19, %zmm29, %k4 {%k2}
// CHECK: vptestmw (%rcx), %zmm29, %k4
// CHECK: encoding: [0x62,0xf2,0x95,0x40,0x26,0x21]
vptestmw (%rcx), %zmm29, %k4
// CHECK: vptestmw 291(%rax,%r14,8), %zmm29, %k4
// CHECK: encoding: [0x62,0xb2,0x95,0x40,0x26,0xa4,0xf0,0x23,0x01,0x00,0x00]
vptestmw 291(%rax,%r14,8), %zmm29, %k4
// CHECK: vptestmw 8128(%rdx), %zmm29, %k4
// CHECK: encoding: [0x62,0xf2,0x95,0x40,0x26,0x62,0x7f]
vptestmw 8128(%rdx), %zmm29, %k4
// CHECK: vptestmw 8192(%rdx), %zmm29, %k4
// CHECK: encoding: [0x62,0xf2,0x95,0x40,0x26,0xa2,0x00,0x20,0x00,0x00]
vptestmw 8192(%rdx), %zmm29, %k4
// CHECK: vptestmw -8192(%rdx), %zmm29, %k4
// CHECK: encoding: [0x62,0xf2,0x95,0x40,0x26,0x62,0x80]
vptestmw -8192(%rdx), %zmm29, %k4
// CHECK: vptestmw -8256(%rdx), %zmm29, %k4
// CHECK: encoding: [0x62,0xf2,0x95,0x40,0x26,0xa2,0xc0,0xdf,0xff,0xff]
vptestmw -8256(%rdx), %zmm29, %k4
// CHECK: vptestnmb %zmm23, %zmm24, %k2
// CHECK: encoding: [0x62,0xb2,0x3e,0x40,0x26,0xd7]
vptestnmb %zmm23, %zmm24, %k2
// CHECK: vptestnmb %zmm23, %zmm24, %k2 {%k7}
// CHECK: encoding: [0x62,0xb2,0x3e,0x47,0x26,0xd7]
vptestnmb %zmm23, %zmm24, %k2 {%k7}
// CHECK: vptestnmb (%rcx), %zmm24, %k2
// CHECK: encoding: [0x62,0xf2,0x3e,0x40,0x26,0x11]
vptestnmb (%rcx), %zmm24, %k2
// CHECK: vptestnmb 291(%rax,%r14,8), %zmm24, %k2
// CHECK: encoding: [0x62,0xb2,0x3e,0x40,0x26,0x94,0xf0,0x23,0x01,0x00,0x00]
vptestnmb 291(%rax,%r14,8), %zmm24, %k2
// CHECK: vptestnmb 8128(%rdx), %zmm24, %k2
// CHECK: encoding: [0x62,0xf2,0x3e,0x40,0x26,0x52,0x7f]
vptestnmb 8128(%rdx), %zmm24, %k2
// CHECK: vptestnmb 8192(%rdx), %zmm24, %k2
// CHECK: encoding: [0x62,0xf2,0x3e,0x40,0x26,0x92,0x00,0x20,0x00,0x00]
vptestnmb 8192(%rdx), %zmm24, %k2
// CHECK: vptestnmb -8192(%rdx), %zmm24, %k2
// CHECK: encoding: [0x62,0xf2,0x3e,0x40,0x26,0x52,0x80]
vptestnmb -8192(%rdx), %zmm24, %k2
// CHECK: vptestnmb -8256(%rdx), %zmm24, %k2
// CHECK: encoding: [0x62,0xf2,0x3e,0x40,0x26,0x92,0xc0,0xdf,0xff,0xff]
vptestnmb -8256(%rdx), %zmm24, %k2
// CHECK: vptestnmw %zmm27, %zmm18, %k4
// CHECK: encoding: [0x62,0x92,0xee,0x40,0x26,0xe3]
vptestnmw %zmm27, %zmm18, %k4
// CHECK: vptestnmw %zmm27, %zmm18, %k4 {%k5}
// CHECK: encoding: [0x62,0x92,0xee,0x45,0x26,0xe3]
vptestnmw %zmm27, %zmm18, %k4 {%k5}
// CHECK: vptestnmw (%rcx), %zmm18, %k4
// CHECK: encoding: [0x62,0xf2,0xee,0x40,0x26,0x21]
vptestnmw (%rcx), %zmm18, %k4
// CHECK: vptestnmw 291(%rax,%r14,8), %zmm18, %k4
// CHECK: encoding: [0x62,0xb2,0xee,0x40,0x26,0xa4,0xf0,0x23,0x01,0x00,0x00]
vptestnmw 291(%rax,%r14,8), %zmm18, %k4
// CHECK: vptestnmw 8128(%rdx), %zmm18, %k4
// CHECK: encoding: [0x62,0xf2,0xee,0x40,0x26,0x62,0x7f]
vptestnmw 8128(%rdx), %zmm18, %k4
// CHECK: vptestnmw 8192(%rdx), %zmm18, %k4
// CHECK: encoding: [0x62,0xf2,0xee,0x40,0x26,0xa2,0x00,0x20,0x00,0x00]
vptestnmw 8192(%rdx), %zmm18, %k4
// CHECK: vptestnmw -8192(%rdx), %zmm18, %k4
// CHECK: encoding: [0x62,0xf2,0xee,0x40,0x26,0x62,0x80]
vptestnmw -8192(%rdx), %zmm18, %k4
// CHECK: vptestnmw -8256(%rdx), %zmm18, %k4
// CHECK: encoding: [0x62,0xf2,0xee,0x40,0x26,0xa2,0xc0,0xdf,0xff,0xff]
vptestnmw -8256(%rdx), %zmm18, %k4
// CHECK: vptestnmb %zmm19, %zmm27, %k3
// CHECK: encoding: [0x62,0xb2,0x26,0x40,0x26,0xdb]
vptestnmb %zmm19, %zmm27, %k3
// CHECK: vptestnmb %zmm19, %zmm27, %k3 {%k2}
// CHECK: encoding: [0x62,0xb2,0x26,0x42,0x26,0xdb]
vptestnmb %zmm19, %zmm27, %k3 {%k2}
// CHECK: vptestnmb (%rcx), %zmm27, %k3
// CHECK: encoding: [0x62,0xf2,0x26,0x40,0x26,0x19]
vptestnmb (%rcx), %zmm27, %k3
// CHECK: vptestnmb 4660(%rax,%r14,8), %zmm27, %k3
// CHECK: encoding: [0x62,0xb2,0x26,0x40,0x26,0x9c,0xf0,0x34,0x12,0x00,0x00]
vptestnmb 4660(%rax,%r14,8), %zmm27, %k3
// CHECK: vptestnmb 8128(%rdx), %zmm27, %k3
// CHECK: encoding: [0x62,0xf2,0x26,0x40,0x26,0x5a,0x7f]
vptestnmb 8128(%rdx), %zmm27, %k3
// CHECK: vptestnmb 8192(%rdx), %zmm27, %k3
// CHECK: encoding: [0x62,0xf2,0x26,0x40,0x26,0x9a,0x00,0x20,0x00,0x00]
vptestnmb 8192(%rdx), %zmm27, %k3
// CHECK: vptestnmb -8192(%rdx), %zmm27, %k3
// CHECK: encoding: [0x62,0xf2,0x26,0x40,0x26,0x5a,0x80]
vptestnmb -8192(%rdx), %zmm27, %k3
// CHECK: vptestnmb -8256(%rdx), %zmm27, %k3
// CHECK: encoding: [0x62,0xf2,0x26,0x40,0x26,0x9a,0xc0,0xdf,0xff,0xff]
vptestnmb -8256(%rdx), %zmm27, %k3
// CHECK: vptestnmw %zmm21, %zmm17, %k2
// CHECK: encoding: [0x62,0xb2,0xf6,0x40,0x26,0xd5]
vptestnmw %zmm21, %zmm17, %k2
// CHECK: vptestnmw %zmm21, %zmm17, %k2 {%k4}
// CHECK: encoding: [0x62,0xb2,0xf6,0x44,0x26,0xd5]
vptestnmw %zmm21, %zmm17, %k2 {%k4}
// CHECK: vptestnmw (%rcx), %zmm17, %k2
// CHECK: encoding: [0x62,0xf2,0xf6,0x40,0x26,0x11]
vptestnmw (%rcx), %zmm17, %k2
// CHECK: vptestnmw 4660(%rax,%r14,8), %zmm17, %k2
// CHECK: encoding: [0x62,0xb2,0xf6,0x40,0x26,0x94,0xf0,0x34,0x12,0x00,0x00]
vptestnmw 4660(%rax,%r14,8), %zmm17, %k2
// CHECK: vptestnmw 8128(%rdx), %zmm17, %k2
// CHECK: encoding: [0x62,0xf2,0xf6,0x40,0x26,0x52,0x7f]
vptestnmw 8128(%rdx), %zmm17, %k2
// CHECK: vptestnmw 8192(%rdx), %zmm17, %k2
// CHECK: encoding: [0x62,0xf2,0xf6,0x40,0x26,0x92,0x00,0x20,0x00,0x00]
vptestnmw 8192(%rdx), %zmm17, %k2
// CHECK: vptestnmw -8192(%rdx), %zmm17, %k2
// CHECK: encoding: [0x62,0xf2,0xf6,0x40,0x26,0x52,0x80]
vptestnmw -8192(%rdx), %zmm17, %k2
// CHECK: vptestnmw -8256(%rdx), %zmm17, %k2
// CHECK: encoding: [0x62,0xf2,0xf6,0x40,0x26,0x92,0xc0,0xdf,0xff,0xff]
vptestnmw -8256(%rdx), %zmm17, %k2

View File

@ -447,3 +447,415 @@
// CHECK: vpblendmq -1032(%rdx){1to4}, %ymm23, %ymm21
// CHECK: encoding: [0x62,0xe2,0xc5,0x30,0x64,0xaa,0xf8,0xfb,0xff,0xff]
vpblendmq -1032(%rdx){1to4}, %ymm23, %ymm21
// CHECK: vptestmd %xmm20, %xmm20, %k2
// CHECK: encoding: [0x62,0xb2,0x5d,0x00,0x27,0xd4]
vptestmd %xmm20, %xmm20, %k2
// CHECK: vptestmd %xmm20, %xmm20, %k2 {%k7}
// CHECK: encoding: [0x62,0xb2,0x5d,0x07,0x27,0xd4]
vptestmd %xmm20, %xmm20, %k2 {%k7}
// CHECK: vptestmd (%rcx), %xmm20, %k2
// CHECK: encoding: [0x62,0xf2,0x5d,0x00,0x27,0x11]
vptestmd (%rcx), %xmm20, %k2
// CHECK: vptestmd 291(%rax,%r14,8), %xmm20, %k2
// CHECK: encoding: [0x62,0xb2,0x5d,0x00,0x27,0x94,0xf0,0x23,0x01,0x00,0x00]
vptestmd 291(%rax,%r14,8), %xmm20, %k2
// CHECK: vptestmd (%rcx){1to4}, %xmm20, %k2
// CHECK: encoding: [0x62,0xf2,0x5d,0x10,0x27,0x11]
vptestmd (%rcx){1to4}, %xmm20, %k2
// CHECK: vptestmd 2032(%rdx), %xmm20, %k2
// CHECK: encoding: [0x62,0xf2,0x5d,0x00,0x27,0x52,0x7f]
vptestmd 2032(%rdx), %xmm20, %k2
// CHECK: vptestmd 2048(%rdx), %xmm20, %k2
// CHECK: encoding: [0x62,0xf2,0x5d,0x00,0x27,0x92,0x00,0x08,0x00,0x00]
vptestmd 2048(%rdx), %xmm20, %k2
// CHECK: vptestmd -2048(%rdx), %xmm20, %k2
// CHECK: encoding: [0x62,0xf2,0x5d,0x00,0x27,0x52,0x80]
vptestmd -2048(%rdx), %xmm20, %k2
// CHECK: vptestmd -2064(%rdx), %xmm20, %k2
// CHECK: encoding: [0x62,0xf2,0x5d,0x00,0x27,0x92,0xf0,0xf7,0xff,0xff]
vptestmd -2064(%rdx), %xmm20, %k2
// CHECK: vptestmd 508(%rdx){1to4}, %xmm20, %k2
// CHECK: encoding: [0x62,0xf2,0x5d,0x10,0x27,0x52,0x7f]
vptestmd 508(%rdx){1to4}, %xmm20, %k2
// CHECK: vptestmd 512(%rdx){1to4}, %xmm20, %k2
// CHECK: encoding: [0x62,0xf2,0x5d,0x10,0x27,0x92,0x00,0x02,0x00,0x00]
vptestmd 512(%rdx){1to4}, %xmm20, %k2
// CHECK: vptestmd -512(%rdx){1to4}, %xmm20, %k2
// CHECK: encoding: [0x62,0xf2,0x5d,0x10,0x27,0x52,0x80]
vptestmd -512(%rdx){1to4}, %xmm20, %k2
// CHECK: vptestmd -516(%rdx){1to4}, %xmm20, %k2
// CHECK: encoding: [0x62,0xf2,0x5d,0x10,0x27,0x92,0xfc,0xfd,0xff,0xff]
vptestmd -516(%rdx){1to4}, %xmm20, %k2
// CHECK: vptestmd %ymm17, %ymm20, %k3
// CHECK: encoding: [0x62,0xb2,0x5d,0x20,0x27,0xd9]
vptestmd %ymm17, %ymm20, %k3
// CHECK: vptestmd %ymm17, %ymm20, %k3 {%k5}
// CHECK: encoding: [0x62,0xb2,0x5d,0x25,0x27,0xd9]
vptestmd %ymm17, %ymm20, %k3 {%k5}
// CHECK: vptestmd (%rcx), %ymm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5d,0x20,0x27,0x19]
vptestmd (%rcx), %ymm20, %k3
// CHECK: vptestmd 291(%rax,%r14,8), %ymm20, %k3
// CHECK: encoding: [0x62,0xb2,0x5d,0x20,0x27,0x9c,0xf0,0x23,0x01,0x00,0x00]
vptestmd 291(%rax,%r14,8), %ymm20, %k3
// CHECK: vptestmd (%rcx){1to8}, %ymm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5d,0x30,0x27,0x19]
vptestmd (%rcx){1to8}, %ymm20, %k3
// CHECK: vptestmd 4064(%rdx), %ymm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5d,0x20,0x27,0x5a,0x7f]
vptestmd 4064(%rdx), %ymm20, %k3
// CHECK: vptestmd 4096(%rdx), %ymm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5d,0x20,0x27,0x9a,0x00,0x10,0x00,0x00]
vptestmd 4096(%rdx), %ymm20, %k3
// CHECK: vptestmd -4096(%rdx), %ymm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5d,0x20,0x27,0x5a,0x80]
vptestmd -4096(%rdx), %ymm20, %k3
// CHECK: vptestmd -4128(%rdx), %ymm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5d,0x20,0x27,0x9a,0xe0,0xef,0xff,0xff]
vptestmd -4128(%rdx), %ymm20, %k3
// CHECK: vptestmd 508(%rdx){1to8}, %ymm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5d,0x30,0x27,0x5a,0x7f]
vptestmd 508(%rdx){1to8}, %ymm20, %k3
// CHECK: vptestmd 512(%rdx){1to8}, %ymm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5d,0x30,0x27,0x9a,0x00,0x02,0x00,0x00]
vptestmd 512(%rdx){1to8}, %ymm20, %k3
// CHECK: vptestmd -512(%rdx){1to8}, %ymm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5d,0x30,0x27,0x5a,0x80]
vptestmd -512(%rdx){1to8}, %ymm20, %k3
// CHECK: vptestmd -516(%rdx){1to8}, %ymm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5d,0x30,0x27,0x9a,0xfc,0xfd,0xff,0xff]
vptestmd -516(%rdx){1to8}, %ymm20, %k3
// CHECK: vptestmq %xmm28, %xmm22, %k4
// CHECK: encoding: [0x62,0x92,0xcd,0x00,0x27,0xe4]
vptestmq %xmm28, %xmm22, %k4
// CHECK: vptestmq %xmm28, %xmm22, %k4 {%k3}
// CHECK: encoding: [0x62,0x92,0xcd,0x03,0x27,0xe4]
vptestmq %xmm28, %xmm22, %k4 {%k3}
// CHECK: vptestmq (%rcx), %xmm22, %k4
// CHECK: encoding: [0x62,0xf2,0xcd,0x00,0x27,0x21]
vptestmq (%rcx), %xmm22, %k4
// CHECK: vptestmq 291(%rax,%r14,8), %xmm22, %k4
// CHECK: encoding: [0x62,0xb2,0xcd,0x00,0x27,0xa4,0xf0,0x23,0x01,0x00,0x00]
vptestmq 291(%rax,%r14,8), %xmm22, %k4
// CHECK: vptestmq (%rcx){1to2}, %xmm22, %k4
// CHECK: encoding: [0x62,0xf2,0xcd,0x10,0x27,0x21]
vptestmq (%rcx){1to2}, %xmm22, %k4
// CHECK: vptestmq 2032(%rdx), %xmm22, %k4
// CHECK: encoding: [0x62,0xf2,0xcd,0x00,0x27,0x62,0x7f]
vptestmq 2032(%rdx), %xmm22, %k4
// CHECK: vptestmq 2048(%rdx), %xmm22, %k4
// CHECK: encoding: [0x62,0xf2,0xcd,0x00,0x27,0xa2,0x00,0x08,0x00,0x00]
vptestmq 2048(%rdx), %xmm22, %k4
// CHECK: vptestmq -2048(%rdx), %xmm22, %k4
// CHECK: encoding: [0x62,0xf2,0xcd,0x00,0x27,0x62,0x80]
vptestmq -2048(%rdx), %xmm22, %k4
// CHECK: vptestmq -2064(%rdx), %xmm22, %k4
// CHECK: encoding: [0x62,0xf2,0xcd,0x00,0x27,0xa2,0xf0,0xf7,0xff,0xff]
vptestmq -2064(%rdx), %xmm22, %k4
// CHECK: vptestmq 1016(%rdx){1to2}, %xmm22, %k4
// CHECK: encoding: [0x62,0xf2,0xcd,0x10,0x27,0x62,0x7f]
vptestmq 1016(%rdx){1to2}, %xmm22, %k4
// CHECK: vptestmq 1024(%rdx){1to2}, %xmm22, %k4
// CHECK: encoding: [0x62,0xf2,0xcd,0x10,0x27,0xa2,0x00,0x04,0x00,0x00]
vptestmq 1024(%rdx){1to2}, %xmm22, %k4
// CHECK: vptestmq -1024(%rdx){1to2}, %xmm22, %k4
// CHECK: encoding: [0x62,0xf2,0xcd,0x10,0x27,0x62,0x80]
vptestmq -1024(%rdx){1to2}, %xmm22, %k4
// CHECK: vptestmq -1032(%rdx){1to2}, %xmm22, %k4
// CHECK: encoding: [0x62,0xf2,0xcd,0x10,0x27,0xa2,0xf8,0xfb,0xff,0xff]
vptestmq -1032(%rdx){1to2}, %xmm22, %k4
// CHECK: vptestmq %ymm20, %ymm21, %k3
// CHECK: encoding: [0x62,0xb2,0xd5,0x20,0x27,0xdc]
vptestmq %ymm20, %ymm21, %k3
// CHECK: vptestmq %ymm20, %ymm21, %k3 {%k7}
// CHECK: encoding: [0x62,0xb2,0xd5,0x27,0x27,0xdc]
vptestmq %ymm20, %ymm21, %k3 {%k7}
// CHECK: vptestmq (%rcx), %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0xd5,0x20,0x27,0x19]
vptestmq (%rcx), %ymm21, %k3
// CHECK: vptestmq 291(%rax,%r14,8), %ymm21, %k3
// CHECK: encoding: [0x62,0xb2,0xd5,0x20,0x27,0x9c,0xf0,0x23,0x01,0x00,0x00]
vptestmq 291(%rax,%r14,8), %ymm21, %k3
// CHECK: vptestmq (%rcx){1to4}, %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0xd5,0x30,0x27,0x19]
vptestmq (%rcx){1to4}, %ymm21, %k3
// CHECK: vptestmq 4064(%rdx), %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0xd5,0x20,0x27,0x5a,0x7f]
vptestmq 4064(%rdx), %ymm21, %k3
// CHECK: vptestmq 4096(%rdx), %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0xd5,0x20,0x27,0x9a,0x00,0x10,0x00,0x00]
vptestmq 4096(%rdx), %ymm21, %k3
// CHECK: vptestmq -4096(%rdx), %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0xd5,0x20,0x27,0x5a,0x80]
vptestmq -4096(%rdx), %ymm21, %k3
// CHECK: vptestmq -4128(%rdx), %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0xd5,0x20,0x27,0x9a,0xe0,0xef,0xff,0xff]
vptestmq -4128(%rdx), %ymm21, %k3
// CHECK: vptestmq 1016(%rdx){1to4}, %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0xd5,0x30,0x27,0x5a,0x7f]
vptestmq 1016(%rdx){1to4}, %ymm21, %k3
// CHECK: vptestmq 1024(%rdx){1to4}, %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0xd5,0x30,0x27,0x9a,0x00,0x04,0x00,0x00]
vptestmq 1024(%rdx){1to4}, %ymm21, %k3
// CHECK: vptestmq -1024(%rdx){1to4}, %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0xd5,0x30,0x27,0x5a,0x80]
vptestmq -1024(%rdx){1to4}, %ymm21, %k3
// CHECK: vptestnmd %xmm22, %xmm20, %k3
// CHECK: encoding: [0x62,0xb2,0x5e,0x00,0x27,0xde]
vptestnmd %xmm22, %xmm20, %k3
// CHECK: vptestnmd %xmm22, %xmm20, %k3 {%k7}
// CHECK: encoding: [0x62,0xb2,0x5e,0x07,0x27,0xde]
vptestnmd %xmm22, %xmm20, %k3 {%k7}
// CHECK: vptestnmd (%rcx), %xmm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5e,0x00,0x27,0x19]
vptestnmd (%rcx), %xmm20, %k3
// CHECK: vptestnmd 291(%rax,%r14,8), %xmm20, %k3
// CHECK: encoding: [0x62,0xb2,0x5e,0x00,0x27,0x9c,0xf0,0x23,0x01,0x00,0x00]
vptestnmd 291(%rax,%r14,8), %xmm20, %k3
// CHECK: vptestnmd (%rcx){1to4}, %xmm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5e,0x10,0x27,0x19]
vptestnmd (%rcx){1to4}, %xmm20, %k3
// CHECK: vptestnmd 2032(%rdx), %xmm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5e,0x00,0x27,0x5a,0x7f]
vptestnmd 2032(%rdx), %xmm20, %k3
// CHECK: vptestnmd 2048(%rdx), %xmm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5e,0x00,0x27,0x9a,0x00,0x08,0x00,0x00]
vptestnmd 2048(%rdx), %xmm20, %k3
// CHECK: vptestnmd -2048(%rdx), %xmm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5e,0x00,0x27,0x5a,0x80]
vptestnmd -2048(%rdx), %xmm20, %k3
// CHECK: vptestnmd -2064(%rdx), %xmm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5e,0x00,0x27,0x9a,0xf0,0xf7,0xff,0xff]
vptestnmd -2064(%rdx), %xmm20, %k3
// CHECK: vptestnmd 508(%rdx){1to4}, %xmm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5e,0x10,0x27,0x5a,0x7f]
vptestnmd 508(%rdx){1to4}, %xmm20, %k3
// CHECK: vptestnmd 512(%rdx){1to4}, %xmm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5e,0x10,0x27,0x9a,0x00,0x02,0x00,0x00]
vptestnmd 512(%rdx){1to4}, %xmm20, %k3
// CHECK: vptestnmd -512(%rdx){1to4}, %xmm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5e,0x10,0x27,0x5a,0x80]
vptestnmd -512(%rdx){1to4}, %xmm20, %k3
// CHECK: vptestnmd -516(%rdx){1to4}, %xmm20, %k3
// CHECK: encoding: [0x62,0xf2,0x5e,0x10,0x27,0x9a,0xfc,0xfd,0xff,0xff]
vptestnmd -516(%rdx){1to4}, %xmm20, %k3
// CHECK: vptestnmd %ymm23, %ymm21, %k3
// CHECK: encoding: [0x62,0xb2,0x56,0x20,0x27,0xdf]
vptestnmd %ymm23, %ymm21, %k3
// CHECK: vptestnmd %ymm23, %ymm21, %k3 {%k7}
// CHECK: encoding: [0x62,0xb2,0x56,0x27,0x27,0xdf]
vptestnmd %ymm23, %ymm21, %k3 {%k7}
// CHECK: vptestnmd (%rcx), %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0x56,0x20,0x27,0x19]
vptestnmd (%rcx), %ymm21, %k3
// CHECK: vptestnmd 291(%rax,%r14,8), %ymm21, %k3
// CHECK: encoding: [0x62,0xb2,0x56,0x20,0x27,0x9c,0xf0,0x23,0x01,0x00,0x00]
vptestnmd 291(%rax,%r14,8), %ymm21, %k3
// CHECK: vptestnmd (%rcx){1to8}, %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0x56,0x30,0x27,0x19]
vptestnmd (%rcx){1to8}, %ymm21, %k3
// CHECK: vptestnmd 4064(%rdx), %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0x56,0x20,0x27,0x5a,0x7f]
vptestnmd 4064(%rdx), %ymm21, %k3
// CHECK: vptestnmd 4096(%rdx), %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0x56,0x20,0x27,0x9a,0x00,0x10,0x00,0x00]
vptestnmd 4096(%rdx), %ymm21, %k3
// CHECK: vptestnmd -4096(%rdx), %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0x56,0x20,0x27,0x5a,0x80]
vptestnmd -4096(%rdx), %ymm21, %k3
// CHECK: vptestnmd -4128(%rdx), %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0x56,0x20,0x27,0x9a,0xe0,0xef,0xff,0xff]
vptestnmd -4128(%rdx), %ymm21, %k3
// CHECK: vptestnmd 508(%rdx){1to8}, %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0x56,0x30,0x27,0x5a,0x7f]
vptestnmd 508(%rdx){1to8}, %ymm21, %k3
// CHECK: vptestnmd 512(%rdx){1to8}, %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0x56,0x30,0x27,0x9a,0x00,0x02,0x00,0x00]
vptestnmd 512(%rdx){1to8}, %ymm21, %k3
// CHECK: vptestnmd -512(%rdx){1to8}, %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0x56,0x30,0x27,0x5a,0x80]
vptestnmd -512(%rdx){1to8}, %ymm21, %k3
// CHECK: vptestnmd -516(%rdx){1to8}, %ymm21, %k3
// CHECK: encoding: [0x62,0xf2,0x56,0x30,0x27,0x9a,0xfc,0xfd,0xff,0xff]
vptestnmd -516(%rdx){1to8}, %ymm21, %k3
// CHECK: vptestnmq %xmm21, %xmm20, %k5
// CHECK: encoding: [0x62,0xb2,0xde,0x00,0x27,0xed]
vptestnmq %xmm21, %xmm20, %k5
// CHECK: vptestnmq %xmm21, %xmm20, %k5 {%k5}
// CHECK: encoding: [0x62,0xb2,0xde,0x05,0x27,0xed]
vptestnmq %xmm21, %xmm20, %k5 {%k5}
// CHECK: vptestnmq (%rcx), %xmm20, %k5
// CHECK: encoding: [0x62,0xf2,0xde,0x00,0x27,0x29]
vptestnmq (%rcx), %xmm20, %k5
// CHECK: vptestnmq 291(%rax,%r14,8), %xmm20, %k5
// CHECK: encoding: [0x62,0xb2,0xde,0x00,0x27,0xac,0xf0,0x23,0x01,0x00,0x00]
vptestnmq 291(%rax,%r14,8), %xmm20, %k5
// CHECK: vptestnmq (%rcx){1to2}, %xmm20, %k5
// CHECK: encoding: [0x62,0xf2,0xde,0x10,0x27,0x29]
vptestnmq (%rcx){1to2}, %xmm20, %k5
// CHECK: vptestnmq 2032(%rdx), %xmm20, %k5
// CHECK: encoding: [0x62,0xf2,0xde,0x00,0x27,0x6a,0x7f]
vptestnmq 2032(%rdx), %xmm20, %k5
// CHECK: vptestnmq 2048(%rdx), %xmm20, %k5
// CHECK: encoding: [0x62,0xf2,0xde,0x00,0x27,0xaa,0x00,0x08,0x00,0x00]
vptestnmq 2048(%rdx), %xmm20, %k5
// CHECK: vptestnmq -2048(%rdx), %xmm20, %k5
// CHECK: encoding: [0x62,0xf2,0xde,0x00,0x27,0x6a,0x80]
vptestnmq -2048(%rdx), %xmm20, %k5
// CHECK: vptestnmq -2064(%rdx), %xmm20, %k5
// CHECK: encoding: [0x62,0xf2,0xde,0x00,0x27,0xaa,0xf0,0xf7,0xff,0xff]
vptestnmq -2064(%rdx), %xmm20, %k5
// CHECK: vptestnmq 1016(%rdx){1to2}, %xmm20, %k5
// CHECK: encoding: [0x62,0xf2,0xde,0x10,0x27,0x6a,0x7f]
vptestnmq 1016(%rdx){1to2}, %xmm20, %k5
// CHECK: vptestnmq 1024(%rdx){1to2}, %xmm20, %k5
// CHECK: encoding: [0x62,0xf2,0xde,0x10,0x27,0xaa,0x00,0x04,0x00,0x00]
vptestnmq 1024(%rdx){1to2}, %xmm20, %k5
// CHECK: vptestnmq -1024(%rdx){1to2}, %xmm20, %k5
// CHECK: encoding: [0x62,0xf2,0xde,0x10,0x27,0x6a,0x80]
vptestnmq -1024(%rdx){1to2}, %xmm20, %k5
// CHECK: vptestnmq -1032(%rdx){1to2}, %xmm20, %k5
// CHECK: encoding: [0x62,0xf2,0xde,0x10,0x27,0xaa,0xf8,0xfb,0xff,0xff]
vptestnmq -1032(%rdx){1to2}, %xmm20, %k5
// CHECK: vptestnmq %ymm21, %ymm24, %k4
// CHECK: encoding: [0x62,0xb2,0xbe,0x20,0x27,0xe5]
vptestnmq %ymm21, %ymm24, %k4
// CHECK: vptestnmq %ymm21, %ymm24, %k4 {%k3}
// CHECK: encoding: [0x62,0xb2,0xbe,0x23,0x27,0xe5]
vptestnmq %ymm21, %ymm24, %k4 {%k3}
// CHECK: vptestnmq (%rcx), %ymm24, %k4
// CHECK: encoding: [0x62,0xf2,0xbe,0x20,0x27,0x21]
vptestnmq (%rcx), %ymm24, %k4
// CHECK: vptestnmq 291(%rax,%r14,8), %ymm24, %k4
// CHECK: encoding: [0x62,0xb2,0xbe,0x20,0x27,0xa4,0xf0,0x23,0x01,0x00,0x00]
vptestnmq 291(%rax,%r14,8), %ymm24, %k4
// CHECK: vptestnmq (%rcx){1to4}, %ymm24, %k4
// CHECK: encoding: [0x62,0xf2,0xbe,0x30,0x27,0x21]
vptestnmq (%rcx){1to4}, %ymm24, %k4
// CHECK: vptestnmq 4064(%rdx), %ymm24, %k4
// CHECK: encoding: [0x62,0xf2,0xbe,0x20,0x27,0x62,0x7f]
vptestnmq 4064(%rdx), %ymm24, %k4
// CHECK: vptestnmq 4096(%rdx), %ymm24, %k4
// CHECK: encoding: [0x62,0xf2,0xbe,0x20,0x27,0xa2,0x00,0x10,0x00,0x00]
vptestnmq 4096(%rdx), %ymm24, %k4
// CHECK: vptestnmq -4096(%rdx), %ymm24, %k4
// CHECK: encoding: [0x62,0xf2,0xbe,0x20,0x27,0x62,0x80]
vptestnmq -4096(%rdx), %ymm24, %k4
// CHECK: vptestnmq -4128(%rdx), %ymm24, %k4
// CHECK: encoding: [0x62,0xf2,0xbe,0x20,0x27,0xa2,0xe0,0xef,0xff,0xff]
vptestnmq -4128(%rdx), %ymm24, %k4
// CHECK: vptestnmq 1016(%rdx){1to4}, %ymm24, %k4
// CHECK: encoding: [0x62,0xf2,0xbe,0x30,0x27,0x62,0x7f]
vptestnmq 1016(%rdx){1to4}, %ymm24, %k4
// CHECK: vptestnmq 1024(%rdx){1to4}, %ymm24, %k4
// CHECK: encoding: [0x62,0xf2,0xbe,0x30,0x27,0xa2,0x00,0x04,0x00,0x00]
vptestnmq 1024(%rdx){1to4}, %ymm24, %k4
// CHECK: vptestnmq -1024(%rdx){1to4}, %ymm24, %k4
// CHECK: encoding: [0x62,0xf2,0xbe,0x30,0x27,0x62,0x80]
vptestnmq -1024(%rdx){1to4}, %ymm24, %k4
// CHECK: vptestnmq -1032(%rdx){1to4}, %ymm24, %k4
// CHECK: encoding: [0x62,0xf2,0xbe,0x30,0x27,0xa2,0xf8,0xfb,0xff,0xff]
vptestnmq -1032(%rdx){1to4}, %ymm24, %k4

View File

@ -270,12 +270,16 @@ static inline bool inheritsFrom(InstructionContext child,
return false;
case IC_EVEX_L_KZ:
case IC_EVEX_L_XS_KZ:
case IC_EVEX_L_XS_B:
case IC_EVEX_L_XS_K_B:
case IC_EVEX_L_XD_KZ:
case IC_EVEX_L_OPSIZE_KZ:
case IC_EVEX_L_OPSIZE_KZ_B:
return false;
case IC_EVEX_L_W_K:
case IC_EVEX_L_W_XS_K:
case IC_EVEX_L_W_XS_B:
case IC_EVEX_L_W_XS_K_B:
case IC_EVEX_L_W_XD_K:
case IC_EVEX_L_W_OPSIZE_K:
case IC_EVEX_L_W_OPSIZE_B:
@ -291,6 +295,7 @@ static inline bool inheritsFrom(InstructionContext child,
case IC_EVEX_L2_K_B:
case IC_EVEX_L2_KZ_B:
case IC_EVEX_L2_XS_K:
case IC_EVEX_L2_XS_K_B:
case IC_EVEX_L2_XS_B:
case IC_EVEX_L2_XD_B:
case IC_EVEX_L2_XD_K:
@ -306,6 +311,8 @@ static inline bool inheritsFrom(InstructionContext child,
case IC_EVEX_L2_W_K:
case IC_EVEX_L2_W_B:
case IC_EVEX_L2_W_XS_K:
case IC_EVEX_L2_W_XS_B:
case IC_EVEX_L2_W_XS_K_B:
case IC_EVEX_L2_W_XD_K:
case IC_EVEX_L2_W_XD_B:
case IC_EVEX_L2_W_OPSIZE_K: