From c2763588ac50694aa0847161e9bfc0b0b0775f41 Mon Sep 17 00:00:00 2001 From: Igor Breger Date: Thu, 25 Feb 2016 13:30:17 +0000 Subject: [PATCH] AVX512F: Add GATHER/SCATTER assembler Intel syntax tests for knl/skx/avx . Change memory operand parser handling. Differential Revision: http://reviews.llvm.org/D17564 llvm-svn: 261862 --- lib/Target/X86/AsmParser/X86Operand.h | 61 +- lib/Target/X86/X86InstrAVX512.td | 76 +- lib/Target/X86/X86InstrInfo.td | 45 +- lib/Target/X86/X86InstrSSE.td | 16 +- test/MC/Disassembler/X86/intel-syntax.txt | 4 +- test/MC/X86/intel-syntax-avx512.s | 447 +++++++++ test/MC/X86/intel-syntax-x86-64-avx.s | 65 ++ test/MC/X86/intel-syntax-x86-64-avx512f_vl.s | 897 +++++++++++++++++++ test/MC/X86/intel-syntax.s | 4 +- utils/TableGen/X86RecognizableInstr.cpp | 36 +- 10 files changed, 1535 insertions(+), 116 deletions(-) create mode 100644 test/MC/X86/intel-syntax-x86-64-avx.s diff --git a/lib/Target/X86/AsmParser/X86Operand.h b/lib/Target/X86/AsmParser/X86Operand.h index 7ec02408ffa..a04c2f5c84a 100644 --- a/lib/Target/X86/AsmParser/X86Operand.h +++ b/lib/Target/X86/AsmParser/X86Operand.h @@ -233,46 +233,47 @@ struct X86Operand : public MCParsedAsmOperand { bool isMem512() const { return Kind == Memory && (!Mem.Size || Mem.Size == 512); } + bool isMemIndexReg(unsigned LowR, unsigned HighR) const { + assert(Kind == Memory && "Invalid access!"); + return Mem.IndexReg >= LowR && Mem.IndexReg <= HighR; + } - bool isMemVX32() const { - return Kind == Memory && (!Mem.Size || Mem.Size == 32) && - getMemIndexReg() >= X86::XMM0 && getMemIndexReg() <= X86::XMM15; + bool isMem64_RC128() const { + return isMem64() && isMemIndexReg(X86::XMM0, X86::XMM15); } - bool isMemVX32X() const { - return Kind == Memory && (!Mem.Size || Mem.Size == 32) && - getMemIndexReg() >= X86::XMM0 && getMemIndexReg() <= X86::XMM31; + bool isMem128_RC128() const { + return isMem128() && isMemIndexReg(X86::XMM0, X86::XMM15); } - bool isMemVY32() const { - return Kind == Memory && (!Mem.Size || Mem.Size == 32) && - getMemIndexReg() >= X86::YMM0 && getMemIndexReg() <= X86::YMM15; + bool isMem128_RC256() const { + return isMem128() && isMemIndexReg(X86::YMM0, X86::YMM15); } - bool isMemVY32X() const { - return Kind == Memory && (!Mem.Size || Mem.Size == 32) && - getMemIndexReg() >= X86::YMM0 && getMemIndexReg() <= X86::YMM31; + bool isMem256_RC128() const { + return isMem256() && isMemIndexReg(X86::XMM0, X86::XMM15); } - bool isMemVX64() const { - return Kind == Memory && (!Mem.Size || Mem.Size == 64) && - getMemIndexReg() >= X86::XMM0 && getMemIndexReg() <= X86::XMM15; + bool isMem256_RC256() const { + return isMem256() && isMemIndexReg(X86::YMM0, X86::YMM15); } - bool isMemVX64X() const { - return Kind == Memory && (!Mem.Size || Mem.Size == 64) && - getMemIndexReg() >= X86::XMM0 && getMemIndexReg() <= X86::XMM31; + + bool isMem64_RC128X() const { + return isMem64() && isMemIndexReg(X86::XMM0, X86::XMM31); } - bool isMemVY64() const { - return Kind == Memory && (!Mem.Size || Mem.Size == 64) && - getMemIndexReg() >= X86::YMM0 && getMemIndexReg() <= X86::YMM15; + bool isMem128_RC128X() const { + return isMem128() && isMemIndexReg(X86::XMM0, X86::XMM31); } - bool isMemVY64X() const { - return Kind == Memory && (!Mem.Size || Mem.Size == 64) && - getMemIndexReg() >= X86::YMM0 && getMemIndexReg() <= X86::YMM31; + bool isMem128_RC256X() const { + return isMem128() && isMemIndexReg(X86::YMM0, X86::YMM31); } - bool isMemVZ32() const { - return Kind == Memory && (!Mem.Size || Mem.Size == 32) && - getMemIndexReg() >= X86::ZMM0 && getMemIndexReg() <= X86::ZMM31; + bool isMem256_RC128X() const { + return isMem256() && isMemIndexReg(X86::XMM0, X86::XMM31); } - bool isMemVZ64() const { - return Kind == Memory && (!Mem.Size || Mem.Size == 64) && - getMemIndexReg() >= X86::ZMM0 && getMemIndexReg() <= X86::ZMM31; + bool isMem256_RC256X() const { + return isMem256() && isMemIndexReg(X86::YMM0, X86::YMM31); + } + bool isMem512_RC256X() const { + return isMem512() && isMemIndexReg(X86::YMM0, X86::YMM31); + } + bool isMem512_RC512() const { + return isMem512() && isMemIndexReg(X86::ZMM0, X86::ZMM31); } bool isAbsMem() const { diff --git a/lib/Target/X86/X86InstrAVX512.td b/lib/Target/X86/X86InstrAVX512.td index c3142ccfec6..0c33a688822 100644 --- a/lib/Target/X86/X86InstrAVX512.td +++ b/lib/Target/X86/X86InstrAVX512.td @@ -6501,34 +6501,34 @@ multiclass avx512_gather opc, string OpcodeStr, X86VectorVTInfo _, multiclass avx512_gather_q_pd dopc, bits<8> qopc, AVX512VLVectorVTInfo _, string OpcodeStr, string SUFF> { defm NAME##D##SUFF##Z: avx512_gather, EVEX_V512, VEX_W; + vy512mem, mgatherv8i32>, EVEX_V512, VEX_W; defm NAME##Q##SUFF##Z: avx512_gather, EVEX_V512, VEX_W; + vz512mem, mgatherv8i64>, EVEX_V512, VEX_W; let Predicates = [HasVLX] in { defm NAME##D##SUFF##Z256: avx512_gather, EVEX_V256, VEX_W; + vx256xmem, mgatherv4i32>, EVEX_V256, VEX_W; defm NAME##Q##SUFF##Z256: avx512_gather, EVEX_V256, VEX_W; + vy256xmem, mgatherv4i64>, EVEX_V256, VEX_W; defm NAME##D##SUFF##Z128: avx512_gather, EVEX_V128, VEX_W; + vx128xmem, mgatherv4i32>, EVEX_V128, VEX_W; defm NAME##Q##SUFF##Z128: avx512_gather, EVEX_V128, VEX_W; + vx128xmem, mgatherv2i64>, EVEX_V128, VEX_W; } } multiclass avx512_gather_d_ps dopc, bits<8> qopc, AVX512VLVectorVTInfo _, string OpcodeStr, string SUFF> { - defm NAME##D##SUFF##Z: avx512_gather, EVEX_V512; - defm NAME##Q##SUFF##Z: avx512_gather, EVEX_V512; let Predicates = [HasVLX] in { defm NAME##D##SUFF##Z256: avx512_gather, EVEX_V256; + vy256xmem, mgatherv8i32>, EVEX_V256; defm NAME##Q##SUFF##Z256: avx512_gather, EVEX_V256; + vy128xmem, mgatherv4i64>, EVEX_V256; defm NAME##D##SUFF##Z128: avx512_gather, EVEX_V128; + vx128xmem, mgatherv4i32>, EVEX_V128; defm NAME##Q##SUFF##Z128: avx512_gather, EVEX_V128; } @@ -6558,34 +6558,34 @@ let mayStore = 1, Constraints = "$mask = $mask_wb", ExeDomain = _.ExeDomain in multiclass avx512_scatter_q_pd dopc, bits<8> qopc, AVX512VLVectorVTInfo _, string OpcodeStr, string SUFF> { defm NAME##D##SUFF##Z: avx512_scatter, EVEX_V512, VEX_W; + vy512mem, mscatterv8i32>, EVEX_V512, VEX_W; defm NAME##Q##SUFF##Z: avx512_scatter, EVEX_V512, VEX_W; + vz512mem, mscatterv8i64>, EVEX_V512, VEX_W; let Predicates = [HasVLX] in { defm NAME##D##SUFF##Z256: avx512_scatter, EVEX_V256, VEX_W; + vx256xmem, mscatterv4i32>, EVEX_V256, VEX_W; defm NAME##Q##SUFF##Z256: avx512_scatter, EVEX_V256, VEX_W; + vy256xmem, mscatterv4i64>, EVEX_V256, VEX_W; defm NAME##D##SUFF##Z128: avx512_scatter, EVEX_V128, VEX_W; + vx128xmem, mscatterv4i32>, EVEX_V128, VEX_W; defm NAME##Q##SUFF##Z128: avx512_scatter, EVEX_V128, VEX_W; + vx128xmem, mscatterv2i64>, EVEX_V128, VEX_W; } } multiclass avx512_scatter_d_ps dopc, bits<8> qopc, AVX512VLVectorVTInfo _, string OpcodeStr, string SUFF> { - defm NAME##D##SUFF##Z: avx512_scatter, EVEX_V512; - defm NAME##Q##SUFF##Z: avx512_scatter, EVEX_V512; let Predicates = [HasVLX] in { defm NAME##D##SUFF##Z256: avx512_scatter, EVEX_V256; + vy256xmem, mscatterv8i32>, EVEX_V256; defm NAME##Q##SUFF##Z256: avx512_scatter, EVEX_V256; + vy128xmem, mscatterv4i64>, EVEX_V256; defm NAME##D##SUFF##Z128: avx512_scatter, EVEX_V128; + vx128xmem, mscatterv4i32>, EVEX_V128; defm NAME##Q##SUFF##Z128: avx512_scatter, EVEX_V128; } @@ -6607,52 +6607,52 @@ multiclass avx512_gather_scatter_prefetch opc, Format F, string OpcodeSt } defm VGATHERPF0DPS: avx512_gather_scatter_prefetch<0xC6, MRM1m, "vgatherpf0dps", - VK16WM, vz32mem>, EVEX_V512, EVEX_CD8<32, CD8VT1>; + VK16WM, vz512mem>, EVEX_V512, EVEX_CD8<32, CD8VT1>; defm VGATHERPF0QPS: avx512_gather_scatter_prefetch<0xC7, MRM1m, "vgatherpf0qps", - VK8WM, vz64mem>, EVEX_V512, EVEX_CD8<64, CD8VT1>; + VK8WM, vz512mem>, EVEX_V512, EVEX_CD8<64, CD8VT1>; defm VGATHERPF0DPD: avx512_gather_scatter_prefetch<0xC6, MRM1m, "vgatherpf0dpd", - VK8WM, vy32mem>, EVEX_V512, VEX_W, EVEX_CD8<32, CD8VT1>; + VK8WM, vy512mem>, EVEX_V512, VEX_W, EVEX_CD8<32, CD8VT1>; defm VGATHERPF0QPD: avx512_gather_scatter_prefetch<0xC7, MRM1m, "vgatherpf0qpd", - VK8WM, vz64mem>, EVEX_V512, VEX_W, EVEX_CD8<64, CD8VT1>; + VK8WM, vz512mem>, EVEX_V512, VEX_W, EVEX_CD8<64, CD8VT1>; defm VGATHERPF1DPS: avx512_gather_scatter_prefetch<0xC6, MRM2m, "vgatherpf1dps", - VK16WM, vz32mem>, EVEX_V512, EVEX_CD8<32, CD8VT1>; + VK16WM, vz512mem>, EVEX_V512, EVEX_CD8<32, CD8VT1>; defm VGATHERPF1QPS: avx512_gather_scatter_prefetch<0xC7, MRM2m, "vgatherpf1qps", - VK8WM, vz64mem>, EVEX_V512, EVEX_CD8<64, CD8VT1>; + VK8WM, vz512mem>, EVEX_V512, EVEX_CD8<64, CD8VT1>; defm VGATHERPF1DPD: avx512_gather_scatter_prefetch<0xC6, MRM2m, "vgatherpf1dpd", - VK8WM, vy32mem>, EVEX_V512, VEX_W, EVEX_CD8<32, CD8VT1>; + VK8WM, vy512mem>, EVEX_V512, VEX_W, EVEX_CD8<32, CD8VT1>; defm VGATHERPF1QPD: avx512_gather_scatter_prefetch<0xC7, MRM2m, "vgatherpf1qpd", - VK8WM, vz64mem>, EVEX_V512, VEX_W, EVEX_CD8<64, CD8VT1>; + VK8WM, vz512mem>, EVEX_V512, VEX_W, EVEX_CD8<64, CD8VT1>; defm VSCATTERPF0DPS: avx512_gather_scatter_prefetch<0xC6, MRM5m, "vscatterpf0dps", - VK16WM, vz32mem>, EVEX_V512, EVEX_CD8<32, CD8VT1>; + VK16WM, vz512mem>, EVEX_V512, EVEX_CD8<32, CD8VT1>; defm VSCATTERPF0QPS: avx512_gather_scatter_prefetch<0xC7, MRM5m, "vscatterpf0qps", - VK8WM, vz64mem>, EVEX_V512, EVEX_CD8<64, CD8VT1>; + VK8WM, vz512mem>, EVEX_V512, EVEX_CD8<64, CD8VT1>; defm VSCATTERPF0DPD: avx512_gather_scatter_prefetch<0xC6, MRM5m, "vscatterpf0dpd", - VK8WM, vy32mem>, EVEX_V512, VEX_W, EVEX_CD8<32, CD8VT1>; + VK8WM, vy512mem>, EVEX_V512, VEX_W, EVEX_CD8<32, CD8VT1>; defm VSCATTERPF0QPD: avx512_gather_scatter_prefetch<0xC7, MRM5m, "vscatterpf0qpd", - VK8WM, vz64mem>, EVEX_V512, VEX_W, EVEX_CD8<64, CD8VT1>; + VK8WM, vz512mem>, EVEX_V512, VEX_W, EVEX_CD8<64, CD8VT1>; defm VSCATTERPF1DPS: avx512_gather_scatter_prefetch<0xC6, MRM6m, "vscatterpf1dps", - VK16WM, vz32mem>, EVEX_V512, EVEX_CD8<32, CD8VT1>; + VK16WM, vz512mem>, EVEX_V512, EVEX_CD8<32, CD8VT1>; defm VSCATTERPF1QPS: avx512_gather_scatter_prefetch<0xC7, MRM6m, "vscatterpf1qps", - VK8WM, vz64mem>, EVEX_V512, EVEX_CD8<64, CD8VT1>; + VK8WM, vz512mem>, EVEX_V512, EVEX_CD8<64, CD8VT1>; defm VSCATTERPF1DPD: avx512_gather_scatter_prefetch<0xC6, MRM6m, "vscatterpf1dpd", - VK8WM, vy32mem>, EVEX_V512, VEX_W, EVEX_CD8<32, CD8VT1>; + VK8WM, vy512mem>, EVEX_V512, VEX_W, EVEX_CD8<32, CD8VT1>; defm VSCATTERPF1QPD: avx512_gather_scatter_prefetch<0xC7, MRM6m, "vscatterpf1qpd", - VK8WM, vz64mem>, EVEX_V512, VEX_W, EVEX_CD8<64, CD8VT1>; + VK8WM, vz512mem>, EVEX_V512, VEX_W, EVEX_CD8<64, CD8VT1>; // Helper fragments to match sext vXi1 to vXiY. def v16i1sextv16i32 : PatLeaf<(v16i32 (X86vsrai VR512:$src, (i8 31)))>; diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td index 15744859d3b..d3c52eb9a4b 100644 --- a/lib/Target/X86/X86InstrInfo.td +++ b/lib/Target/X86/X86InstrInfo.td @@ -273,16 +273,19 @@ let RenderMethod = "addMemOperands", SuperClasses = [X86MemAsmOperand] in { def X86Mem256AsmOperand : AsmOperandClass { let Name = "Mem256"; } def X86Mem512AsmOperand : AsmOperandClass { let Name = "Mem512"; } // Gather mem operands - def X86MemVX32Operand : AsmOperandClass { let Name = "MemVX32"; } - def X86MemVY32Operand : AsmOperandClass { let Name = "MemVY32"; } - def X86MemVZ32Operand : AsmOperandClass { let Name = "MemVZ32"; } - def X86MemVX64Operand : AsmOperandClass { let Name = "MemVX64"; } - def X86MemVY64Operand : AsmOperandClass { let Name = "MemVY64"; } - def X86MemVZ64Operand : AsmOperandClass { let Name = "MemVZ64"; } - def X86MemVX32XOperand : AsmOperandClass { let Name = "MemVX32X"; } - def X86MemVY32XOperand : AsmOperandClass { let Name = "MemVY32X"; } - def X86MemVX64XOperand : AsmOperandClass { let Name = "MemVX64X"; } - def X86MemVY64XOperand : AsmOperandClass { let Name = "MemVY64X"; } + def X86Mem64_RC128Operand : AsmOperandClass { let Name = "Mem64_RC128"; } + def X86Mem128_RC128Operand : AsmOperandClass { let Name = "Mem128_RC128"; } + def X86Mem256_RC128Operand : AsmOperandClass { let Name = "Mem256_RC128"; } + def X86Mem128_RC256Operand : AsmOperandClass { let Name = "Mem128_RC256"; } + def X86Mem256_RC256Operand : AsmOperandClass { let Name = "Mem256_RC256"; } + + def X86Mem64_RC128XOperand : AsmOperandClass { let Name = "Mem64_RC128X"; } + def X86Mem128_RC128XOperand : AsmOperandClass { let Name = "Mem128_RC128X"; } + def X86Mem256_RC128XOperand : AsmOperandClass { let Name = "Mem256_RC128X"; } + def X86Mem128_RC256XOperand : AsmOperandClass { let Name = "Mem128_RC256X"; } + def X86Mem256_RC256XOperand : AsmOperandClass { let Name = "Mem256_RC256X"; } + def X86Mem512_RC256XOperand : AsmOperandClass { let Name = "Mem512_RC256X"; } + def X86Mem512_RC512Operand : AsmOperandClass { let Name = "Mem512_RC512"; } } def X86AbsMemAsmOperand : AsmOperandClass { @@ -329,17 +332,19 @@ def f512mem : X86MemOperand<"printf512mem", X86Mem512AsmOperand>; def v512mem : X86VMemOperand; // Gather mem operands -def vx32mem : X86VMemOperand; -def vy32mem : X86VMemOperand; -def vx64mem : X86VMemOperand; -def vy64mem : X86VMemOperand; +def vx64mem : X86VMemOperand; +def vx128mem : X86VMemOperand; +def vx256mem : X86VMemOperand; +def vy128mem : X86VMemOperand; +def vy256mem : X86VMemOperand; -def vx32xmem : X86VMemOperand; -def vx64xmem : X86VMemOperand; -def vy32xmem : X86VMemOperand; -def vy64xmem : X86VMemOperand; -def vz32mem : X86VMemOperand; -def vz64mem : X86VMemOperand; +def vx64xmem : X86VMemOperand; +def vx128xmem : X86VMemOperand; +def vx256xmem : X86VMemOperand; +def vy128xmem : X86VMemOperand; +def vy256xmem : X86VMemOperand; +def vy512mem : X86VMemOperand; +def vz512mem : X86VMemOperand; // A version of i8mem for use on x86-64 and x32 that uses a NOREX GPR instead // of a plain GPR, so that it doesn't potentially require a REX prefix. diff --git a/lib/Target/X86/X86InstrSSE.td b/lib/Target/X86/X86InstrSSE.td index 3498cefb19a..305bd8dbff5 100644 --- a/lib/Target/X86/X86InstrSSE.td +++ b/lib/Target/X86/X86InstrSSE.td @@ -8829,19 +8829,19 @@ multiclass avx2_gather opc, string OpcodeStr, RegisterClass RC256, let mayLoad = 1, Constraints = "@earlyclobber $dst,@earlyclobber $mask_wb, $src1 = $dst, $mask = $mask_wb" in { - defm VPGATHERDQ : avx2_gather<0x90, "vpgatherdq", VR256, vx64mem, vx64mem>, VEX_W; - defm VPGATHERQQ : avx2_gather<0x91, "vpgatherqq", VR256, vx64mem, vy64mem>, VEX_W; - defm VPGATHERDD : avx2_gather<0x90, "vpgatherdd", VR256, vx32mem, vy32mem>; - defm VPGATHERQD : avx2_gather<0x91, "vpgatherqd", VR128, vx32mem, vy32mem>; + defm VPGATHERDQ : avx2_gather<0x90, "vpgatherdq", VR256, vx128mem, vx256mem>, VEX_W; + defm VPGATHERQQ : avx2_gather<0x91, "vpgatherqq", VR256, vx128mem, vy256mem>, VEX_W; + defm VPGATHERDD : avx2_gather<0x90, "vpgatherdd", VR256, vx128mem, vy256mem>; + defm VPGATHERQD : avx2_gather<0x91, "vpgatherqd", VR128, vx64mem, vy128mem>; let ExeDomain = SSEPackedDouble in { - defm VGATHERDPD : avx2_gather<0x92, "vgatherdpd", VR256, vx64mem, vx64mem>, VEX_W; - defm VGATHERQPD : avx2_gather<0x93, "vgatherqpd", VR256, vx64mem, vy64mem>, VEX_W; + defm VGATHERDPD : avx2_gather<0x92, "vgatherdpd", VR256, vx128mem, vx256mem>, VEX_W; + defm VGATHERQPD : avx2_gather<0x93, "vgatherqpd", VR256, vx128mem, vy256mem>, VEX_W; } let ExeDomain = SSEPackedSingle in { - defm VGATHERDPS : avx2_gather<0x92, "vgatherdps", VR256, vx32mem, vy32mem>; - defm VGATHERQPS : avx2_gather<0x93, "vgatherqps", VR128, vx32mem, vy32mem>; + defm VGATHERDPS : avx2_gather<0x92, "vgatherdps", VR256, vx128mem, vy256mem>; + defm VGATHERQPS : avx2_gather<0x93, "vgatherqps", VR128, vx64mem, vy128mem>; } } diff --git a/test/MC/Disassembler/X86/intel-syntax.txt b/test/MC/Disassembler/X86/intel-syntax.txt index 0a628af02c1..17d9d53e418 100644 --- a/test/MC/Disassembler/X86/intel-syntax.txt +++ b/test/MC/Disassembler/X86/intel-syntax.txt @@ -108,10 +108,10 @@ # CHECK: vshufpd xmm0, xmm1, xmm2, 1 0xc5 0xf1 0xc6 0xc2 0x01 -# CHECK: vpgatherqq ymm2, qword ptr [rdi + 2*ymm1], ymm0 +# CHECK: vpgatherqq ymm2, ymmword ptr [rdi + 2*ymm1], ymm0 0xc4 0xe2 0xfd 0x91 0x14 0x4f -# CHECK: vpgatherdd xmm10, dword ptr [r15 + 2*xmm9], xmm8 +# CHECK: vpgatherdd xmm10, xmmword ptr [r15 + 2*xmm9], xmm8 0xc4 0x02 0x39 0x90 0x14 0x4f # CHECK: xsave64 opaque ptr [rax] diff --git a/test/MC/X86/intel-syntax-avx512.s b/test/MC/X86/intel-syntax-avx512.s index 15ad190af38..2705e8c3b95 100644 --- a/test/MC/X86/intel-syntax-avx512.s +++ b/test/MC/X86/intel-syntax-avx512.s @@ -37896,3 +37896,450 @@ vaddpd zmm1, zmm1, zmm2, {rz-sae} // CHECK: encoding: [0x62,0xe2,0xa5,0x50,0x77,0xaa,0xf8,0xfb,0xff,0xff] vpermi2pd zmm21, zmm27, qword ptr [rdx - 1032]{1to8} +// CHECK: vgatherdpd zmm6 {k1}, zmmword ptr [r14 + 8*ymm16 + 123] +// CHECK: encoding: [0x62,0xd2,0xfd,0x41,0x92,0xb4,0xc6,0x7b,0x00,0x00,0x00] + vgatherdpd zmm6 {k1},ZMMWORD PTR [r14+ymm16*8+0x7b] + +// CHECK: vgatherdpd zmm6 {k1}, zmmword ptr [r9 + ymm16 + 256] +// CHECK: encoding: [0x62,0xd2,0xfd,0x41,0x92,0x74,0x01,0x20] + vgatherdpd zmm6{k1},ZMMWORD PTR [r9+ymm16*1+0x100] + +// CHECK: vgatherdpd zmm6 {k1}, zmmword ptr [rcx + 4*ymm16 + 1024] +// CHECK: encoding: [0x62,0xf2,0xfd,0x41,0x92,0xb4,0x81,0x00,0x04,0x00,0x00] + vgatherdpd zmm6{k1},ZMMWORD PTR [rcx+ymm16*4+0x400] + +// CHECK: vgatherdps zmm9 {k1}, zmmword ptr [r14 + 8*zmm19 + 123] +// CHECK: encoding: [0x62,0x52,0x7d,0x41,0x92,0x8c,0xde,0x7b,0x00,0x00,0x00] + vgatherdps zmm9{k1},ZMMWORD PTR [r14+zmm19*8+0x7b] + +// CHECK: vgatherdps zmm9 {k1}, zmmword ptr [r9 + zmm19 + 256] +// CHECK: encoding: [0x62,0x52,0x7d,0x41,0x92,0x4c,0x19,0x40] + vgatherdps zmm9{k1},ZMMWORD PTR [r9+zmm19*1+0x100] + +// CHECK: vgatherdps zmm9 {k1}, zmmword ptr [rcx + 4*zmm19 + 1024] +// CHECK: encoding: [0x62,0x72,0x7d,0x41,0x92,0x8c,0x99,0x00,0x04,0x00,0x00] + vgatherdps zmm9{k1},ZMMWORD PTR [rcx+zmm19*4+0x400] + +// CHECK: vgatherqpd zmm29 {k1}, zmmword ptr [r14 + 8*zmm2 + 123] +// CHECK: encoding: [0x62,0x42,0xfd,0x49,0x93,0xac,0xd6,0x7b,0x00,0x00,0x00] + vgatherqpd zmm29{k1},ZMMWORD PTR [r14+zmm2*8+0x7b] + +// CHECK: vgatherqpd zmm29 {k1}, zmmword ptr [r9 + zmm2 + 256] +// CHECK: encoding: [0x62,0x42,0xfd,0x49,0x93,0x6c,0x11,0x20] + vgatherqpd zmm29{k1},ZMMWORD PTR [r9+zmm2*1+0x100] + +// CHECK: vgatherqpd zmm29 {k1}, zmmword ptr [rcx + 4*zmm2 + 1024] +// CHECK: encoding: [0x62,0x62,0xfd,0x49,0x93,0xac,0x91,0x00,0x04,0x00,0x00] + vgatherqpd zmm29{k1},ZMMWORD PTR [rcx+zmm2*4+0x400] + +// CHECK: vgatherqps ymm18 {k1}, zmmword ptr [r14 + 8*zmm4 + 123] +// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0x93,0x94,0xe6,0x7b,0x00,0x00,0x00] + vgatherqps ymm18{k1},ZMMWORD PTR [r14+zmm4*8+0x7b] + +// CHECK: vgatherqps ymm18 {k1}, zmmword ptr [r9 + zmm4 + 256] +// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0x93,0x54,0x21,0x40] + vgatherqps ymm18{k1},ZMMWORD PTR [r9+zmm4*1+0x100] + +// CHECK: vgatherqps ymm18 {k1}, zmmword ptr [rcx + 4*zmm4 + 1024] +// CHECK: encoding: [0x62,0xe2,0x7d,0x49,0x93,0x94,0xa1,0x00,0x04,0x00,0x00] + vgatherqps ymm18{k1},ZMMWORD PTR [rcx+zmm4*4+0x400] + +// CHECK: vpgatherdd zmm17 {k1}, zmmword ptr [r14 + 8*zmm11 + 123] +// CHECK: encoding: [0x62,0x82,0x7d,0x49,0x90,0x8c,0xde,0x7b,0x00,0x00,0x00] + vpgatherdd zmm17{k1},ZMMWORD PTR [r14+zmm11*8+0x7b] + +// CHECK: vpgatherdd zmm17 {k1}, zmmword ptr [r9 + zmm11 + 256] +// CHECK: encoding: [0x62,0x82,0x7d,0x49,0x90,0x4c,0x19,0x40] + vpgatherdd zmm17{k1},ZMMWORD PTR [r9+zmm11*1+0x100] + +// CHECK: vpgatherdd zmm17 {k1}, zmmword ptr [rcx + 4*zmm11 + 1024] +// CHECK: encoding: [0x62,0xa2,0x7d,0x49,0x90,0x8c,0x99,0x00,0x04,0x00,0x00] + vpgatherdd zmm17{k1},ZMMWORD PTR [rcx+zmm11*4+0x400] + +// CHECK: vpgatherdq zmm8 {k1}, zmmword ptr [r14 + 8*ymm14 + 123] +// CHECK: encoding: [0x62,0x12,0xfd,0x49,0x90,0x84,0xf6,0x7b,0x00,0x00,0x00] + vpgatherdq zmm8{k1},ZMMWORD PTR [r14+ymm14*8+0x7b] + +// CHECK: vpgatherdq zmm8 {k1}, zmmword ptr [r9 + ymm14 + 256] +// CHECK: encoding: [0x62,0x12,0xfd,0x49,0x90,0x44,0x31,0x20] + vpgatherdq zmm8{k1},ZMMWORD PTR [r9+ymm14*1+0x100] + +// CHECK: vpgatherdq zmm8 {k1}, zmmword ptr [rcx + 4*ymm14 + 1024] +// CHECK: encoding: [0x62,0x32,0xfd,0x49,0x90,0x84,0xb1,0x00,0x04,0x00,0x00] + vpgatherdq zmm8{k1},ZMMWORD PTR [rcx+ymm14*4+0x400] + +// CHECK: vpgatherqd ymm3 {k1}, zmmword ptr [r14 + 8*zmm17 + 123] +// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0x91,0x9c,0xce,0x7b,0x00,0x00,0x00] + vpgatherqd ymm3{k1},ZMMWORD PTR [r14+zmm17*8+0x7b] + +// CHECK: vpgatherqd ymm3 {k1}, zmmword ptr [r9 + zmm17 + 256] +// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0x91,0x5c,0x09,0x40] + vpgatherqd ymm3{k1},ZMMWORD PTR [r9+zmm17*1+0x100] + +// CHECK: vpgatherqd ymm3 {k1}, zmmword ptr [rcx + 4*zmm17 + 1024] +// CHECK: encoding: [0x62,0xf2,0x7d,0x41,0x91,0x9c,0x89,0x00,0x04,0x00,0x00] + vpgatherqd ymm3{k1},ZMMWORD PTR [rcx+zmm17*4+0x400] + +// CHECK: vpgatherqq zmm17 {k1}, zmmword ptr [r14 + 8*zmm21 + 123] +// CHECK: encoding: [0x62,0xc2,0xfd,0x41,0x91,0x8c,0xee,0x7b,0x00,0x00,0x00] + vpgatherqq zmm17{k1},ZMMWORD PTR [r14+zmm21*8+0x7b] + +// CHECK: vpgatherqq zmm17 {k1}, zmmword ptr [r9 + zmm21 + 256] +// CHECK: encoding: [0x62,0xc2,0xfd,0x41,0x91,0x4c,0x29,0x20] + vpgatherqq zmm17{k1},ZMMWORD PTR [r9+zmm21*1+0x100] + +// CHECK: vpgatherqq zmm17 {k1}, zmmword ptr [rcx + 4*zmm21 + 1024] +// CHECK: encoding: [0x62,0xe2,0xfd,0x41,0x91,0x8c,0xa9,0x00,0x04,0x00,0x00] + vpgatherqq zmm17{k1},ZMMWORD PTR [rcx+zmm21*4+0x400] + +// CHECK: vpscatterdd zmmword ptr [r14 + 8*zmm16 + 123] {k1}, zmm19 +// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa0,0x9c,0xc6,0x7b,0x00,0x00,0x00] + vpscatterdd ZMMWORD PTR [r14+zmm16*8+0x7b]{k1},zmm19 + +// CHECK: vpscatterdd zmmword ptr [r14 + 8*zmm16 + 123] {k1}, zmm19 +// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa0,0x9c,0xc6,0x7b,0x00,0x00,0x00] + vpscatterdd ZMMWORD PTR [r14+zmm16*8+0x7b]{k1},zmm19 + +// CHECK: vpscatterdd zmmword ptr [r9 + zmm16 + 256] {k1}, zmm19 +// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa0,0x5c,0x01,0x40] + vpscatterdd ZMMWORD PTR [r9+zmm16*1+0x100]{k1},zmm19 + +// CHECK: vpscatterdd zmmword ptr [rcx + 4*zmm16 + 1024] {k1}, zmm19 +// CHECK: encoding: [0x62,0xe2,0x7d,0x41,0xa0,0x9c,0x81,0x00,0x04,0x00,0x00] + vpscatterdd ZMMWORD PTR [rcx+zmm16*4+0x400]{k1},zmm19 + +// CHECK: vpscatterdq zmmword ptr [r14 + 8*ymm6 + 123] {k1}, zmm5 +// CHECK: encoding: [0x62,0xd2,0xfd,0x49,0xa0,0xac,0xf6,0x7b,0x00,0x00,0x00] + vpscatterdq ZMMWORD PTR [r14+ymm6*8+0x7b]{k1},zmm5 + +// CHECK: vpscatterdq zmmword ptr [r14 + 8*ymm6 + 123] {k1}, zmm5 +// CHECK: encoding: [0x62,0xd2,0xfd,0x49,0xa0,0xac,0xf6,0x7b,0x00,0x00,0x00] + vpscatterdq ZMMWORD PTR [r14+ymm6*8+0x7b]{k1},zmm5 + +// CHECK: vpscatterdq zmmword ptr [r9 + ymm6 + 256] {k1}, zmm5 +// CHECK: encoding: [0x62,0xd2,0xfd,0x49,0xa0,0x6c,0x31,0x20] + vpscatterdq ZMMWORD PTR [r9+ymm6*1+0x100]{k1},zmm5 + +// CHECK: vpscatterdq zmmword ptr [rcx + 4*ymm6 + 1024] {k1}, zmm5 +// CHECK: encoding: [0x62,0xf2,0xfd,0x49,0xa0,0xac,0xb1,0x00,0x04,0x00,0x00] + vpscatterdq ZMMWORD PTR [rcx+ymm6*4+0x400]{k1},zmm5 + +// CHECK: vpscatterqd zmmword ptr [r14 + 8*zmm2 + 123] {k1}, ymm20 +// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0xa1,0xa4,0xd6,0x7b,0x00,0x00,0x00] + vpscatterqd ZMMWORD PTR [r14+zmm2*8+0x7b]{k1},ymm20 + +// CHECK: vpscatterqd zmmword ptr [r14 + 8*zmm2 + 123] {k1}, ymm20 +// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0xa1,0xa4,0xd6,0x7b,0x00,0x00,0x00] + vpscatterqd ZMMWORD PTR [r14+zmm2*8+0x7b]{k1},ymm20 + +// CHECK: vpscatterqd zmmword ptr [r9 + zmm2 + 256] {k1}, ymm20 +// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0xa1,0x64,0x11,0x40] + vpscatterqd ZMMWORD PTR [r9+zmm2*1+0x100]{k1},ymm20 + +// CHECK: vpscatterqd zmmword ptr [rcx + 4*zmm2 + 1024] {k1}, ymm20 +// CHECK: encoding: [0x62,0xe2,0x7d,0x49,0xa1,0xa4,0x91,0x00,0x04,0x00,0x00] + vpscatterqd ZMMWORD PTR [rcx+zmm2*4+0x400]{k1},ymm20 + +// CHECK: vpscatterqq zmmword ptr [r14 + 8*zmm20 + 123] {k1}, zmm14 +// CHECK: encoding: [0x62,0x52,0xfd,0x41,0xa1,0xb4,0xe6,0x7b,0x00,0x00,0x00] + vpscatterqq ZMMWORD PTR [r14+zmm20*8+0x7b]{k1},zmm14 + +// CHECK: vpscatterqq zmmword ptr [r14 + 8*zmm20 + 123] {k1}, zmm14 +// CHECK: encoding: [0x62,0x52,0xfd,0x41,0xa1,0xb4,0xe6,0x7b,0x00,0x00,0x00] + vpscatterqq ZMMWORD PTR [r14+zmm20*8+0x7b]{k1},zmm14 + +// CHECK: vpscatterqq zmmword ptr [r9 + zmm20 + 256] {k1}, zmm14 +// CHECK: encoding: [0x62,0x52,0xfd,0x41,0xa1,0x74,0x21,0x20] + vpscatterqq ZMMWORD PTR [r9+zmm20*1+0x100]{k1},zmm14 + +// CHECK: vpscatterqq zmmword ptr [rcx + 4*zmm20 + 1024] {k1}, zmm14 +// CHECK: encoding: [0x62,0x72,0xfd,0x41,0xa1,0xb4,0xa1,0x00,0x04,0x00,0x00] + vpscatterqq ZMMWORD PTR [rcx+zmm20*4+0x400]{k1},zmm14 + +// CHECK: vscatterdpd zmmword ptr [r14 + 8*ymm24 + 123] {k1}, zmm18 +// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa2,0x94,0xc6,0x7b,0x00,0x00,0x00] + vscatterdpd ZMMWORD PTR [r14+ymm24*8+0x7b]{k1},zmm18 + +// CHECK: vscatterdpd zmmword ptr [r14 + 8*ymm24 + 123] {k1}, zmm18 +// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa2,0x94,0xc6,0x7b,0x00,0x00,0x00] + vscatterdpd ZMMWORD PTR [r14+ymm24*8+0x7b]{k1},zmm18 + +// CHECK: vscatterdpd zmmword ptr [r9 + ymm24 + 256] {k1}, zmm18 +// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa2,0x54,0x01,0x20] + vscatterdpd ZMMWORD PTR [r9+ymm24*1+0x100]{k1},zmm18 + +// CHECK: vscatterdpd zmmword ptr [rcx + 4*ymm24 + 1024] {k1}, zmm18 +// CHECK: encoding: [0x62,0xa2,0xfd,0x41,0xa2,0x94,0x81,0x00,0x04,0x00,0x00] + vscatterdpd ZMMWORD PTR [rcx+ymm24*4+0x400]{k1},zmm18 + +// CHECK: vscatterdps zmmword ptr [r14 + 8*zmm19 + 123] {k1}, zmm17 +// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa2,0x8c,0xde,0x7b,0x00,0x00,0x00] + vscatterdps ZMMWORD PTR [r14+zmm19*8+0x7b]{k1},zmm17 + +// CHECK: vscatterdps zmmword ptr [r14 + 8*zmm19 + 123] {k1}, zmm17 +// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa2,0x8c,0xde,0x7b,0x00,0x00,0x00] + vscatterdps ZMMWORD PTR [r14+zmm19*8+0x7b]{k1},zmm17 + +// CHECK: vscatterdps zmmword ptr [r9 + zmm19 + 256] {k1}, zmm17 +// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa2,0x4c,0x19,0x40] + vscatterdps ZMMWORD PTR [r9+zmm19*1+0x100]{k1},zmm17 + +// CHECK: vscatterdps zmmword ptr [rcx + 4*zmm19 + 1024] {k1}, zmm17 +// CHECK: encoding: [0x62,0xe2,0x7d,0x41,0xa2,0x8c,0x99,0x00,0x04,0x00,0x00] + vscatterdps ZMMWORD PTR [rcx+zmm19*4+0x400]{k1},zmm17 + +// CHECK: vscatterqpd zmmword ptr [r14 + 8*zmm28 + 123] {k1}, zmm22 +// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa3,0xb4,0xe6,0x7b,0x00,0x00,0x00] + vscatterqpd ZMMWORD PTR [r14+zmm28*8+0x7b]{k1},zmm22 + +// CHECK: vscatterqpd zmmword ptr [r14 + 8*zmm28 + 123] {k1}, zmm22 +// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa3,0xb4,0xe6,0x7b,0x00,0x00,0x00] + vscatterqpd ZMMWORD PTR [r14+zmm28*8+0x7b]{k1},zmm22 + +// CHECK: vscatterqpd zmmword ptr [r9 + zmm28 + 256] {k1}, zmm22 +// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa3,0x74,0x21,0x20] + vscatterqpd ZMMWORD PTR [r9+zmm28*1+0x100]{k1},zmm22 + +// CHECK: vscatterqpd zmmword ptr [rcx + 4*zmm28 + 1024] {k1}, zmm22 +// CHECK: encoding: [0x62,0xa2,0xfd,0x41,0xa3,0xb4,0xa1,0x00,0x04,0x00,0x00] + vscatterqpd ZMMWORD PTR [rcx+zmm28*4+0x400]{k1},zmm22 + +// CHECK: vscatterqps zmmword ptr [r14 + 8*zmm27 + 123] {k1}, ymm6 +// CHECK: encoding: [0x62,0x92,0x7d,0x41,0xa3,0xb4,0xde,0x7b,0x00,0x00,0x00] + vscatterqps ZMMWORD PTR [r14+zmm27*8+0x7b]{k1},ymm6 + +// CHECK: vscatterqps zmmword ptr [r14 + 8*zmm27 + 123] {k1}, ymm6 +// CHECK: encoding: [0x62,0x92,0x7d,0x41,0xa3,0xb4,0xde,0x7b,0x00,0x00,0x00] + vscatterqps ZMMWORD PTR [r14+zmm27*8+0x7b]{k1},ymm6 + +// CHECK: vscatterqps zmmword ptr [r9 + zmm27 + 256] {k1}, ymm6 +// CHECK: encoding: [0x62,0x92,0x7d,0x41,0xa3,0x74,0x19,0x40] + vscatterqps ZMMWORD PTR [r9+zmm27*1+0x100]{k1},ymm6 + +// CHECK: vscatterqps zmmword ptr [rcx + 4*zmm27 + 1024] {k1}, ymm6 +// CHECK: encoding: [0x62,0xb2,0x7d,0x41,0xa3,0xb4,0x99,0x00,0x04,0x00,0x00] + vscatterqps ZMMWORD PTR [rcx+zmm27*4+0x400]{k1},ymm6 + +// CHECK: vscatterdpd zmmword ptr [r14 + 8*ymm27 - 123] {k1}, zmm18 +// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa2,0x94,0xde,0x85,0xff,0xff,0xff] + vscatterdpd ZMMWORD PTR [r14+ymm27*8-0x7b]{k1},zmm18 + +// CHECK: vscatterdpd zmmword ptr [r14 + 8*ymm27 - 123] {k1}, zmm18 +// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa2,0x94,0xde,0x85,0xff,0xff,0xff] + vscatterdpd ZMMWORD PTR [r14+ymm27*8-0x7b]{k1},zmm18 + +// CHECK: vscatterdpd zmmword ptr [r9 + ymm27 + 256] {k1}, zmm18 +// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa2,0x54,0x19,0x20] + vscatterdpd ZMMWORD PTR [r9+ymm27*1+0x100]{k1},zmm18 + +// CHECK: vscatterdpd zmmword ptr [rcx + 4*ymm27 + 1024] {k1}, zmm18 +// CHECK: encoding: [0x62,0xa2,0xfd,0x41,0xa2,0x94,0x99,0x00,0x04,0x00,0x00] + vscatterdpd ZMMWORD PTR [rcx+ymm27*4+0x400]{k1},zmm18 + +// CHECK: vscatterdps zmmword ptr [r14 + 8*zmm17 - 123] {k1}, zmm1 +// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0xa2,0x8c,0xce,0x85,0xff,0xff,0xff] + vscatterdps ZMMWORD PTR [r14+zmm17*8-0x7b]{k1},zmm1 + +// CHECK: vscatterdps zmmword ptr [r14 + 8*zmm17 - 123] {k1}, zmm1 +// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0xa2,0x8c,0xce,0x85,0xff,0xff,0xff] + vscatterdps ZMMWORD PTR [r14+zmm17*8-0x7b]{k1},zmm1 + +// CHECK: vscatterdps zmmword ptr [r9 + zmm17 + 256] {k1}, zmm1 +// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0xa2,0x4c,0x09,0x40] + vscatterdps ZMMWORD PTR [r9+zmm17*1+0x100]{k1},zmm1 + +// CHECK: vscatterdps zmmword ptr [rcx + 4*zmm17 + 1024] {k1}, zmm1 +// CHECK: encoding: [0x62,0xf2,0x7d,0x41,0xa2,0x8c,0x89,0x00,0x04,0x00,0x00] + vscatterdps ZMMWORD PTR [rcx+zmm17*4+0x400]{k1},zmm1 + +// CHECK: vscatterqpd zmmword ptr [r14 + 8*zmm25 - 123] {k1}, zmm8 +// CHECK: encoding: [0x62,0x12,0xfd,0x41,0xa3,0x84,0xce,0x85,0xff,0xff,0xff] + vscatterqpd ZMMWORD PTR [r14+zmm25*8-0x7b]{k1},zmm8 + +// CHECK: vscatterqpd zmmword ptr [r14 + 8*zmm25 - 123] {k1}, zmm8 +// CHECK: encoding: [0x62,0x12,0xfd,0x41,0xa3,0x84,0xce,0x85,0xff,0xff,0xff] + vscatterqpd ZMMWORD PTR [r14+zmm25*8-0x7b]{k1},zmm8 + +// CHECK: vscatterqpd zmmword ptr [r9 + zmm25 + 256] {k1}, zmm8 +// CHECK: encoding: [0x62,0x12,0xfd,0x41,0xa3,0x44,0x09,0x20] + vscatterqpd ZMMWORD PTR [r9+zmm25*1+0x100]{k1},zmm8 + +// CHECK: vscatterqpd zmmword ptr [rcx + 4*zmm25 + 1024] {k1}, zmm8 +// CHECK: encoding: [0x62,0x32,0xfd,0x41,0xa3,0x84,0x89,0x00,0x04,0x00,0x00] + vscatterqpd ZMMWORD PTR [rcx+zmm25*4+0x400]{k1},zmm8 + +// CHECK: vscatterqps zmmword ptr [r14 + 8*zmm10 - 123] {k1}, ymm13 +// CHECK: encoding: [0x62,0x12,0x7d,0x49,0xa3,0xac,0xd6,0x85,0xff,0xff,0xff] + vscatterqps ZMMWORD PTR [r14+zmm10*8-0x7b]{k1},ymm13 + +// CHECK: vscatterqps zmmword ptr [r14 + 8*zmm10 - 123] {k1}, ymm13 +// CHECK: encoding: [0x62,0x12,0x7d,0x49,0xa3,0xac,0xd6,0x85,0xff,0xff,0xff] + vscatterqps ZMMWORD PTR [r14+zmm10*8-0x7b]{k1},ymm13 + +// CHECK: vscatterqps zmmword ptr [r9 + zmm10 + 256] {k1}, ymm13 +// CHECK: encoding: [0x62,0x12,0x7d,0x49,0xa3,0x6c,0x11,0x40] + vscatterqps ZMMWORD PTR [r9+zmm10*1+0x100]{k1},ymm13 + +// CHECK: vscatterqps zmmword ptr [rcx + 4*zmm10 + 1024] {k1}, ymm13 +// CHECK: encoding: [0x62,0x32,0x7d,0x49,0xa3,0xac,0x91,0x00,0x04,0x00,0x00] + vscatterqps ZMMWORD PTR [rcx+zmm10*4+0x400]{k1},ymm13 + +// CHECK: vgatherdpd zmm30 {k1}, zmmword ptr [r14 + 8*ymm5 - 123] +// CHECK: encoding: [0x62,0x42,0xfd,0x49,0x92,0xb4,0xee,0x85,0xff,0xff,0xff] + vgatherdpd zmm30{k1},ZMMWORD PTR [r14+ymm5*8-0x7b] + +// CHECK: vgatherdpd zmm30 {k1}, zmmword ptr [r9 + ymm5 + 256] +// CHECK: encoding: [0x62,0x42,0xfd,0x49,0x92,0x74,0x29,0x20] + vgatherdpd zmm30{k1},ZMMWORD PTR [r9+ymm5*1+0x100] + +// CHECK: vgatherdpd zmm30 {k1}, zmmword ptr [rcx + 4*ymm5 + 1024] +// CHECK: encoding: [0x62,0x62,0xfd,0x49,0x92,0xb4,0xa9,0x00,0x04,0x00,0x00] + vgatherdpd zmm30{k1},ZMMWORD PTR [rcx+ymm5*4+0x400] + +// CHECK: vgatherdps zmm8 {k1}, zmmword ptr [r14 + 8*zmm26 - 123] +// CHECK: encoding: [0x62,0x12,0x7d,0x41,0x92,0x84,0xd6,0x85,0xff,0xff,0xff] + vgatherdps zmm8{k1},ZMMWORD PTR [r14+zmm26*8-0x7b] + +// CHECK: vgatherdps zmm8 {k1}, zmmword ptr [r9 + zmm26 + 256] +// CHECK: encoding: [0x62,0x12,0x7d,0x41,0x92,0x44,0x11,0x40] + vgatherdps zmm8{k1},ZMMWORD PTR [r9+zmm26*1+0x100] + +// CHECK: vgatherdps zmm8 {k1}, zmmword ptr [rcx + 4*zmm26 + 1024] +// CHECK: encoding: [0x62,0x32,0x7d,0x41,0x92,0x84,0x91,0x00,0x04,0x00,0x00] + vgatherdps zmm8{k1},ZMMWORD PTR [rcx+zmm26*4+0x400] + +// CHECK: vgatherqpd zmm27 {k1}, zmmword ptr [r14 + 8*zmm13 - 123] +// CHECK: encoding: [0x62,0x02,0xfd,0x49,0x93,0x9c,0xee,0x85,0xff,0xff,0xff] + vgatherqpd zmm27{k1},ZMMWORD PTR [r14+zmm13*8-0x7b] + +// CHECK: vgatherqpd zmm27 {k1}, zmmword ptr [r9 + zmm13 + 256] +// CHECK: encoding: [0x62,0x02,0xfd,0x49,0x93,0x5c,0x29,0x20] + vgatherqpd zmm27{k1},ZMMWORD PTR [r9+zmm13*1+0x100] + +// CHECK: vgatherqpd zmm27 {k1}, zmmword ptr [rcx + 4*zmm13 + 1024] +// CHECK: encoding: [0x62,0x22,0xfd,0x49,0x93,0x9c,0xa9,0x00,0x04,0x00,0x00] + vgatherqpd zmm27{k1},ZMMWORD PTR [rcx+zmm13*4+0x400] + +// CHECK: vgatherqps ymm27 {k1}, zmmword ptr [r14 + 8*zmm14 - 123] +// CHECK: encoding: [0x62,0x02,0x7d,0x49,0x93,0x9c,0xf6,0x85,0xff,0xff,0xff] + vgatherqps ymm27{k1},ZMMWORD PTR [r14+zmm14*8-0x7b] + +// CHECK: vgatherqps ymm27 {k1}, zmmword ptr [r9 + zmm14 + 256] +// CHECK: encoding: [0x62,0x02,0x7d,0x49,0x93,0x5c,0x31,0x40] + vgatherqps ymm27{k1},ZMMWORD PTR [r9+zmm14*1+0x100] + +// CHECK: vgatherqps ymm27 {k1}, zmmword ptr [rcx + 4*zmm14 + 1024] +// CHECK: encoding: [0x62,0x22,0x7d,0x49,0x93,0x9c,0xb1,0x00,0x04,0x00,0x00] + vgatherqps ymm27{k1},ZMMWORD PTR [rcx+zmm14*4+0x400] + +// CHECK: vpgatherdd zmm7 {k1}, zmmword ptr [r14 + 8*zmm16 - 123] +// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0x90,0xbc,0xc6,0x85,0xff,0xff,0xff] + vpgatherdd zmm7{k1},ZMMWORD PTR [r14+zmm16*8-0x7b] + +// CHECK: vpgatherdd zmm7 {k1}, zmmword ptr [r9 + zmm16 + 256] +// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0x90,0x7c,0x01,0x40] + vpgatherdd zmm7{k1},ZMMWORD PTR [r9+zmm16*1+0x100] + +// CHECK: vpgatherdd zmm7 {k1}, zmmword ptr [rcx + 4*zmm16 + 1024] +// CHECK: encoding: [0x62,0xf2,0x7d,0x41,0x90,0xbc,0x81,0x00,0x04,0x00,0x00] + vpgatherdd zmm7{k1},ZMMWORD PTR [rcx+zmm16*4+0x400] + +// CHECK: vpgatherdq zmm25 {k1}, zmmword ptr [r14 + 8*ymm7 - 123] +// CHECK: encoding: [0x62,0x42,0xfd,0x49,0x90,0x8c,0xfe,0x85,0xff,0xff,0xff] + vpgatherdq zmm25{k1},ZMMWORD PTR [r14+ymm7*8-0x7b] + +// CHECK: vpgatherdq zmm25 {k1}, zmmword ptr [r9 + ymm7 + 256] +// CHECK: encoding: [0x62,0x42,0xfd,0x49,0x90,0x4c,0x39,0x20] + vpgatherdq zmm25{k1},ZMMWORD PTR [r9+ymm7*1+0x100] + +// CHECK: vpgatherdq zmm25 {k1}, zmmword ptr [rcx + 4*ymm7 + 1024] +// CHECK: encoding: [0x62,0x62,0xfd,0x49,0x90,0x8c,0xb9,0x00,0x04,0x00,0x00] + vpgatherdq zmm25{k1},ZMMWORD PTR [rcx+ymm7*4+0x400] + +// CHECK: vpgatherqd ymm19 {k1}, zmmword ptr [r14 + 8*zmm17 - 123] +// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0x91,0x9c,0xce,0x85,0xff,0xff,0xff] + vpgatherqd ymm19{k1},ZMMWORD PTR [r14+zmm17*8-0x7b] + +// CHECK: vpgatherqd ymm19 {k1}, zmmword ptr [r9 + zmm17 + 256] +// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0x91,0x5c,0x09,0x40] + vpgatherqd ymm19{k1},ZMMWORD PTR [r9+zmm17*1+0x100] + +// CHECK: vpgatherqd ymm19 {k1}, zmmword ptr [rcx + 4*zmm17 + 1024] +// CHECK: encoding: [0x62,0xe2,0x7d,0x41,0x91,0x9c,0x89,0x00,0x04,0x00,0x00] + vpgatherqd ymm19{k1},ZMMWORD PTR [rcx+zmm17*4+0x400] + +// CHECK: vpgatherqq zmm10 {k1}, zmmword ptr [r14 + 8*zmm13 - 123] +// CHECK: encoding: [0x62,0x12,0xfd,0x49,0x91,0x94,0xee,0x85,0xff,0xff,0xff] + vpgatherqq zmm10{k1},ZMMWORD PTR [r14+zmm13*8-0x7b] + +// CHECK: vpgatherqq zmm10 {k1}, zmmword ptr [r9 + zmm13 + 256] +// CHECK: encoding: [0x62,0x12,0xfd,0x49,0x91,0x54,0x29,0x20] + vpgatherqq zmm10{k1},ZMMWORD PTR [r9+zmm13*1+0x100] + +// CHECK: vpgatherqq zmm10 {k1}, zmmword ptr [rcx + 4*zmm13 + 1024] +// CHECK: encoding: [0x62,0x32,0xfd,0x49,0x91,0x94,0xa9,0x00,0x04,0x00,0x00] + vpgatherqq zmm10{k1},ZMMWORD PTR [rcx+zmm13*4+0x400] + +// CHECK: vpscatterdd zmmword ptr [r14 + 8*zmm4 - 123] {k1}, zmm23 +// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0xa0,0xbc,0xe6,0x85,0xff,0xff,0xff] + vpscatterdd ZMMWORD PTR [r14+zmm4*8-0x7b]{k1},zmm23 + +// CHECK: vpscatterdd zmmword ptr [r14 + 8*zmm4 - 123] {k1}, zmm23 +// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0xa0,0xbc,0xe6,0x85,0xff,0xff,0xff] + vpscatterdd ZMMWORD PTR [r14+zmm4*8-0x7b]{k1},zmm23 + +// CHECK: vpscatterdd zmmword ptr [r9 + zmm4 + 256] {k1}, zmm23 +// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0xa0,0x7c,0x21,0x40] + vpscatterdd ZMMWORD PTR [r9+zmm4*1+0x100]{k1},zmm23 + +// CHECK: vpscatterdd zmmword ptr [rcx + 4*zmm4 + 1024] {k1}, zmm23 +// CHECK: encoding: [0x62,0xe2,0x7d,0x49,0xa0,0xbc,0xa1,0x00,0x04,0x00,0x00] + vpscatterdd ZMMWORD PTR [rcx+zmm4*4+0x400]{k1},zmm23 + +// CHECK: vpscatterdq zmmword ptr [r14 + 8*ymm25 - 123] {k1}, zmm1 +// CHECK: encoding: [0x62,0x92,0xfd,0x41,0xa0,0x8c,0xce,0x85,0xff,0xff,0xff] + vpscatterdq ZMMWORD PTR [r14+ymm25*8-0x7b]{k1},zmm1 + +// CHECK: vpscatterdq zmmword ptr [r14 + 8*ymm25 - 123] {k1}, zmm1 +// CHECK: encoding: [0x62,0x92,0xfd,0x41,0xa0,0x8c,0xce,0x85,0xff,0xff,0xff] + vpscatterdq ZMMWORD PTR [r14+ymm25*8-0x7b]{k1},zmm1 + +// CHECK: vpscatterdq zmmword ptr [r9 + ymm25 + 256] {k1}, zmm1 +// CHECK: encoding: [0x62,0x92,0xfd,0x41,0xa0,0x4c,0x09,0x20] + vpscatterdq ZMMWORD PTR [r9+ymm25*1+0x100]{k1},zmm1 + +// CHECK: vpscatterdq zmmword ptr [rcx + 4*ymm25 + 1024] {k1}, zmm1 +// CHECK: encoding: [0x62,0xb2,0xfd,0x41,0xa0,0x8c,0x89,0x00,0x04,0x00,0x00] + vpscatterdq ZMMWORD PTR [rcx+ymm25*4+0x400]{k1},zmm1 + +// CHECK: vpscatterqd zmmword ptr [r14 + 8*zmm22 - 123] {k1}, ymm23 +// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa1,0xbc,0xf6,0x85,0xff,0xff,0xff] + vpscatterqd ZMMWORD PTR [r14+zmm22*8-0x7b]{k1},ymm23 + +// CHECK: vpscatterqd zmmword ptr [r14 + 8*zmm22 - 123] {k1}, ymm23 +// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa1,0xbc,0xf6,0x85,0xff,0xff,0xff] + vpscatterqd ZMMWORD PTR [r14+zmm22*8-0x7b]{k1},ymm23 + +// CHECK: vpscatterqd zmmword ptr [r9 + zmm22 + 256] {k1}, ymm23 +// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa1,0x7c,0x31,0x40] + vpscatterqd ZMMWORD PTR [r9+zmm22*1+0x100]{k1},ymm23 + +// CHECK: vpscatterqd zmmword ptr [rcx + 4*zmm22 + 1024] {k1}, ymm23 +// CHECK: encoding: [0x62,0xe2,0x7d,0x41,0xa1,0xbc,0xb1,0x00,0x04,0x00,0x00] + vpscatterqd ZMMWORD PTR [rcx+zmm22*4+0x400]{k1},ymm23 + +// CHECK: vpscatterqq zmmword ptr [r14 + 8*zmm8 - 123] {k1}, zmm2 +// CHECK: encoding: [0x62,0x92,0xfd,0x49,0xa1,0x94,0xc6,0x85,0xff,0xff,0xff] + vpscatterqq ZMMWORD PTR [r14+zmm8*8-0x7b]{k1},zmm2 + +// CHECK: vpscatterqq zmmword ptr [r14 + 8*zmm8 - 123] {k1}, zmm2 +// CHECK: encoding: [0x62,0x92,0xfd,0x49,0xa1,0x94,0xc6,0x85,0xff,0xff,0xff] + vpscatterqq ZMMWORD PTR [r14+zmm8*8-0x7b]{k1},zmm2 + +// CHECK: vpscatterqq zmmword ptr [r9 + zmm8 + 256] {k1}, zmm2 +// CHECK: encoding: [0x62,0x92,0xfd,0x49,0xa1,0x54,0x01,0x20] + vpscatterqq ZMMWORD PTR [r9+zmm8*1+0x100]{k1},zmm2 + +// CHECK: vpscatterqq zmmword ptr [rcx + 4*zmm8 + 1024] {k1}, zmm2 +// CHECK: encoding: [0x62,0xb2,0xfd,0x49,0xa1,0x94,0x81,0x00,0x04,0x00,0x00] + vpscatterqq ZMMWORD PTR [rcx+zmm8*4+0x400]{k1},zmm2 diff --git a/test/MC/X86/intel-syntax-x86-64-avx.s b/test/MC/X86/intel-syntax-x86-64-avx.s new file mode 100644 index 00000000000..eff0974c1a0 --- /dev/null +++ b/test/MC/X86/intel-syntax-x86-64-avx.s @@ -0,0 +1,65 @@ +// RUN: llvm-mc -triple x86_64-unknown-unknown -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s + +// CHECK: vgatherdpd xmm2, xmmword ptr [rdi + 2*xmm1], xmm0 +// CHECK: encoding: [0xc4,0xe2,0xf9,0x92,0x14,0x4f] + vgatherdpd xmm2, xmmword ptr [rdi + 2*xmm1], xmm0 + +// CHECK: vgatherqpd xmm2, xmmword ptr [rdi + 2*xmm1], xmm0 +// CHECK: encoding: [0xc4,0xe2,0xf9,0x93,0x14,0x4f] + vgatherqpd xmm2, xmmword ptr [rdi + 2*xmm1], xmm0 + +// CHECK: vgatherdpd ymm2, ymmword ptr [rdi + 2*xmm1], ymm0 +// CHECK: encoding: [0xc4,0xe2,0xfd,0x92,0x14,0x4f] + vgatherdpd ymm2, ymmword ptr [rdi + 2*xmm1], ymm0 + +// CHECK: vgatherqpd ymm2, ymmword ptr [rdi + 2*ymm1], ymm0 +// CHECK: encoding: [0xc4,0xe2,0xfd,0x93,0x14,0x4f] + vgatherqpd ymm2, ymmword ptr [rdi + 2*ymm1], ymm0 + +// CHECK: vgatherdps xmm10, xmmword ptr [r15 + 2*xmm9], xmm8 +// CHECK: encoding: [0xc4,0x02,0x39,0x92,0x14,0x4f] + vgatherdps xmm10, xmmword ptr [r15 + 2*xmm9], xmm8 + +// CHECK: vgatherqps xmm10, qword ptr [r15 + 2*xmm9], xmm8 +// CHECK: encoding: [0xc4,0x02,0x39,0x93,0x14,0x4f] + vgatherqps xmm10, qword ptr [r15 + 2*xmm9], xmm8 + +// CHECK: vgatherdps ymm10, ymmword ptr [r15 + 2*ymm9], ymm8 +// CHECK: encoding: [0xc4,0x02,0x3d,0x92,0x14,0x4f] + vgatherdps ymm10, ymmword ptr [r15 + 2*ymm9], ymm8 + +// CHECK: vgatherqps xmm10, xmmword ptr [r15 + 2*ymm9], xmm8 +// CHECK: encoding: [0xc4,0x02,0x3d,0x93,0x14,0x4f] + vgatherqps xmm10, xmmword ptr [r15 + 2*ymm9], xmm8 + +// CHECK: vpgatherdq xmm2, xmmword ptr [rdi + 2*xmm1], xmm0 +// CHECK: encoding: [0xc4,0xe2,0xf9,0x90,0x14,0x4f] + vpgatherdq xmm2, xmmword ptr [rdi + 2*xmm1], xmm0 + +// CHECK: vpgatherqq xmm2, xmmword ptr [rdi + 2*xmm1], xmm0 +// CHECK: encoding: [0xc4,0xe2,0xf9,0x91,0x14,0x4f] + vpgatherqq xmm2, xmmword ptr [rdi + 2*xmm1], xmm0 + +// CHECK: vpgatherdq ymm2, ymmword ptr [rdi + 2*xmm1], ymm0 +// CHECK: encoding: [0xc4,0xe2,0xfd,0x90,0x14,0x4f] + vpgatherdq ymm2, ymmword ptr [rdi + 2*xmm1], ymm0 + +// CHECK: vpgatherqq ymm2, ymmword ptr [rdi + 2*ymm1], ymm0 +// CHECK: encoding: [0xc4,0xe2,0xfd,0x91,0x14,0x4f] + vpgatherqq ymm2, ymmword ptr [rdi + 2*ymm1], ymm0 + +// CHECK: vpgatherdd xmm10, xmmword ptr [r15 + 2*xmm9], xmm8 +// CHECK: encoding: [0xc4,0x02,0x39,0x90,0x14,0x4f] + vpgatherdd xmm10, xmmword ptr [r15 + 2*xmm9], xmm8 + +// CHECK: vpgatherqd xmm10, qword ptr [r15 + 2*xmm9], xmm8 +// CHECK: encoding: [0xc4,0x02,0x39,0x91,0x14,0x4f] + vpgatherqd xmm10, qword ptr [r15 + 2*xmm9], xmm8 + +// CHECK: vpgatherdd ymm10, ymmword ptr [r15 + 2*ymm9], ymm8 +// CHECK: encoding: [0xc4,0x02,0x3d,0x90,0x14,0x4f] + vpgatherdd ymm10, ymmword ptr [r15 + 2*ymm9], ymm8 + +// CHECK: vpgatherqd xmm10, xmmword ptr [r15 + 2*ymm9], xmm8 +// CHECK: encoding: [0xc4,0x02,0x3d,0x91,0x14,0x4f] + vpgatherqd xmm10, xmmword ptr [r15 + 2*ymm9], xmm8 diff --git a/test/MC/X86/intel-syntax-x86-64-avx512f_vl.s b/test/MC/X86/intel-syntax-x86-64-avx512f_vl.s index 80e26f1ef02..caff5978d5d 100644 --- a/test/MC/X86/intel-syntax-x86-64-avx512f_vl.s +++ b/test/MC/X86/intel-syntax-x86-64-avx512f_vl.s @@ -223,3 +223,900 @@ // CHECK: vcmpps k4, ymm19, dword ptr [rdx - 516]{1to8}, 123 // CHECK: encoding: [0x62,0xf1,0x64,0x30,0xc2,0xa2,0xfc,0xfd,0xff,0xff,0x7b] vcmpps k4,ymm19,DWORD PTR [rdx-0x204]{1to8},0x7b + +// CHECK: vgatherdpd xmm17 {k1}, xmmword ptr [r14 + 8*xmm31 + 123] +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x92,0x8c,0xfe,0x7b,0x00,0x00,0x00] + vgatherdpd xmm17 {k1}, xmmword ptr [r14 + 8*xmm31 + 123] + +// CHECK: vgatherdpd xmm17 {k1}, xmmword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x92,0x4c,0x39,0x20] + vgatherdpd xmm17 {k1}, xmmword ptr [r9 + xmm31 + 256] + +// CHECK: vgatherdpd xmm17 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0x92,0x8c,0xb9,0x00,0x04,0x00,0x00] + vgatherdpd xmm17 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vgatherdpd ymm23 {k1}, ymmword ptr [r14 + 8*xmm31 + 123] +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x92,0xbc,0xfe,0x7b,0x00,0x00,0x00] + vgatherdpd ymm23 {k1}, ymmword ptr [r14 + 8*xmm31 + 123] + +// CHECK: vgatherdpd ymm23 {k1}, ymmword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x92,0x7c,0x39,0x20] + vgatherdpd ymm23 {k1}, ymmword ptr [r9 + xmm31 + 256] + +// CHECK: vgatherdpd ymm23 {k1}, ymmword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0x92,0xbc,0xb9,0x00,0x04,0x00,0x00] + vgatherdpd ymm23 {k1}, ymmword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vgatherdpd xmm23 {k1}, xmmword ptr [r14 + 8*xmm31 - 123] +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x92,0xbc,0xfe,0x85,0xff,0xff,0xff] + vgatherdpd xmm23 {k1}, xmmword ptr [r14 + 8*xmm31 - 123] + +// CHECK: vgatherdpd xmm23 {k1}, xmmword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x92,0x7c,0x39,0x20] + vgatherdpd xmm23 {k1}, xmmword ptr [r9 + xmm31 + 256] + +// CHECK: vgatherdpd xmm23 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0x92,0xbc,0xb9,0x00,0x04,0x00,0x00] + vgatherdpd xmm23 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vgatherdpd ymm18 {k1}, ymmword ptr [r14 + 8*xmm31 - 123] +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x92,0x94,0xfe,0x85,0xff,0xff,0xff] + vgatherdpd ymm18 {k1}, ymmword ptr [r14 + 8*xmm31 - 123] + +// CHECK: vgatherdpd ymm18 {k1}, ymmword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x92,0x54,0x39,0x20] + vgatherdpd ymm18 {k1}, ymmword ptr [r9 + xmm31 + 256] + +// CHECK: vgatherdpd ymm18 {k1}, ymmword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0x92,0x94,0xb9,0x00,0x04,0x00,0x00] + vgatherdpd ymm18 {k1}, ymmword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vgatherdps xmm18 {k1}, xmmword ptr [r14 + 8*xmm31 + 123] +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x92,0x94,0xfe,0x7b,0x00,0x00,0x00] + vgatherdps xmm18 {k1}, xmmword ptr [r14 + 8*xmm31 + 123] + +// CHECK: vgatherdps xmm18 {k1}, xmmword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x92,0x54,0x39,0x40] + vgatherdps xmm18 {k1}, xmmword ptr [r9 + xmm31 + 256] + +// CHECK: vgatherdps xmm18 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0x92,0x94,0xb9,0x00,0x04,0x00,0x00] + vgatherdps xmm18 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vgatherdps ymm27 {k1}, ymmword ptr [r14 + 8*ymm31 + 123] +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x92,0x9c,0xfe,0x7b,0x00,0x00,0x00] + vgatherdps ymm27 {k1}, ymmword ptr [r14 + 8*ymm31 + 123] + +// CHECK: vgatherdps ymm27 {k1}, ymmword ptr [r9 + ymm31 + 256] +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x92,0x5c,0x39,0x40] + vgatherdps ymm27 {k1}, ymmword ptr [r9 + ymm31 + 256] + +// CHECK: vgatherdps ymm27 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024] +// CHECK: encoding: [0x62,0x22,0x7d,0x21,0x92,0x9c,0xb9,0x00,0x04,0x00,0x00] + vgatherdps ymm27 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024] + +// CHECK: vgatherdps xmm29 {k1}, xmmword ptr [r14 + 8*xmm31 - 123] +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0x92,0xac,0xfe,0x85,0xff,0xff,0xff] + vgatherdps xmm29 {k1}, xmmword ptr [r14 + 8*xmm31 - 123] + +// CHECK: vgatherdps xmm29 {k1}, xmmword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0x92,0x6c,0x39,0x40] + vgatherdps xmm29 {k1}, xmmword ptr [r9 + xmm31 + 256] + +// CHECK: vgatherdps xmm29 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0x22,0x7d,0x01,0x92,0xac,0xb9,0x00,0x04,0x00,0x00] + vgatherdps xmm29 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vgatherdps ymm21 {k1}, ymmword ptr [r14 + 8*ymm31 - 123] +// CHECK: encoding: [0x62,0x82,0x7d,0x21,0x92,0xac,0xfe,0x85,0xff,0xff,0xff] + vgatherdps ymm21 {k1}, ymmword ptr [r14 + 8*ymm31 - 123] + +// CHECK: vgatherdps ymm21 {k1}, ymmword ptr [r9 + ymm31 + 256] +// CHECK: encoding: [0x62,0x82,0x7d,0x21,0x92,0x6c,0x39,0x40] + vgatherdps ymm21 {k1}, ymmword ptr [r9 + ymm31 + 256] + +// CHECK: vgatherdps ymm21 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0x7d,0x21,0x92,0xac,0xb9,0x00,0x04,0x00,0x00] + vgatherdps ymm21 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024] + +// CHECK: vgatherqpd xmm17 {k1}, xmmword ptr [r14 + 8*xmm31 + 123] +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x93,0x8c,0xfe,0x7b,0x00,0x00,0x00] + vgatherqpd xmm17 {k1}, xmmword ptr [r14 + 8*xmm31 + 123] + +// CHECK: vgatherqpd xmm17 {k1}, xmmword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x93,0x4c,0x39,0x20] + vgatherqpd xmm17 {k1}, xmmword ptr [r9 + xmm31 + 256] + +// CHECK: vgatherqpd xmm17 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0x93,0x8c,0xb9,0x00,0x04,0x00,0x00] + vgatherqpd xmm17 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vgatherqpd ymm29 {k1}, ymmword ptr [r14 + 8*ymm31 + 123] +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0x93,0xac,0xfe,0x7b,0x00,0x00,0x00] + vgatherqpd ymm29 {k1}, ymmword ptr [r14 + 8*ymm31 + 123] + +// CHECK: vgatherqpd ymm29 {k1}, ymmword ptr [r9 + ymm31 + 256] +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0x93,0x6c,0x39,0x20] + vgatherqpd ymm29 {k1}, ymmword ptr [r9 + ymm31 + 256] + +// CHECK: vgatherqpd ymm29 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024] +// CHECK: encoding: [0x62,0x22,0xfd,0x21,0x93,0xac,0xb9,0x00,0x04,0x00,0x00] + vgatherqpd ymm29 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024] + +// CHECK: vgatherqpd xmm18 {k1}, xmmword ptr [r14 + 8*xmm31 - 123] +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x93,0x94,0xfe,0x85,0xff,0xff,0xff] + vgatherqpd xmm18 {k1}, xmmword ptr [r14 + 8*xmm31 - 123] + +// CHECK: vgatherqpd xmm18 {k1}, xmmword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x93,0x54,0x39,0x20] + vgatherqpd xmm18 {k1}, xmmword ptr [r9 + xmm31 + 256] + +// CHECK: vgatherqpd xmm18 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0x93,0x94,0xb9,0x00,0x04,0x00,0x00] + vgatherqpd xmm18 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vgatherqpd ymm21 {k1}, ymmword ptr [r14 + 8*ymm31 - 123] +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x93,0xac,0xfe,0x85,0xff,0xff,0xff] + vgatherqpd ymm21 {k1}, ymmword ptr [r14 + 8*ymm31 - 123] + +// CHECK: vgatherqpd ymm21 {k1}, ymmword ptr [r9 + ymm31 + 256] +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x93,0x6c,0x39,0x20] + vgatherqpd ymm21 {k1}, ymmword ptr [r9 + ymm31 + 256] + +// CHECK: vgatherqpd ymm21 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0x93,0xac,0xb9,0x00,0x04,0x00,0x00] + vgatherqpd ymm21 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024] + +// CHECK: vgatherqps xmm21 {k1}, qword ptr [r14 + 8*xmm31 + 123] +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x93,0xac,0xfe,0x7b,0x00,0x00,0x00] + vgatherqps xmm21 {k1}, qword ptr [r14 + 8*xmm31 + 123] + +// CHECK: vgatherqps xmm21 {k1}, qword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x93,0x6c,0x39,0x40] + vgatherqps xmm21 {k1}, qword ptr [r9 + xmm31 + 256] + +// CHECK: vgatherqps xmm21 {k1}, qword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0x93,0xac,0xb9,0x00,0x04,0x00,0x00] + vgatherqps xmm21 {k1}, qword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vgatherqps xmm19 {k1}, xmmword ptr [r14 + 8*ymm31 + 123] +// CHECK: encoding: [0x62,0x82,0x7d,0x21,0x93,0x9c,0xfe,0x7b,0x00,0x00,0x00] + vgatherqps xmm19 {k1}, xmmword ptr [r14 + 8*ymm31 + 123] + +// CHECK: vgatherqps xmm19 {k1}, xmmword ptr [r9 + ymm31 + 256] +// CHECK: encoding: [0x62,0x82,0x7d,0x21,0x93,0x5c,0x39,0x40] + vgatherqps xmm19 {k1}, xmmword ptr [r9 + ymm31 + 256] + +// CHECK: vgatherqps xmm19 {k1}, xmmword ptr [rcx + 4*ymm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0x7d,0x21,0x93,0x9c,0xb9,0x00,0x04,0x00,0x00] + vgatherqps xmm19 {k1}, xmmword ptr [rcx + 4*ymm31 + 1024] + +// CHECK: vgatherqps xmm22 {k1}, qword ptr [r14 + 8*xmm31 - 123] +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x93,0xb4,0xfe,0x85,0xff,0xff,0xff] + vgatherqps xmm22 {k1}, qword ptr [r14 + 8*xmm31 - 123] + +// CHECK: vgatherqps xmm22 {k1}, qword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x93,0x74,0x39,0x40] + vgatherqps xmm22 {k1}, qword ptr [r9 + xmm31 + 256] + +// CHECK: vgatherqps xmm22 {k1}, qword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0x93,0xb4,0xb9,0x00,0x04,0x00,0x00] + vgatherqps xmm22 {k1}, qword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vgatherqps xmm30 {k1}, xmmword ptr [r14 + 8*ymm31 - 123] +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x93,0xb4,0xfe,0x85,0xff,0xff,0xff] + vgatherqps xmm30 {k1}, xmmword ptr [r14 + 8*ymm31 - 123] + +// CHECK: vgatherqps xmm30 {k1}, xmmword ptr [r9 + ymm31 + 256] +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x93,0x74,0x39,0x40] + vgatherqps xmm30 {k1}, xmmword ptr [r9 + ymm31 + 256] + +// CHECK: vgatherqps xmm30 {k1}, xmmword ptr [rcx + 4*ymm31 + 1024] +// CHECK: encoding: [0x62,0x22,0x7d,0x21,0x93,0xb4,0xb9,0x00,0x04,0x00,0x00] + vgatherqps xmm30 {k1}, xmmword ptr [rcx + 4*ymm31 + 1024] + +// CHECK: vpgatherdd xmm17 {k1}, xmmword ptr [r14 + 8*xmm31 + 123] +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x90,0x8c,0xfe,0x7b,0x00,0x00,0x00] + vpgatherdd xmm17 {k1}, xmmword ptr [r14 + 8*xmm31 + 123] + +// CHECK: vpgatherdd xmm17 {k1}, xmmword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x90,0x4c,0x39,0x40] + vpgatherdd xmm17 {k1}, xmmword ptr [r9 + xmm31 + 256] + +// CHECK: vpgatherdd xmm17 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0x90,0x8c,0xb9,0x00,0x04,0x00,0x00] + vpgatherdd xmm17 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vpgatherdd ymm19 {k1}, ymmword ptr [r14 + 8*ymm31 + 123] +// CHECK: encoding: [0x62,0x82,0x7d,0x21,0x90,0x9c,0xfe,0x7b,0x00,0x00,0x00] + vpgatherdd ymm19 {k1}, ymmword ptr [r14 + 8*ymm31 + 123] + +// CHECK: vpgatherdd ymm19 {k1}, ymmword ptr [r9 + ymm31 + 256] +// CHECK: encoding: [0x62,0x82,0x7d,0x21,0x90,0x5c,0x39,0x40] + vpgatherdd ymm19 {k1}, ymmword ptr [r9 + ymm31 + 256] + +// CHECK: vpgatherdd ymm19 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0x7d,0x21,0x90,0x9c,0xb9,0x00,0x04,0x00,0x00] + vpgatherdd ymm19 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024] + +// CHECK: vpgatherdd xmm22 {k1}, xmmword ptr [r14 + 8*xmm31 - 123] +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x90,0xb4,0xfe,0x85,0xff,0xff,0xff] + vpgatherdd xmm22 {k1}, xmmword ptr [r14 + 8*xmm31 - 123] + +// CHECK: vpgatherdd xmm22 {k1}, xmmword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x90,0x74,0x39,0x40] + vpgatherdd xmm22 {k1}, xmmword ptr [r9 + xmm31 + 256] + +// CHECK: vpgatherdd xmm22 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0x90,0xb4,0xb9,0x00,0x04,0x00,0x00] + vpgatherdd xmm22 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vpgatherdd ymm29 {k1}, ymmword ptr [r14 + 8*ymm31 - 123] +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x90,0xac,0xfe,0x85,0xff,0xff,0xff] + vpgatherdd ymm29 {k1}, ymmword ptr [r14 + 8*ymm31 - 123] + +// CHECK: vpgatherdd ymm29 {k1}, ymmword ptr [r9 + ymm31 + 256] +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x90,0x6c,0x39,0x40] + vpgatherdd ymm29 {k1}, ymmword ptr [r9 + ymm31 + 256] + +// CHECK: vpgatherdd ymm29 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024] +// CHECK: encoding: [0x62,0x22,0x7d,0x21,0x90,0xac,0xb9,0x00,0x04,0x00,0x00] + vpgatherdd ymm29 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024] + +// CHECK: vpgatherdq xmm17 {k1}, xmmword ptr [r14 + 8*xmm31 + 123] +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x90,0x8c,0xfe,0x7b,0x00,0x00,0x00] + vpgatherdq xmm17 {k1}, xmmword ptr [r14 + 8*xmm31 + 123] + +// CHECK: vpgatherdq xmm17 {k1}, xmmword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x90,0x4c,0x39,0x20] + vpgatherdq xmm17 {k1}, xmmword ptr [r9 + xmm31 + 256] + +// CHECK: vpgatherdq xmm17 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0x90,0x8c,0xb9,0x00,0x04,0x00,0x00] + vpgatherdq xmm17 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vpgatherdq ymm26 {k1}, ymmword ptr [r14 + 8*xmm31 + 123] +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0x90,0x94,0xfe,0x7b,0x00,0x00,0x00] + vpgatherdq ymm26 {k1}, ymmword ptr [r14 + 8*xmm31 + 123] + +// CHECK: vpgatherdq ymm26 {k1}, ymmword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0x90,0x54,0x39,0x20] + vpgatherdq ymm26 {k1}, ymmword ptr [r9 + xmm31 + 256] + +// CHECK: vpgatherdq ymm26 {k1}, ymmword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0x22,0xfd,0x21,0x90,0x94,0xb9,0x00,0x04,0x00,0x00] + vpgatherdq ymm26 {k1}, ymmword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vpgatherdq xmm25 {k1}, xmmword ptr [r14 + 8*xmm31 - 123] +// CHECK: encoding: [0x62,0x02,0xfd,0x01,0x90,0x8c,0xfe,0x85,0xff,0xff,0xff] + vpgatherdq xmm25 {k1}, xmmword ptr [r14 + 8*xmm31 - 123] + +// CHECK: vpgatherdq xmm25 {k1}, xmmword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x02,0xfd,0x01,0x90,0x4c,0x39,0x20] + vpgatherdq xmm25 {k1}, xmmword ptr [r9 + xmm31 + 256] + +// CHECK: vpgatherdq xmm25 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0x22,0xfd,0x01,0x90,0x8c,0xb9,0x00,0x04,0x00,0x00] + vpgatherdq xmm25 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vpgatherdq ymm22 {k1}, ymmword ptr [r14 + 8*xmm31 - 123] +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x90,0xb4,0xfe,0x85,0xff,0xff,0xff] + vpgatherdq ymm22 {k1}, ymmword ptr [r14 + 8*xmm31 - 123] + +// CHECK: vpgatherdq ymm22 {k1}, ymmword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x90,0x74,0x39,0x20] + vpgatherdq ymm22 {k1}, ymmword ptr [r9 + xmm31 + 256] + +// CHECK: vpgatherdq ymm22 {k1}, ymmword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0x90,0xb4,0xb9,0x00,0x04,0x00,0x00] + vpgatherdq ymm22 {k1}, ymmword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vpgatherqd xmm21 {k1}, qword ptr [r14 + 8*xmm31 + 123] +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x91,0xac,0xfe,0x7b,0x00,0x00,0x00] + vpgatherqd xmm21 {k1}, qword ptr [r14 + 8*xmm31 + 123] + +// CHECK: vpgatherqd xmm21 {k1}, qword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x91,0x6c,0x39,0x40] + vpgatherqd xmm21 {k1}, qword ptr [r9 + xmm31 + 256] + +// CHECK: vpgatherqd xmm21 {k1}, qword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0x91,0xac,0xb9,0x00,0x04,0x00,0x00] + vpgatherqd xmm21 {k1}, qword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vpgatherqd xmm25 {k1}, xmmword ptr [r14 + 8*ymm31 + 123] +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x91,0x8c,0xfe,0x7b,0x00,0x00,0x00] + vpgatherqd xmm25 {k1}, xmmword ptr [r14 + 8*ymm31 + 123] + +// CHECK: vpgatherqd xmm25 {k1}, xmmword ptr [r9 + ymm31 + 256] +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x91,0x4c,0x39,0x40] + vpgatherqd xmm25 {k1}, xmmword ptr [r9 + ymm31 + 256] + +// CHECK: vpgatherqd xmm25 {k1}, xmmword ptr [rcx + 4*ymm31 + 1024] +// CHECK: encoding: [0x62,0x22,0x7d,0x21,0x91,0x8c,0xb9,0x00,0x04,0x00,0x00] + vpgatherqd xmm25 {k1}, xmmword ptr [rcx + 4*ymm31 + 1024] + +// CHECK: vpgatherqd xmm30 {k1}, qword ptr [r14 + 8*xmm31 - 123] +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0x91,0xb4,0xfe,0x85,0xff,0xff,0xff] + vpgatherqd xmm30 {k1}, qword ptr [r14 + 8*xmm31 - 123] + +// CHECK: vpgatherqd xmm30 {k1}, qword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0x91,0x74,0x39,0x40] + vpgatherqd xmm30 {k1}, qword ptr [r9 + xmm31 + 256] + +// CHECK: vpgatherqd xmm30 {k1}, qword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0x22,0x7d,0x01,0x91,0xb4,0xb9,0x00,0x04,0x00,0x00] + vpgatherqd xmm30 {k1}, qword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vpgatherqd xmm28 {k1}, xmmword ptr [r14 + 8*ymm31 - 123] +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x91,0xa4,0xfe,0x85,0xff,0xff,0xff] + vpgatherqd xmm28 {k1}, xmmword ptr [r14 + 8*ymm31 - 123] + +// CHECK: vpgatherqd xmm28 {k1}, xmmword ptr [r9 + ymm31 + 256] +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x91,0x64,0x39,0x40] + vpgatherqd xmm28 {k1}, xmmword ptr [r9 + ymm31 + 256] + +// CHECK: vpgatherqd xmm28 {k1}, xmmword ptr [rcx + 4*ymm31 + 1024] +// CHECK: encoding: [0x62,0x22,0x7d,0x21,0x91,0xa4,0xb9,0x00,0x04,0x00,0x00] + vpgatherqd xmm28 {k1}, xmmword ptr [rcx + 4*ymm31 + 1024] + +// CHECK: vpgatherqq xmm18 {k1}, xmmword ptr [r14 + 8*xmm31 + 123] +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x91,0x94,0xfe,0x7b,0x00,0x00,0x00] + vpgatherqq xmm18 {k1}, xmmword ptr [r14 + 8*xmm31 + 123] + +// CHECK: vpgatherqq xmm18 {k1}, xmmword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x91,0x54,0x39,0x20] + vpgatherqq xmm18 {k1}, xmmword ptr [r9 + xmm31 + 256] + +// CHECK: vpgatherqq xmm18 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0x91,0x94,0xb9,0x00,0x04,0x00,0x00] + vpgatherqq xmm18 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vpgatherqq ymm19 {k1}, ymmword ptr [r14 + 8*ymm31 + 123] +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x91,0x9c,0xfe,0x7b,0x00,0x00,0x00] + vpgatherqq ymm19 {k1}, ymmword ptr [r14 + 8*ymm31 + 123] + +// CHECK: vpgatherqq ymm19 {k1}, ymmword ptr [r9 + ymm31 + 256] +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x91,0x5c,0x39,0x20] + vpgatherqq ymm19 {k1}, ymmword ptr [r9 + ymm31 + 256] + +// CHECK: vpgatherqq ymm19 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0x91,0x9c,0xb9,0x00,0x04,0x00,0x00] + vpgatherqq ymm19 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024] + +// CHECK: vpgatherqq xmm23 {k1}, xmmword ptr [r14 + 8*xmm31 - 123] +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x91,0xbc,0xfe,0x85,0xff,0xff,0xff] + vpgatherqq xmm23 {k1}, xmmword ptr [r14 + 8*xmm31 - 123] + +// CHECK: vpgatherqq xmm23 {k1}, xmmword ptr [r9 + xmm31 + 256] +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x91,0x7c,0x39,0x20] + vpgatherqq xmm23 {k1}, xmmword ptr [r9 + xmm31 + 256] + +// CHECK: vpgatherqq xmm23 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] +// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0x91,0xbc,0xb9,0x00,0x04,0x00,0x00] + vpgatherqq xmm23 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024] + +// CHECK: vpgatherqq ymm26 {k1}, ymmword ptr [r14 + 8*ymm31 - 123] +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0x91,0x94,0xfe,0x85,0xff,0xff,0xff] + vpgatherqq ymm26 {k1}, ymmword ptr [r14 + 8*ymm31 - 123] + +// CHECK: vpgatherqq ymm26 {k1}, ymmword ptr [r9 + ymm31 + 256] +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0x91,0x54,0x39,0x20] + vpgatherqq ymm26 {k1}, ymmword ptr [r9 + ymm31 + 256] + +// CHECK: vpgatherqq ymm26 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024] +// CHECK: encoding: [0x62,0x22,0xfd,0x21,0x91,0x94,0xb9,0x00,0x04,0x00,0x00] + vpgatherqq ymm26 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024] + +// CHECK: vpscatterdd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm20 +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa0,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vpscatterdd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm20 + +// CHECK: vpscatterdd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm20 +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa0,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vpscatterdd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm20 + +// CHECK: vpscatterdd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm20 +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa0,0x64,0x39,0x40] + vpscatterdd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm20 + +// CHECK: vpscatterdd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm20 +// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0xa0,0xa4,0xb9,0x00,0x04,0x00,0x00] + vpscatterdd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm20 + +// CHECK: vpscatterdd ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm28 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa0,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vpscatterdd ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm28 + +// CHECK: vpscatterdd ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm28 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa0,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vpscatterdd ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm28 + +// CHECK: vpscatterdd ymmword ptr [r9 + ymm31 + 256] {k1}, ymm28 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa0,0x64,0x39,0x40] + vpscatterdd ymmword ptr [r9 + ymm31 + 256] {k1}, ymm28 + +// CHECK: vpscatterdd ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm28 +// CHECK: encoding: [0x62,0x22,0x7d,0x21,0xa0,0xa4,0xb9,0x00,0x04,0x00,0x00] + vpscatterdd ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm28 + +// CHECK: vpscatterdd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm17 +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa0,0x8c,0xfe,0x85,0xff,0xff,0xff] + vpscatterdd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm17 + +// CHECK: vpscatterdd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm17 +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa0,0x8c,0xfe,0x85,0xff,0xff,0xff] + vpscatterdd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm17 + +// CHECK: vpscatterdd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm17 +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa0,0x4c,0x39,0x40] + vpscatterdd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm17 + +// CHECK: vpscatterdd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm17 +// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0xa0,0x8c,0xb9,0x00,0x04,0x00,0x00] + vpscatterdd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm17 + +// CHECK: vpscatterdd ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm24 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa0,0x84,0xfe,0x85,0xff,0xff,0xff] + vpscatterdd ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm24 + +// CHECK: vpscatterdd ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm24 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa0,0x84,0xfe,0x85,0xff,0xff,0xff] + vpscatterdd ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm24 + +// CHECK: vpscatterdd ymmword ptr [r9 + ymm31 + 256] {k1}, ymm24 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa0,0x44,0x39,0x40] + vpscatterdd ymmword ptr [r9 + ymm31 + 256] {k1}, ymm24 + +// CHECK: vpscatterdd ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm24 +// CHECK: encoding: [0x62,0x22,0x7d,0x21,0xa0,0x84,0xb9,0x00,0x04,0x00,0x00] + vpscatterdd ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm24 + +// CHECK: vpscatterdq xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm21 +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa0,0xac,0xfe,0x7b,0x00,0x00,0x00] + vpscatterdq xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm21 + +// CHECK: vpscatterdq xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm21 +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa0,0xac,0xfe,0x7b,0x00,0x00,0x00] + vpscatterdq xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm21 + +// CHECK: vpscatterdq xmmword ptr [r9 + xmm31 + 256] {k1}, xmm21 +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa0,0x6c,0x39,0x20] + vpscatterdq xmmword ptr [r9 + xmm31 + 256] {k1}, xmm21 + +// CHECK: vpscatterdq xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm21 +// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0xa0,0xac,0xb9,0x00,0x04,0x00,0x00] + vpscatterdq xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm21 + +// CHECK: vpscatterdq ymmword ptr [r14 + 8*xmm31 + 123] {k1}, ymm28 +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa0,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vpscatterdq ymmword ptr [r14 + 8*xmm31 + 123] {k1}, ymm28 + +// CHECK: vpscatterdq ymmword ptr [r14 + 8*xmm31 + 123] {k1}, ymm28 +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa0,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vpscatterdq ymmword ptr [r14 + 8*xmm31 + 123] {k1}, ymm28 + +// CHECK: vpscatterdq ymmword ptr [r9 + xmm31 + 256] {k1}, ymm28 +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa0,0x64,0x39,0x20] + vpscatterdq ymmword ptr [r9 + xmm31 + 256] {k1}, ymm28 + +// CHECK: vpscatterdq ymmword ptr [rcx + 4*xmm31 + 1024] {k1}, ymm28 +// CHECK: encoding: [0x62,0x22,0xfd,0x21,0xa0,0xa4,0xb9,0x00,0x04,0x00,0x00] + vpscatterdq ymmword ptr [rcx + 4*xmm31 + 1024] {k1}, ymm28 + +// CHECK: vpscatterdq xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm28 +// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa0,0xa4,0xfe,0x85,0xff,0xff,0xff] + vpscatterdq xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm28 + +// CHECK: vpscatterdq xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm28 +// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa0,0xa4,0xfe,0x85,0xff,0xff,0xff] + vpscatterdq xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm28 + +// CHECK: vpscatterdq xmmword ptr [r9 + xmm31 + 256] {k1}, xmm28 +// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa0,0x64,0x39,0x20] + vpscatterdq xmmword ptr [r9 + xmm31 + 256] {k1}, xmm28 + +// CHECK: vpscatterdq xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm28 +// CHECK: encoding: [0x62,0x22,0xfd,0x01,0xa0,0xa4,0xb9,0x00,0x04,0x00,0x00] + vpscatterdq xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm28 + +// CHECK: vpscatterdq ymmword ptr [r14 + 8*xmm31 - 123] {k1}, ymm20 +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa0,0xa4,0xfe,0x85,0xff,0xff,0xff] + vpscatterdq ymmword ptr [r14 + 8*xmm31 - 123] {k1}, ymm20 + +// CHECK: vpscatterdq ymmword ptr [r14 + 8*xmm31 - 123] {k1}, ymm20 +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa0,0xa4,0xfe,0x85,0xff,0xff,0xff] + vpscatterdq ymmword ptr [r14 + 8*xmm31 - 123] {k1}, ymm20 + +// CHECK: vpscatterdq ymmword ptr [r9 + xmm31 + 256] {k1}, ymm20 +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa0,0x64,0x39,0x20] + vpscatterdq ymmword ptr [r9 + xmm31 + 256] {k1}, ymm20 + +// CHECK: vpscatterdq ymmword ptr [rcx + 4*xmm31 + 1024] {k1}, ymm20 +// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0xa0,0xa4,0xb9,0x00,0x04,0x00,0x00] + vpscatterdq ymmword ptr [rcx + 4*xmm31 + 1024] {k1}, ymm20 + +// CHECK: vpscatterqd qword ptr [r14 + 8*xmm31 + 123] {k1}, xmm22 +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa1,0xb4,0xfe,0x7b,0x00,0x00,0x00] + vpscatterqd qword ptr [r14 + 8*xmm31 + 123] {k1}, xmm22 + +// CHECK: vpscatterqd qword ptr [r14 + 8*xmm31 + 123] {k1}, xmm22 +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa1,0xb4,0xfe,0x7b,0x00,0x00,0x00] + vpscatterqd qword ptr [r14 + 8*xmm31 + 123] {k1}, xmm22 + +// CHECK: vpscatterqd qword ptr [r9 + xmm31 + 256] {k1}, xmm22 +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa1,0x74,0x39,0x40] + vpscatterqd qword ptr [r9 + xmm31 + 256] {k1}, xmm22 + +// CHECK: vpscatterqd qword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm22 +// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0xa1,0xb4,0xb9,0x00,0x04,0x00,0x00] + vpscatterqd qword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm22 + +// CHECK: vpscatterqd xmmword ptr [r14 + 8*ymm31 + 123] {k1}, xmm24 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa1,0x84,0xfe,0x7b,0x00,0x00,0x00] + vpscatterqd xmmword ptr [r14 + 8*ymm31 + 123] {k1}, xmm24 + +// CHECK: vpscatterqd xmmword ptr [r14 + 8*ymm31 + 123] {k1}, xmm24 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa1,0x84,0xfe,0x7b,0x00,0x00,0x00] + vpscatterqd xmmword ptr [r14 + 8*ymm31 + 123] {k1}, xmm24 + +// CHECK: vpscatterqd xmmword ptr [r9 + ymm31 + 256] {k1}, xmm24 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa1,0x44,0x39,0x40] + vpscatterqd xmmword ptr [r9 + ymm31 + 256] {k1}, xmm24 + +// CHECK: vpscatterqd xmmword ptr [rcx + 4*ymm31 + 1024] {k1}, xmm24 +// CHECK: encoding: [0x62,0x22,0x7d,0x21,0xa1,0x84,0xb9,0x00,0x04,0x00,0x00] + vpscatterqd xmmword ptr [rcx + 4*ymm31 + 1024] {k1}, xmm24 + +// CHECK: vpscatterqd qword ptr [r14 + 8*xmm31 - 123] {k1}, xmm22 +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa1,0xb4,0xfe,0x85,0xff,0xff,0xff] + vpscatterqd qword ptr [r14 + 8*xmm31 - 123] {k1}, xmm22 + +// CHECK: vpscatterqd qword ptr [r14 + 8*xmm31 - 123] {k1}, xmm22 +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa1,0xb4,0xfe,0x85,0xff,0xff,0xff] + vpscatterqd qword ptr [r14 + 8*xmm31 - 123] {k1}, xmm22 + +// CHECK: vpscatterqd qword ptr [r9 + xmm31 + 256] {k1}, xmm22 +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa1,0x74,0x39,0x40] + vpscatterqd qword ptr [r9 + xmm31 + 256] {k1}, xmm22 + +// CHECK: vpscatterqd qword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm22 +// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0xa1,0xb4,0xb9,0x00,0x04,0x00,0x00] + vpscatterqd qword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm22 + +// CHECK: vpscatterqd xmmword ptr [r14 + 8*ymm31 - 123] {k1}, xmm29 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa1,0xac,0xfe,0x85,0xff,0xff,0xff] + vpscatterqd xmmword ptr [r14 + 8*ymm31 - 123] {k1}, xmm29 + +// CHECK: vpscatterqd xmmword ptr [r14 + 8*ymm31 - 123] {k1}, xmm29 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa1,0xac,0xfe,0x85,0xff,0xff,0xff] + vpscatterqd xmmword ptr [r14 + 8*ymm31 - 123] {k1}, xmm29 + +// CHECK: vpscatterqd xmmword ptr [r9 + ymm31 + 256] {k1}, xmm29 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa1,0x6c,0x39,0x40] + vpscatterqd xmmword ptr [r9 + ymm31 + 256] {k1}, xmm29 + +// CHECK: vpscatterqd xmmword ptr [rcx + 4*ymm31 + 1024] {k1}, xmm29 +// CHECK: encoding: [0x62,0x22,0x7d,0x21,0xa1,0xac,0xb9,0x00,0x04,0x00,0x00] + vpscatterqd xmmword ptr [rcx + 4*ymm31 + 1024] {k1}, xmm29 + +// CHECK: vpscatterqq xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm28 +// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa1,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vpscatterqq xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm28 + +// CHECK: vpscatterqq xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm28 +// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa1,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vpscatterqq xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm28 + +// CHECK: vpscatterqq xmmword ptr [r9 + xmm31 + 256] {k1}, xmm28 +// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa1,0x64,0x39,0x20] + vpscatterqq xmmword ptr [r9 + xmm31 + 256] {k1}, xmm28 + +// CHECK: vpscatterqq xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm28 +// CHECK: encoding: [0x62,0x22,0xfd,0x01,0xa1,0xa4,0xb9,0x00,0x04,0x00,0x00] + vpscatterqq xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm28 + +// CHECK: vpscatterqq ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm19 +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa1,0x9c,0xfe,0x7b,0x00,0x00,0x00] + vpscatterqq ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm19 + +// CHECK: vpscatterqq ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm19 +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa1,0x9c,0xfe,0x7b,0x00,0x00,0x00] + vpscatterqq ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm19 + +// CHECK: vpscatterqq ymmword ptr [r9 + ymm31 + 256] {k1}, ymm19 +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa1,0x5c,0x39,0x20] + vpscatterqq ymmword ptr [r9 + ymm31 + 256] {k1}, ymm19 + +// CHECK: vpscatterqq ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm19 +// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0xa1,0x9c,0xb9,0x00,0x04,0x00,0x00] + vpscatterqq ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm19 + +// CHECK: vpscatterqq xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm24 +// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa1,0x84,0xfe,0x85,0xff,0xff,0xff] + vpscatterqq xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm24 + +// CHECK: vpscatterqq xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm24 +// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa1,0x84,0xfe,0x85,0xff,0xff,0xff] + vpscatterqq xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm24 + +// CHECK: vpscatterqq xmmword ptr [r9 + xmm31 + 256] {k1}, xmm24 +// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa1,0x44,0x39,0x20] + vpscatterqq xmmword ptr [r9 + xmm31 + 256] {k1}, xmm24 + +// CHECK: vpscatterqq xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm24 +// CHECK: encoding: [0x62,0x22,0xfd,0x01,0xa1,0x84,0xb9,0x00,0x04,0x00,0x00] + vpscatterqq xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm24 + +// CHECK: vpscatterqq ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm17 +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa1,0x8c,0xfe,0x85,0xff,0xff,0xff] + vpscatterqq ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm17 + +// CHECK: vpscatterqq ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm17 +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa1,0x8c,0xfe,0x85,0xff,0xff,0xff] + vpscatterqq ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm17 + +// CHECK: vpscatterqq ymmword ptr [r9 + ymm31 + 256] {k1}, ymm17 +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa1,0x4c,0x39,0x20] + vpscatterqq ymmword ptr [r9 + ymm31 + 256] {k1}, ymm17 + +// CHECK: vpscatterqq ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm17 +// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0xa1,0x8c,0xb9,0x00,0x04,0x00,0x00] + vpscatterqq ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm17 + +// CHECK: vscatterdpd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm18 +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0x94,0xfe,0x7b,0x00,0x00,0x00] + vscatterdpd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm18 + +// CHECK: vscatterdpd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm18 +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0x94,0xfe,0x7b,0x00,0x00,0x00] + vscatterdpd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm18 + +// CHECK: vscatterdpd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm18 +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0x54,0x39,0x20] + vscatterdpd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm18 + +// CHECK: vscatterdpd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm18 +// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0xa2,0x94,0xb9,0x00,0x04,0x00,0x00] + vscatterdpd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm18 + +// CHECK: vscatterdpd ymmword ptr [r14 + 8*xmm31 + 123] {k1}, ymm30 +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0xb4,0xfe,0x7b,0x00,0x00,0x00] + vscatterdpd ymmword ptr [r14 + 8*xmm31 + 123] {k1}, ymm30 + +// CHECK: vscatterdpd ymmword ptr [r14 + 8*xmm31 + 123] {k1}, ymm30 +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0xb4,0xfe,0x7b,0x00,0x00,0x00] + vscatterdpd ymmword ptr [r14 + 8*xmm31 + 123] {k1}, ymm30 + +// CHECK: vscatterdpd ymmword ptr [r9 + xmm31 + 256] {k1}, ymm30 +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0x74,0x39,0x20] + vscatterdpd ymmword ptr [r9 + xmm31 + 256] {k1}, ymm30 + +// CHECK: vscatterdpd ymmword ptr [rcx + 4*xmm31 + 1024] {k1}, ymm30 +// CHECK: encoding: [0x62,0x22,0xfd,0x21,0xa2,0xb4,0xb9,0x00,0x04,0x00,0x00] + vscatterdpd ymmword ptr [rcx + 4*xmm31 + 1024] {k1}, ymm30 + +// CHECK: vscatterdpd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm19 +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0x9c,0xfe,0x85,0xff,0xff,0xff] + vscatterdpd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm19 + +// CHECK: vscatterdpd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm19 +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0x9c,0xfe,0x85,0xff,0xff,0xff] + vscatterdpd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm19 + +// CHECK: vscatterdpd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm19 +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0x5c,0x39,0x20] + vscatterdpd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm19 + +// CHECK: vscatterdpd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm19 +// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0xa2,0x9c,0xb9,0x00,0x04,0x00,0x00] + vscatterdpd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm19 + +// CHECK: vscatterdpd ymmword ptr [r14 + 8*xmm31 - 123] {k1}, ymm26 +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0x94,0xfe,0x85,0xff,0xff,0xff] + vscatterdpd ymmword ptr [r14 + 8*xmm31 - 123] {k1}, ymm26 + +// CHECK: vscatterdpd ymmword ptr [r14 + 8*xmm31 - 123] {k1}, ymm26 +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0x94,0xfe,0x85,0xff,0xff,0xff] + vscatterdpd ymmword ptr [r14 + 8*xmm31 - 123] {k1}, ymm26 + +// CHECK: vscatterdpd ymmword ptr [r9 + xmm31 + 256] {k1}, ymm26 +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0x54,0x39,0x20] + vscatterdpd ymmword ptr [r9 + xmm31 + 256] {k1}, ymm26 + +// CHECK: vscatterdpd ymmword ptr [rcx + 4*xmm31 + 1024] {k1}, ymm26 +// CHECK: encoding: [0x62,0x22,0xfd,0x21,0xa2,0x94,0xb9,0x00,0x04,0x00,0x00] + vscatterdpd ymmword ptr [rcx + 4*xmm31 + 1024] {k1}, ymm26 + +// CHECK: vscatterdps xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm24 +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa2,0x84,0xfe,0x7b,0x00,0x00,0x00] + vscatterdps xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm24 + +// CHECK: vscatterdps xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm24 +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa2,0x84,0xfe,0x7b,0x00,0x00,0x00] + vscatterdps xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm24 + +// CHECK: vscatterdps xmmword ptr [r9 + xmm31 + 256] {k1}, xmm24 +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa2,0x44,0x39,0x40] + vscatterdps xmmword ptr [r9 + xmm31 + 256] {k1}, xmm24 + +// CHECK: vscatterdps xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm24 +// CHECK: encoding: [0x62,0x22,0x7d,0x01,0xa2,0x84,0xb9,0x00,0x04,0x00,0x00] + vscatterdps xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm24 + +// CHECK: vscatterdps ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm23 +// CHECK: encoding: [0x62,0x82,0x7d,0x21,0xa2,0xbc,0xfe,0x7b,0x00,0x00,0x00] + vscatterdps ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm23 + +// CHECK: vscatterdps ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm23 +// CHECK: encoding: [0x62,0x82,0x7d,0x21,0xa2,0xbc,0xfe,0x7b,0x00,0x00,0x00] + vscatterdps ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm23 + +// CHECK: vscatterdps ymmword ptr [r9 + ymm31 + 256] {k1}, ymm23 +// CHECK: encoding: [0x62,0x82,0x7d,0x21,0xa2,0x7c,0x39,0x40] + vscatterdps ymmword ptr [r9 + ymm31 + 256] {k1}, ymm23 + +// CHECK: vscatterdps ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm23 +// CHECK: encoding: [0x62,0xa2,0x7d,0x21,0xa2,0xbc,0xb9,0x00,0x04,0x00,0x00] + vscatterdps ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm23 + +// CHECK: vscatterdps xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm28 +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa2,0xa4,0xfe,0x85,0xff,0xff,0xff] + vscatterdps xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm28 + +// CHECK: vscatterdps xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm28 +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa2,0xa4,0xfe,0x85,0xff,0xff,0xff] + vscatterdps xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm28 + +// CHECK: vscatterdps xmmword ptr [r9 + xmm31 + 256] {k1}, xmm28 +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa2,0x64,0x39,0x40] + vscatterdps xmmword ptr [r9 + xmm31 + 256] {k1}, xmm28 + +// CHECK: vscatterdps xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm28 +// CHECK: encoding: [0x62,0x22,0x7d,0x01,0xa2,0xa4,0xb9,0x00,0x04,0x00,0x00] + vscatterdps xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm28 + +// CHECK: vscatterdps ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm25 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa2,0x8c,0xfe,0x85,0xff,0xff,0xff] + vscatterdps ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm25 + +// CHECK: vscatterdps ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm25 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa2,0x8c,0xfe,0x85,0xff,0xff,0xff] + vscatterdps ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm25 + +// CHECK: vscatterdps ymmword ptr [r9 + ymm31 + 256] {k1}, ymm25 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa2,0x4c,0x39,0x40] + vscatterdps ymmword ptr [r9 + ymm31 + 256] {k1}, ymm25 + +// CHECK: vscatterdps ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm25 +// CHECK: encoding: [0x62,0x22,0x7d,0x21,0xa2,0x8c,0xb9,0x00,0x04,0x00,0x00] + vscatterdps ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm25 + +// CHECK: vscatterqpd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm21 +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa3,0xac,0xfe,0x7b,0x00,0x00,0x00] + vscatterqpd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm21 + +// CHECK: vscatterqpd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm21 +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa3,0xac,0xfe,0x7b,0x00,0x00,0x00] + vscatterqpd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm21 + +// CHECK: vscatterqpd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm21 +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa3,0x6c,0x39,0x20] + vscatterqpd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm21 + +// CHECK: vscatterqpd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm21 +// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0xa3,0xac,0xb9,0x00,0x04,0x00,0x00] + vscatterqpd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm21 + +// CHECK: vscatterqpd ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm23 +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa3,0xbc,0xfe,0x7b,0x00,0x00,0x00] + vscatterqpd ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm23 + +// CHECK: vscatterqpd ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm23 +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa3,0xbc,0xfe,0x7b,0x00,0x00,0x00] + vscatterqpd ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm23 + +// CHECK: vscatterqpd ymmword ptr [r9 + ymm31 + 256] {k1}, ymm23 +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa3,0x7c,0x39,0x20] + vscatterqpd ymmword ptr [r9 + ymm31 + 256] {k1}, ymm23 + +// CHECK: vscatterqpd ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm23 +// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0xa3,0xbc,0xb9,0x00,0x04,0x00,0x00] + vscatterqpd ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm23 + +// CHECK: vscatterqpd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm19 +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa3,0x9c,0xfe,0x85,0xff,0xff,0xff] + vscatterqpd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm19 + +// CHECK: vscatterqpd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm19 +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa3,0x9c,0xfe,0x85,0xff,0xff,0xff] + vscatterqpd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm19 + +// CHECK: vscatterqpd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm19 +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa3,0x5c,0x39,0x20] + vscatterqpd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm19 + +// CHECK: vscatterqpd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm19 +// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0xa3,0x9c,0xb9,0x00,0x04,0x00,0x00] + vscatterqpd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm19 + +// CHECK: vscatterqpd ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm29 +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa3,0xac,0xfe,0x85,0xff,0xff,0xff] + vscatterqpd ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm29 + +// CHECK: vscatterqpd ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm29 +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa3,0xac,0xfe,0x85,0xff,0xff,0xff] + vscatterqpd ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm29 + +// CHECK: vscatterqpd ymmword ptr [r9 + ymm31 + 256] {k1}, ymm29 +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa3,0x6c,0x39,0x20] + vscatterqpd ymmword ptr [r9 + ymm31 + 256] {k1}, ymm29 + +// CHECK: vscatterqpd ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm29 +// CHECK: encoding: [0x62,0x22,0xfd,0x21,0xa3,0xac,0xb9,0x00,0x04,0x00,0x00] + vscatterqpd ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm29 + +// CHECK: vscatterqps qword ptr [r14 + 8*xmm31 + 123] {k1}, xmm28 +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa3,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vscatterqps qword ptr [r14 + 8*xmm31 + 123] {k1}, xmm28 + +// CHECK: vscatterqps qword ptr [r14 + 8*xmm31 + 123] {k1}, xmm28 +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa3,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vscatterqps qword ptr [r14 + 8*xmm31 + 123] {k1}, xmm28 + +// CHECK: vscatterqps qword ptr [r9 + xmm31 + 256] {k1}, xmm28 +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa3,0x64,0x39,0x40] + vscatterqps qword ptr [r9 + xmm31 + 256] {k1}, xmm28 + +// CHECK: vscatterqps qword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm28 +// CHECK: encoding: [0x62,0x22,0x7d,0x01,0xa3,0xa4,0xb9,0x00,0x04,0x00,0x00] + vscatterqps qword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm28 + +// CHECK: vscatterqps xmmword ptr [r14 + 8*ymm31 + 123] {k1}, xmm25 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa3,0x8c,0xfe,0x7b,0x00,0x00,0x00] + vscatterqps xmmword ptr [r14 + 8*ymm31 + 123] {k1}, xmm25 + +// CHECK: vscatterqps xmmword ptr [r14 + 8*ymm31 + 123] {k1}, xmm25 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa3,0x8c,0xfe,0x7b,0x00,0x00,0x00] + vscatterqps xmmword ptr [r14 + 8*ymm31 + 123] {k1}, xmm25 + +// CHECK: vscatterqps xmmword ptr [r9 + ymm31 + 256] {k1}, xmm25 +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa3,0x4c,0x39,0x40] + vscatterqps xmmword ptr [r9 + ymm31 + 256] {k1}, xmm25 + +// CHECK: vscatterqps xmmword ptr [rcx + 4*ymm31 + 1024] {k1}, xmm25 +// CHECK: encoding: [0x62,0x22,0x7d,0x21,0xa3,0x8c,0xb9,0x00,0x04,0x00,0x00] + vscatterqps xmmword ptr [rcx + 4*ymm31 + 1024] {k1}, xmm25 + +// CHECK: vscatterqps qword ptr [r14 + 8*xmm31 - 123] {k1}, xmm27 +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa3,0x9c,0xfe,0x85,0xff,0xff,0xff] + vscatterqps qword ptr [r14 + 8*xmm31 - 123] {k1}, xmm27 + +// CHECK: vscatterqps qword ptr [r14 + 8*xmm31 - 123] {k1}, xmm27 +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa3,0x9c,0xfe,0x85,0xff,0xff,0xff] + vscatterqps qword ptr [r14 + 8*xmm31 - 123] {k1}, xmm27 + +// CHECK: vscatterqps qword ptr [r9 + xmm31 + 256] {k1}, xmm27 +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa3,0x5c,0x39,0x40] + vscatterqps qword ptr [r9 + xmm31 + 256] {k1}, xmm27 + +// CHECK: vscatterqps qword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm27 +// CHECK: encoding: [0x62,0x22,0x7d,0x01,0xa3,0x9c,0xb9,0x00,0x04,0x00,0x00] + vscatterqps qword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm27 + +// CHECK: vscatterqps xmmword ptr [r14 + 8*ymm31 - 123] {k1}, xmm23 +// CHECK: encoding: [0x62,0x82,0x7d,0x21,0xa3,0xbc,0xfe,0x85,0xff,0xff,0xff] + vscatterqps xmmword ptr [r14 + 8*ymm31 - 123] {k1}, xmm23 + +// CHECK: vscatterqps xmmword ptr [r14 + 8*ymm31 - 123] {k1}, xmm23 +// CHECK: encoding: [0x62,0x82,0x7d,0x21,0xa3,0xbc,0xfe,0x85,0xff,0xff,0xff] + vscatterqps xmmword ptr [r14 + 8*ymm31 - 123] {k1}, xmm23 + +// CHECK: vscatterqps xmmword ptr [r9 + ymm31 + 256] {k1}, xmm23 +// CHECK: encoding: [0x62,0x82,0x7d,0x21,0xa3,0x7c,0x39,0x40] + vscatterqps xmmword ptr [r9 + ymm31 + 256] {k1}, xmm23 + +// CHECK: vscatterqps xmmword ptr [rcx + 4*ymm31 + 1024] {k1}, xmm23 +// CHECK: encoding: [0x62,0xa2,0x7d,0x21,0xa3,0xbc,0xb9,0x00,0x04,0x00,0x00] + vscatterqps xmmword ptr [rcx + 4*ymm31 + 1024] {k1}, xmm23 + diff --git a/test/MC/X86/intel-syntax.s b/test/MC/X86/intel-syntax.s index 25bd1f284bb..795893673f8 100644 --- a/test/MC/X86/intel-syntax.s +++ b/test/MC/X86/intel-syntax.s @@ -74,8 +74,8 @@ _main: // CHECK: vshufpd $1, %xmm2, %xmm1, %xmm0 vshufpd XMM0, XMM1, XMM2, 1 // CHECK: vpgatherdd %xmm8, (%r15,%xmm9,2), %xmm1 - vpgatherdd XMM10, DWORD PTR [R15 + 2*XMM9], XMM8 -// CHECK: movsd -8, %xmm5 + vpgatherdd XMM10, XMMWORD PTR [R15 + 2*XMM9], XMM8 +// CHECK: movsd -8, %xmm5 movsd XMM5, QWORD PTR [-8] // CHECK: movl %ecx, (%eax) mov [eax], ecx diff --git a/utils/TableGen/X86RecognizableInstr.cpp b/utils/TableGen/X86RecognizableInstr.cpp index d77914d5edd..ca937d09726 100644 --- a/utils/TableGen/X86RecognizableInstr.cpp +++ b/utils/TableGen/X86RecognizableInstr.cpp @@ -1024,16 +1024,18 @@ OperandType RecognizableInstr::typeFromString(const std::string &s, TYPE("VK64", TYPE_VK64) TYPE("VK64WM", TYPE_VK64) TYPE("GR32_NOAX", TYPE_Rv) - TYPE("vx32mem", TYPE_M32) - TYPE("vx32xmem", TYPE_M32) - TYPE("vy32mem", TYPE_M32) - TYPE("vy32xmem", TYPE_M32) - TYPE("vz32mem", TYPE_M32) TYPE("vx64mem", TYPE_M64) + TYPE("vx128mem", TYPE_M128) + TYPE("vx256mem", TYPE_M256) + TYPE("vy128mem", TYPE_M128) + TYPE("vy256mem", TYPE_M256) TYPE("vx64xmem", TYPE_M64) - TYPE("vy64mem", TYPE_M64) - TYPE("vy64xmem", TYPE_M64) - TYPE("vz64mem", TYPE_M64) + TYPE("vx128xmem", TYPE_M128) + TYPE("vx256xmem", TYPE_M256) + TYPE("vy128xmem", TYPE_M128) + TYPE("vy256xmem", TYPE_M256) + TYPE("vy512mem", TYPE_M512) + TYPE("vz512mem", TYPE_M512) TYPE("BNDR", TYPE_BNDR) errs() << "Unhandled type string " << s << "\n"; llvm_unreachable("Unhandled type string"); @@ -1217,16 +1219,18 @@ RecognizableInstr::memoryEncodingFromString(const std::string &s, ENCODING("opaque48mem", ENCODING_RM) ENCODING("opaque80mem", ENCODING_RM) ENCODING("opaque512mem", ENCODING_RM) - ENCODING("vx32mem", ENCODING_RM) - ENCODING("vx32xmem", ENCODING_RM) - ENCODING("vy32mem", ENCODING_RM) - ENCODING("vy32xmem", ENCODING_RM) - ENCODING("vz32mem", ENCODING_RM) ENCODING("vx64mem", ENCODING_RM) + ENCODING("vx128mem", ENCODING_RM) + ENCODING("vx256mem", ENCODING_RM) + ENCODING("vy128mem", ENCODING_RM) + ENCODING("vy256mem", ENCODING_RM) ENCODING("vx64xmem", ENCODING_RM) - ENCODING("vy64mem", ENCODING_RM) - ENCODING("vy64xmem", ENCODING_RM) - ENCODING("vz64mem", ENCODING_RM) + ENCODING("vx128xmem", ENCODING_RM) + ENCODING("vx256xmem", ENCODING_RM) + ENCODING("vy128xmem", ENCODING_RM) + ENCODING("vy256xmem", ENCODING_RM) + ENCODING("vy512mem", ENCODING_RM) + ENCODING("vz512mem", ENCODING_RM) errs() << "Unhandled memory encoding " << s << "\n"; llvm_unreachable("Unhandled memory encoding"); }