mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-01 10:36:07 +00:00
[AVX-512] Correct memory operand size for VPGATHERQPS and VPGATHERQD
with ZMM index. Similar for SCATTER and the prefetch gather and scatter instructions. Fixes PR31618. llvm-svn: 292088
This commit is contained in:
parent
8be6ebce2b
commit
7dfd583644
@ -271,6 +271,9 @@ struct X86Operand : public MCParsedAsmOperand {
|
||||
bool isMem256_RC256X() const {
|
||||
return isMem256() && isMemIndexReg(X86::YMM0, X86::YMM31);
|
||||
}
|
||||
bool isMem256_RC512() const {
|
||||
return isMem256() && isMemIndexReg(X86::ZMM0, X86::ZMM31);
|
||||
}
|
||||
bool isMem512_RC256X() const {
|
||||
return isMem512() && isMemIndexReg(X86::YMM0, X86::YMM31);
|
||||
}
|
||||
|
@ -7837,7 +7837,7 @@ multiclass avx512_gather_d_ps<bits<8> dopc, bits<8> qopc,
|
||||
AVX512VLVectorVTInfo _, string OpcodeStr, string SUFF> {
|
||||
defm NAME##D##SUFF##Z: avx512_gather<dopc, OpcodeStr##"d", _.info512, vz512mem,
|
||||
mgatherv16i32>, EVEX_V512;
|
||||
defm NAME##Q##SUFF##Z: avx512_gather<qopc, OpcodeStr##"q", _.info256, vz512mem,
|
||||
defm NAME##Q##SUFF##Z: avx512_gather<qopc, OpcodeStr##"q", _.info256, vz256xmem,
|
||||
mgatherv8i64>, EVEX_V512;
|
||||
let Predicates = [HasVLX] in {
|
||||
defm NAME##D##SUFF##Z256: avx512_gather<dopc, OpcodeStr##"d", _.info256,
|
||||
@ -7894,7 +7894,7 @@ multiclass avx512_scatter_d_ps<bits<8> dopc, bits<8> qopc,
|
||||
AVX512VLVectorVTInfo _, string OpcodeStr, string SUFF> {
|
||||
defm NAME##D##SUFF##Z: avx512_scatter<dopc, OpcodeStr##"d", _.info512, vz512mem,
|
||||
mscatterv16i32>, EVEX_V512;
|
||||
defm NAME##Q##SUFF##Z: avx512_scatter<qopc, OpcodeStr##"q", _.info256, vz512mem,
|
||||
defm NAME##Q##SUFF##Z: avx512_scatter<qopc, OpcodeStr##"q", _.info256, vz256xmem,
|
||||
mscatterv8i64>, EVEX_V512;
|
||||
let Predicates = [HasVLX] in {
|
||||
defm NAME##D##SUFF##Z256: avx512_scatter<dopc, OpcodeStr##"d", _.info256,
|
||||
@ -7927,7 +7927,7 @@ defm VGATHERPF0DPS: avx512_gather_scatter_prefetch<0xC6, MRM1m, "vgatherpf0dps",
|
||||
VK16WM, vz512mem>, EVEX_V512, EVEX_CD8<32, CD8VT1>;
|
||||
|
||||
defm VGATHERPF0QPS: avx512_gather_scatter_prefetch<0xC7, MRM1m, "vgatherpf0qps",
|
||||
VK8WM, vz512mem>, EVEX_V512, EVEX_CD8<64, CD8VT1>;
|
||||
VK8WM, vz256xmem>, EVEX_V512, EVEX_CD8<64, CD8VT1>;
|
||||
|
||||
defm VGATHERPF0DPD: avx512_gather_scatter_prefetch<0xC6, MRM1m, "vgatherpf0dpd",
|
||||
VK8WM, vy512mem>, EVEX_V512, VEX_W, EVEX_CD8<32, CD8VT1>;
|
||||
@ -7939,7 +7939,7 @@ defm VGATHERPF1DPS: avx512_gather_scatter_prefetch<0xC6, MRM2m, "vgatherpf1dps",
|
||||
VK16WM, vz512mem>, EVEX_V512, EVEX_CD8<32, CD8VT1>;
|
||||
|
||||
defm VGATHERPF1QPS: avx512_gather_scatter_prefetch<0xC7, MRM2m, "vgatherpf1qps",
|
||||
VK8WM, vz512mem>, EVEX_V512, EVEX_CD8<64, CD8VT1>;
|
||||
VK8WM, vz256xmem>, EVEX_V512, EVEX_CD8<64, CD8VT1>;
|
||||
|
||||
defm VGATHERPF1DPD: avx512_gather_scatter_prefetch<0xC6, MRM2m, "vgatherpf1dpd",
|
||||
VK8WM, vy512mem>, EVEX_V512, VEX_W, EVEX_CD8<32, CD8VT1>;
|
||||
@ -7951,7 +7951,7 @@ defm VSCATTERPF0DPS: avx512_gather_scatter_prefetch<0xC6, MRM5m, "vscatterpf0dps
|
||||
VK16WM, vz512mem>, EVEX_V512, EVEX_CD8<32, CD8VT1>;
|
||||
|
||||
defm VSCATTERPF0QPS: avx512_gather_scatter_prefetch<0xC7, MRM5m, "vscatterpf0qps",
|
||||
VK8WM, vz512mem>, EVEX_V512, EVEX_CD8<64, CD8VT1>;
|
||||
VK8WM, vz256xmem>, EVEX_V512, EVEX_CD8<64, CD8VT1>;
|
||||
|
||||
defm VSCATTERPF0DPD: avx512_gather_scatter_prefetch<0xC6, MRM5m, "vscatterpf0dpd",
|
||||
VK8WM, vy512mem>, EVEX_V512, VEX_W, EVEX_CD8<32, CD8VT1>;
|
||||
@ -7963,7 +7963,7 @@ defm VSCATTERPF1DPS: avx512_gather_scatter_prefetch<0xC6, MRM6m, "vscatterpf1dps
|
||||
VK16WM, vz512mem>, EVEX_V512, EVEX_CD8<32, CD8VT1>;
|
||||
|
||||
defm VSCATTERPF1QPS: avx512_gather_scatter_prefetch<0xC7, MRM6m, "vscatterpf1qps",
|
||||
VK8WM, vz512mem>, EVEX_V512, EVEX_CD8<64, CD8VT1>;
|
||||
VK8WM, vz256xmem>, EVEX_V512, EVEX_CD8<64, CD8VT1>;
|
||||
|
||||
defm VSCATTERPF1DPD: avx512_gather_scatter_prefetch<0xC6, MRM6m, "vscatterpf1dpd",
|
||||
VK8WM, vy512mem>, EVEX_V512, VEX_W, EVEX_CD8<32, CD8VT1>;
|
||||
|
@ -318,6 +318,7 @@ let RenderMethod = "addMemOperands", SuperClasses = [X86MemAsmOperand] in {
|
||||
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 X86Mem256_RC512Operand : AsmOperandClass { let Name = "Mem256_RC512"; }
|
||||
def X86Mem512_RC512Operand : AsmOperandClass { let Name = "Mem512_RC512"; }
|
||||
}
|
||||
|
||||
@ -377,6 +378,7 @@ def vx256xmem : X86VMemOperand<VR128X, "printi256mem", X86Mem256_RC128XOperand>;
|
||||
def vy128xmem : X86VMemOperand<VR256X, "printi128mem", X86Mem128_RC256XOperand>;
|
||||
def vy256xmem : X86VMemOperand<VR256X, "printi256mem", X86Mem256_RC256XOperand>;
|
||||
def vy512mem : X86VMemOperand<VR256X, "printi512mem", X86Mem512_RC256XOperand>;
|
||||
def vz256xmem : X86VMemOperand<VR512, "printi256mem", X86Mem256_RC512Operand>;
|
||||
def vz512mem : X86VMemOperand<VR512, "printi512mem", X86Mem512_RC512Operand>;
|
||||
|
||||
// A version of i8mem for use on x86-64 and x32 that uses a NOREX GPR instead
|
||||
|
@ -37936,17 +37936,17 @@ vaddpd zmm1, zmm1, zmm2, {rz-sae}
|
||||
// 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: vgatherqps ymm18 {k1}, ymmword 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]
|
||||
vgatherqps ymm18{k1},YMMWORD PTR [r14+zmm4*8+0x7b]
|
||||
|
||||
// CHECK: vgatherqps ymm18 {k1}, zmmword ptr [r9 + zmm4 + 256]
|
||||
// CHECK: vgatherqps ymm18 {k1}, ymmword ptr [r9 + zmm4 + 256]
|
||||
// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0x93,0x54,0x21,0x40]
|
||||
vgatherqps ymm18{k1},ZMMWORD PTR [r9+zmm4*1+0x100]
|
||||
vgatherqps ymm18{k1},YMMWORD PTR [r9+zmm4*1+0x100]
|
||||
|
||||
// CHECK: vgatherqps ymm18 {k1}, zmmword ptr [rcx + 4*zmm4 + 1024]
|
||||
// CHECK: vgatherqps ymm18 {k1}, ymmword 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]
|
||||
vgatherqps ymm18{k1},YMMWORD 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]
|
||||
@ -37972,17 +37972,17 @@ vaddpd zmm1, zmm1, zmm2, {rz-sae}
|
||||
// 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: vpgatherqd ymm3 {k1}, ymmword 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]
|
||||
vpgatherqd ymm3{k1},YMMWORD PTR [r14+zmm17*8+0x7b]
|
||||
|
||||
// CHECK: vpgatherqd ymm3 {k1}, zmmword ptr [r9 + zmm17 + 256]
|
||||
// CHECK: vpgatherqd ymm3 {k1}, ymmword ptr [r9 + zmm17 + 256]
|
||||
// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0x91,0x5c,0x09,0x40]
|
||||
vpgatherqd ymm3{k1},ZMMWORD PTR [r9+zmm17*1+0x100]
|
||||
vpgatherqd ymm3{k1},YMMWORD PTR [r9+zmm17*1+0x100]
|
||||
|
||||
// CHECK: vpgatherqd ymm3 {k1}, zmmword ptr [rcx + 4*zmm17 + 1024]
|
||||
// CHECK: vpgatherqd ymm3 {k1}, ymmword 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]
|
||||
vpgatherqd ymm3{k1},YMMWORD 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]
|
||||
@ -38028,21 +38028,21 @@ vaddpd zmm1, zmm1, zmm2, {rz-sae}
|
||||
// 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: vpscatterqd ymmword 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
|
||||
vpscatterqd YMMWORD PTR [r14+zmm2*8+0x7b]{k1},ymm20
|
||||
|
||||
// CHECK: vpscatterqd zmmword ptr [r14 + 8*zmm2 + 123] {k1}, ymm20
|
||||
// CHECK: vpscatterqd ymmword 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
|
||||
vpscatterqd YMMWORD PTR [r14+zmm2*8+0x7b]{k1},ymm20
|
||||
|
||||
// CHECK: vpscatterqd zmmword ptr [r9 + zmm2 + 256] {k1}, ymm20
|
||||
// CHECK: vpscatterqd ymmword 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
|
||||
vpscatterqd YMMWORD PTR [r9+zmm2*1+0x100]{k1},ymm20
|
||||
|
||||
// CHECK: vpscatterqd zmmword ptr [rcx + 4*zmm2 + 1024] {k1}, ymm20
|
||||
// CHECK: vpscatterqd ymmword 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
|
||||
vpscatterqd YMMWORD 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]
|
||||
@ -38108,21 +38108,21 @@ vaddpd zmm1, zmm1, zmm2, {rz-sae}
|
||||
// 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: vscatterqps ymmword 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
|
||||
vscatterqps YMMWORD PTR [r14+zmm27*8+0x7b]{k1},ymm6
|
||||
|
||||
// CHECK: vscatterqps zmmword ptr [r14 + 8*zmm27 + 123] {k1}, ymm6
|
||||
// CHECK: vscatterqps ymmword 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
|
||||
vscatterqps YMMWORD PTR [r14+zmm27*8+0x7b]{k1},ymm6
|
||||
|
||||
// CHECK: vscatterqps zmmword ptr [r9 + zmm27 + 256] {k1}, ymm6
|
||||
// CHECK: vscatterqps ymmword 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
|
||||
vscatterqps YMMWORD PTR [r9+zmm27*1+0x100]{k1},ymm6
|
||||
|
||||
// CHECK: vscatterqps zmmword ptr [rcx + 4*zmm27 + 1024] {k1}, ymm6
|
||||
// CHECK: vscatterqps ymmword 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
|
||||
vscatterqps YMMWORD 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]
|
||||
@ -38172,21 +38172,21 @@ vaddpd zmm1, zmm1, zmm2, {rz-sae}
|
||||
// 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: vscatterqps ymmword 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
|
||||
vscatterqps YMMWORD PTR [r14+zmm10*8-0x7b]{k1},ymm13
|
||||
|
||||
// CHECK: vscatterqps zmmword ptr [r14 + 8*zmm10 - 123] {k1}, ymm13
|
||||
// CHECK: vscatterqps ymmword 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
|
||||
vscatterqps YMMWORD PTR [r14+zmm10*8-0x7b]{k1},ymm13
|
||||
|
||||
// CHECK: vscatterqps zmmword ptr [r9 + zmm10 + 256] {k1}, ymm13
|
||||
// CHECK: vscatterqps ymmword 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
|
||||
vscatterqps YMMWORD PTR [r9+zmm10*1+0x100]{k1},ymm13
|
||||
|
||||
// CHECK: vscatterqps zmmword ptr [rcx + 4*zmm10 + 1024] {k1}, ymm13
|
||||
// CHECK: vscatterqps ymmword 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
|
||||
vscatterqps YMMWORD 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]
|
||||
@ -38224,17 +38224,17 @@ vaddpd zmm1, zmm1, zmm2, {rz-sae}
|
||||
// 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: vgatherqps ymm27 {k1}, ymmword 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]
|
||||
vgatherqps ymm27{k1},YMMWORD PTR [r14+zmm14*8-0x7b]
|
||||
|
||||
// CHECK: vgatherqps ymm27 {k1}, zmmword ptr [r9 + zmm14 + 256]
|
||||
// CHECK: vgatherqps ymm27 {k1}, ymmword ptr [r9 + zmm14 + 256]
|
||||
// CHECK: encoding: [0x62,0x02,0x7d,0x49,0x93,0x5c,0x31,0x40]
|
||||
vgatherqps ymm27{k1},ZMMWORD PTR [r9+zmm14*1+0x100]
|
||||
vgatherqps ymm27{k1},YMMWORD PTR [r9+zmm14*1+0x100]
|
||||
|
||||
// CHECK: vgatherqps ymm27 {k1}, zmmword ptr [rcx + 4*zmm14 + 1024]
|
||||
// CHECK: vgatherqps ymm27 {k1}, ymmword 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]
|
||||
vgatherqps ymm27{k1},YMMWORD 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]
|
||||
@ -38260,17 +38260,17 @@ vaddpd zmm1, zmm1, zmm2, {rz-sae}
|
||||
// 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: vpgatherqd ymm19 {k1}, ymmword 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]
|
||||
vpgatherqd ymm19{k1},YMMWORD PTR [r14+zmm17*8-0x7b]
|
||||
|
||||
// CHECK: vpgatherqd ymm19 {k1}, zmmword ptr [r9 + zmm17 + 256]
|
||||
// CHECK: vpgatherqd ymm19 {k1}, ymmword ptr [r9 + zmm17 + 256]
|
||||
// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0x91,0x5c,0x09,0x40]
|
||||
vpgatherqd ymm19{k1},ZMMWORD PTR [r9+zmm17*1+0x100]
|
||||
vpgatherqd ymm19{k1},YMMWORD PTR [r9+zmm17*1+0x100]
|
||||
|
||||
// CHECK: vpgatherqd ymm19 {k1}, zmmword ptr [rcx + 4*zmm17 + 1024]
|
||||
// CHECK: vpgatherqd ymm19 {k1}, ymmword 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]
|
||||
vpgatherqd ymm19{k1},YMMWORD 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]
|
||||
@ -38316,21 +38316,21 @@ vaddpd zmm1, zmm1, zmm2, {rz-sae}
|
||||
// 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: vpscatterqd ymmword 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
|
||||
vpscatterqd YMMWORD PTR [r14+zmm22*8-0x7b]{k1},ymm23
|
||||
|
||||
// CHECK: vpscatterqd zmmword ptr [r14 + 8*zmm22 - 123] {k1}, ymm23
|
||||
// CHECK: vpscatterqd ymmword 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
|
||||
vpscatterqd YMMWORD PTR [r14+zmm22*8-0x7b]{k1},ymm23
|
||||
|
||||
// CHECK: vpscatterqd zmmword ptr [r9 + zmm22 + 256] {k1}, ymm23
|
||||
// CHECK: vpscatterqd ymmword 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
|
||||
vpscatterqd YMMWORD PTR [r9+zmm22*1+0x100]{k1},ymm23
|
||||
|
||||
// CHECK: vpscatterqd zmmword ptr [rcx + 4*zmm22 + 1024] {k1}, ymm23
|
||||
// CHECK: vpscatterqd ymmword 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
|
||||
vpscatterqd YMMWORD 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]
|
||||
|
@ -1058,6 +1058,7 @@ OperandType RecognizableInstr::typeFromString(const std::string &s,
|
||||
TYPE("vy128xmem", TYPE_M128)
|
||||
TYPE("vy256xmem", TYPE_M256)
|
||||
TYPE("vy512mem", TYPE_M512)
|
||||
TYPE("vz256xmem", TYPE_M256)
|
||||
TYPE("vz512mem", TYPE_M512)
|
||||
TYPE("BNDR", TYPE_BNDR)
|
||||
errs() << "Unhandled type string " << s << "\n";
|
||||
@ -1253,6 +1254,7 @@ RecognizableInstr::memoryEncodingFromString(const std::string &s,
|
||||
ENCODING("vy128xmem", ENCODING_RM)
|
||||
ENCODING("vy256xmem", ENCODING_RM)
|
||||
ENCODING("vy512mem", ENCODING_RM)
|
||||
ENCODING("vz256xmem", ENCODING_RM)
|
||||
ENCODING("vz512mem", ENCODING_RM)
|
||||
errs() << "Unhandled memory encoding " << s << "\n";
|
||||
llvm_unreachable("Unhandled memory encoding");
|
||||
|
Loading…
x
Reference in New Issue
Block a user