From 431b81e41f31511c0e4e0c09a0e74fc8e9461061 Mon Sep 17 00:00:00 2001 From: Elena Demikhovsky Date: Tue, 21 Apr 2015 13:13:46 +0000 Subject: [PATCH] AVX-512: Added VPTESTM and VPTESTNM instructions for SKX llvm-svn: 235383 --- llvm/lib/Target/X86/X86InstrAVX512.td | 147 +++++++-- llvm/lib/Target/X86/X86InstrFragmentsSIMD.td | 10 +- llvm/test/MC/X86/avx512bw-encoding.s | 192 ++++++++++++ llvm/test/MC/X86/avx512vl-encoding.s | 412 ++++++++++++++++++++++++++ llvm/utils/TableGen/X86DisassemblerTables.cpp | 7 + 5 files changed, 738 insertions(+), 30 deletions(-) diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td index b74bd2a..c578f61 100644 --- a/llvm/lib/Target/X86/X86InstrAVX512.td +++ b/llvm/lib/Target/X86/X86InstrAVX512.td @@ -287,6 +287,54 @@ multiclass AVX512_maskable_in_asm 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 O, Format F, + dag Outs, + dag Ins, dag MaskingIns, + string OpcodeStr, + string AttSrcAsm, string IntelSrcAsm, + list Pattern, + list MaskingPattern, + string Round = "", + InstrItinClass itin = NoItinerary> { + def NAME: AVX512; + + def NAME#k: AVX512, EVEX_K; +} + +multiclass AVX512_maskable_common_cmp 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; + +multiclass AVX512_maskable_cmp 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; + // Bitcasts between 512-bit vector types. Return the original type since // no instruction is needed for the conversion let Predicates = [HasAVX512] in { @@ -3383,37 +3431,84 @@ def : Pat<(v8f64 (int_x86_avx512_mask_min_pd_512 (v8f64 VR512:$src1), // AVX-512 VPTESTM instructions //===----------------------------------------------------------------------===// -multiclass avx512_vptest opc, string OpcodeStr, RegisterClass KRC, - RegisterClass RC, X86MemOperand x86memop, PatFrag memop_frag, - SDNode OpNode, ValueType vt> { - def rr : AVX512PI, EVEX_4V; - def rm : AVX512PI, EVEX_4V; +multiclass avx512_vptest opc, string OpcodeStr, SDNode OpNode, + X86VectorVTInfo _> { + defm rr : AVX512_maskable_cmp, + EVEX_4V; + let mayLoad = 1 in + defm rm : AVX512_maskable_cmp, + 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>; +multiclass avx512_vptest_mb opc, string OpcodeStr, SDNode OpNode, + X86VectorVTInfo _> { + let mayLoad = 1 in + defm rmb : AVX512_maskable_cmp, + EVEX_B, EVEX_4V, EVEX_CD8<_.EltSize, CD8VF>; +} +multiclass avx512_vptest_dq_sizes opc, string OpcodeStr, SDNode OpNode, + AVX512VLVectorVTInfo _> { + let Predicates = [HasAVX512] in + defm Z : avx512_vptest, + avx512_vptest_mb, EVEX_V512; -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>; + let Predicates = [HasAVX512, HasVLX] in { + defm Z256 : avx512_vptest, + avx512_vptest_mb, EVEX_V256; + defm Z128 : avx512_vptest, + avx512_vptest_mb, EVEX_V128; + } +} + +multiclass avx512_vptest_dq opc, string OpcodeStr, SDNode OpNode> { + defm D : avx512_vptest_dq_sizes; + defm Q : avx512_vptest_dq_sizes, VEX_W; +} + +multiclass avx512_vptest_wb opc, string OpcodeStr, + SDNode OpNode> { + let Predicates = [HasBWI] in { + defm WZ: avx512_vptest, + EVEX_V512, VEX_W; + defm BZ: avx512_vptest, + EVEX_V512; + } + let Predicates = [HasVLX, HasBWI] in { + + defm WZ256: avx512_vptest, + EVEX_V256, VEX_W; + defm WZ128: avx512_vptest, + EVEX_V128, VEX_W; + defm BZ256: avx512_vptest, + EVEX_V256; + defm BZ128: avx512_vptest, + EVEX_V128; + } } +multiclass avx512_vptest_all_forms opc_wb, bits<8> opc_dq, string OpcodeStr, + SDNode OpNode> : + avx512_vptest_wb , + avx512_vptest_dq; + +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))), (COPY_TO_REGCLASS (VPTESTMDZrr VR512:$src1, VR512:$src2), GR16)>; diff --git a/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td b/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td index b75a9f4..5094aa4 100644 --- a/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td +++ b/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td @@ -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", diff --git a/llvm/test/MC/X86/avx512bw-encoding.s b/llvm/test/MC/X86/avx512bw-encoding.s index 06397fb..b33847e 100644 --- a/llvm/test/MC/X86/avx512bw-encoding.s +++ b/llvm/test/MC/X86/avx512bw-encoding.s @@ -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 diff --git a/llvm/test/MC/X86/avx512vl-encoding.s b/llvm/test/MC/X86/avx512vl-encoding.s index acea70c..15d3a77 100644 --- a/llvm/test/MC/X86/avx512vl-encoding.s +++ b/llvm/test/MC/X86/avx512vl-encoding.s @@ -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 diff --git a/llvm/utils/TableGen/X86DisassemblerTables.cpp b/llvm/utils/TableGen/X86DisassemblerTables.cpp index 0f3ea9a..f59652c 100644 --- a/llvm/utils/TableGen/X86DisassemblerTables.cpp +++ b/llvm/utils/TableGen/X86DisassemblerTables.cpp @@ -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: -- 2.7.4