@@ -10279,36 +10279,36 @@ multiclass avx512_gather<bits<8> opc, string OpcodeStr, X86VectorVTInfo _,
10279
10279
multiclass avx512_gather_q_pd<bits<8> dopc, bits<8> qopc,
10280
10280
AVX512VLVectorVTInfo _, string OpcodeStr, string SUFF> {
10281
10281
defm NAME#D#SUFF#Z: avx512_gather<dopc, OpcodeStr#"d", _.info512,
10282
- vy512xmem >, EVEX_V512, REX_W;
10282
+ vy64xmem >, EVEX_V512, REX_W;
10283
10283
defm NAME#Q#SUFF#Z: avx512_gather<qopc, OpcodeStr#"q", _.info512,
10284
- vz512mem >, EVEX_V512, REX_W;
10284
+ vz64mem >, EVEX_V512, REX_W;
10285
10285
let Predicates = [HasVLX] in {
10286
10286
defm NAME#D#SUFF#Z256: avx512_gather<dopc, OpcodeStr#"d", _.info256,
10287
- vx256xmem >, EVEX_V256, REX_W;
10287
+ vx64xmem >, EVEX_V256, REX_W;
10288
10288
defm NAME#Q#SUFF#Z256: avx512_gather<qopc, OpcodeStr#"q", _.info256,
10289
- vy256xmem >, EVEX_V256, REX_W;
10289
+ vy64xmem >, EVEX_V256, REX_W;
10290
10290
defm NAME#D#SUFF#Z128: avx512_gather<dopc, OpcodeStr#"d", _.info128,
10291
- vx128xmem >, EVEX_V128, REX_W;
10291
+ vx64xmem >, EVEX_V128, REX_W;
10292
10292
defm NAME#Q#SUFF#Z128: avx512_gather<qopc, OpcodeStr#"q", _.info128,
10293
- vx128xmem >, EVEX_V128, REX_W;
10293
+ vx64xmem >, EVEX_V128, REX_W;
10294
10294
}
10295
10295
}
10296
10296
10297
10297
multiclass avx512_gather_d_ps<bits<8> dopc, bits<8> qopc,
10298
10298
AVX512VLVectorVTInfo _, string OpcodeStr, string SUFF> {
10299
- defm NAME#D#SUFF#Z: avx512_gather<dopc, OpcodeStr#"d", _.info512, vz512mem >,
10299
+ defm NAME#D#SUFF#Z: avx512_gather<dopc, OpcodeStr#"d", _.info512, vz32mem >,
10300
10300
EVEX_V512;
10301
- defm NAME#Q#SUFF#Z: avx512_gather<qopc, OpcodeStr#"q", _.info256, vz256mem >,
10301
+ defm NAME#Q#SUFF#Z: avx512_gather<qopc, OpcodeStr#"q", _.info256, vz32mem >,
10302
10302
EVEX_V512;
10303
10303
let Predicates = [HasVLX] in {
10304
10304
defm NAME#D#SUFF#Z256: avx512_gather<dopc, OpcodeStr#"d", _.info256,
10305
- vy256xmem >, EVEX_V256;
10305
+ vy32xmem >, EVEX_V256;
10306
10306
defm NAME#Q#SUFF#Z256: avx512_gather<qopc, OpcodeStr#"q", _.info128,
10307
- vy128xmem >, EVEX_V256;
10307
+ vy32xmem >, EVEX_V256;
10308
10308
defm NAME#D#SUFF#Z128: avx512_gather<dopc, OpcodeStr#"d", _.info128,
10309
- vx128xmem >, EVEX_V128;
10309
+ vx32xmem >, EVEX_V128;
10310
10310
defm NAME#Q#SUFF#Z128: avx512_gather<qopc, OpcodeStr#"q", _.info128,
10311
- vx64xmem , VK2WM>, EVEX_V128;
10311
+ vx32xmem , VK2WM>, EVEX_V128;
10312
10312
}
10313
10313
}
10314
10314
@@ -10336,36 +10336,36 @@ let mayStore = 1, Constraints = "$mask = $mask_wb", ExeDomain = _.ExeDomain,
10336
10336
multiclass avx512_scatter_q_pd<bits<8> dopc, bits<8> qopc,
10337
10337
AVX512VLVectorVTInfo _, string OpcodeStr, string SUFF> {
10338
10338
defm NAME#D#SUFF#Z: avx512_scatter<dopc, OpcodeStr#"d", _.info512,
10339
- vy512xmem >, EVEX_V512, REX_W;
10339
+ vy64xmem >, EVEX_V512, REX_W;
10340
10340
defm NAME#Q#SUFF#Z: avx512_scatter<qopc, OpcodeStr#"q", _.info512,
10341
- vz512mem >, EVEX_V512, REX_W;
10341
+ vz64mem >, EVEX_V512, REX_W;
10342
10342
let Predicates = [HasVLX] in {
10343
10343
defm NAME#D#SUFF#Z256: avx512_scatter<dopc, OpcodeStr#"d", _.info256,
10344
- vx256xmem >, EVEX_V256, REX_W;
10344
+ vx64xmem >, EVEX_V256, REX_W;
10345
10345
defm NAME#Q#SUFF#Z256: avx512_scatter<qopc, OpcodeStr#"q", _.info256,
10346
- vy256xmem >, EVEX_V256, REX_W;
10346
+ vy64xmem >, EVEX_V256, REX_W;
10347
10347
defm NAME#D#SUFF#Z128: avx512_scatter<dopc, OpcodeStr#"d", _.info128,
10348
- vx128xmem >, EVEX_V128, REX_W;
10348
+ vx64xmem >, EVEX_V128, REX_W;
10349
10349
defm NAME#Q#SUFF#Z128: avx512_scatter<qopc, OpcodeStr#"q", _.info128,
10350
- vx128xmem >, EVEX_V128, REX_W;
10350
+ vx64xmem >, EVEX_V128, REX_W;
10351
10351
}
10352
10352
}
10353
10353
10354
10354
multiclass avx512_scatter_d_ps<bits<8> dopc, bits<8> qopc,
10355
10355
AVX512VLVectorVTInfo _, string OpcodeStr, string SUFF> {
10356
- defm NAME#D#SUFF#Z: avx512_scatter<dopc, OpcodeStr#"d", _.info512, vz512mem >,
10356
+ defm NAME#D#SUFF#Z: avx512_scatter<dopc, OpcodeStr#"d", _.info512, vz32mem >,
10357
10357
EVEX_V512;
10358
- defm NAME#Q#SUFF#Z: avx512_scatter<qopc, OpcodeStr#"q", _.info256, vz256mem >,
10358
+ defm NAME#Q#SUFF#Z: avx512_scatter<qopc, OpcodeStr#"q", _.info256, vz32mem >,
10359
10359
EVEX_V512;
10360
10360
let Predicates = [HasVLX] in {
10361
10361
defm NAME#D#SUFF#Z256: avx512_scatter<dopc, OpcodeStr#"d", _.info256,
10362
- vy256xmem >, EVEX_V256;
10362
+ vy32xmem >, EVEX_V256;
10363
10363
defm NAME#Q#SUFF#Z256: avx512_scatter<qopc, OpcodeStr#"q", _.info128,
10364
- vy128xmem >, EVEX_V256;
10364
+ vy32xmem >, EVEX_V256;
10365
10365
defm NAME#D#SUFF#Z128: avx512_scatter<dopc, OpcodeStr#"d", _.info128,
10366
- vx128xmem >, EVEX_V128;
10366
+ vx32xmem >, EVEX_V128;
10367
10367
defm NAME#Q#SUFF#Z128: avx512_scatter<qopc, OpcodeStr#"q", _.info128,
10368
- vx64xmem , VK2WM>, EVEX_V128;
10368
+ vx32xmem , VK2WM>, EVEX_V128;
10369
10369
}
10370
10370
}
10371
10371
@@ -10385,52 +10385,52 @@ multiclass avx512_gather_scatter_prefetch<bits<8> opc, Format F, string OpcodeSt
10385
10385
}
10386
10386
10387
10387
defm VGATHERPF0DPS: avx512_gather_scatter_prefetch<0xC6, MRM1m, "vgatherpf0dps",
10388
- VK16WM, vz512mem >, EVEX_V512, EVEX_CD8<32, CD8VT1>;
10388
+ VK16WM, vz32mem >, EVEX_V512, EVEX_CD8<32, CD8VT1>;
10389
10389
10390
10390
defm VGATHERPF0QPS: avx512_gather_scatter_prefetch<0xC7, MRM1m, "vgatherpf0qps",
10391
- VK8WM, vz256mem >, EVEX_V512, EVEX_CD8<32, CD8VT1>;
10391
+ VK8WM, vz32mem >, EVEX_V512, EVEX_CD8<32, CD8VT1>;
10392
10392
10393
10393
defm VGATHERPF0DPD: avx512_gather_scatter_prefetch<0xC6, MRM1m, "vgatherpf0dpd",
10394
- VK8WM, vy512xmem >, EVEX_V512, REX_W, EVEX_CD8<64, CD8VT1>;
10394
+ VK8WM, vy64xmem >, EVEX_V512, REX_W, EVEX_CD8<64, CD8VT1>;
10395
10395
10396
10396
defm VGATHERPF0QPD: avx512_gather_scatter_prefetch<0xC7, MRM1m, "vgatherpf0qpd",
10397
- VK8WM, vz512mem >, EVEX_V512, REX_W, EVEX_CD8<64, CD8VT1>;
10397
+ VK8WM, vz64mem >, EVEX_V512, REX_W, EVEX_CD8<64, CD8VT1>;
10398
10398
10399
10399
defm VGATHERPF1DPS: avx512_gather_scatter_prefetch<0xC6, MRM2m, "vgatherpf1dps",
10400
- VK16WM, vz512mem >, EVEX_V512, EVEX_CD8<32, CD8VT1>;
10400
+ VK16WM, vz32mem >, EVEX_V512, EVEX_CD8<32, CD8VT1>;
10401
10401
10402
10402
defm VGATHERPF1QPS: avx512_gather_scatter_prefetch<0xC7, MRM2m, "vgatherpf1qps",
10403
- VK8WM, vz256mem >, EVEX_V512, EVEX_CD8<32, CD8VT1>;
10403
+ VK8WM, vz32mem >, EVEX_V512, EVEX_CD8<32, CD8VT1>;
10404
10404
10405
10405
defm VGATHERPF1DPD: avx512_gather_scatter_prefetch<0xC6, MRM2m, "vgatherpf1dpd",
10406
- VK8WM, vy512xmem >, EVEX_V512, REX_W, EVEX_CD8<64, CD8VT1>;
10406
+ VK8WM, vy64xmem >, EVEX_V512, REX_W, EVEX_CD8<64, CD8VT1>;
10407
10407
10408
10408
defm VGATHERPF1QPD: avx512_gather_scatter_prefetch<0xC7, MRM2m, "vgatherpf1qpd",
10409
- VK8WM, vz512mem >, EVEX_V512, REX_W, EVEX_CD8<64, CD8VT1>;
10409
+ VK8WM, vz64mem >, EVEX_V512, REX_W, EVEX_CD8<64, CD8VT1>;
10410
10410
10411
10411
defm VSCATTERPF0DPS: avx512_gather_scatter_prefetch<0xC6, MRM5m, "vscatterpf0dps",
10412
- VK16WM, vz512mem >, EVEX_V512, EVEX_CD8<32, CD8VT1>;
10412
+ VK16WM, vz32mem >, EVEX_V512, EVEX_CD8<32, CD8VT1>;
10413
10413
10414
10414
defm VSCATTERPF0QPS: avx512_gather_scatter_prefetch<0xC7, MRM5m, "vscatterpf0qps",
10415
- VK8WM, vz256mem >, EVEX_V512, EVEX_CD8<32, CD8VT1>;
10415
+ VK8WM, vz32mem >, EVEX_V512, EVEX_CD8<32, CD8VT1>;
10416
10416
10417
10417
defm VSCATTERPF0DPD: avx512_gather_scatter_prefetch<0xC6, MRM5m, "vscatterpf0dpd",
10418
- VK8WM, vy512xmem >, EVEX_V512, REX_W, EVEX_CD8<64, CD8VT1>;
10418
+ VK8WM, vy64xmem >, EVEX_V512, REX_W, EVEX_CD8<64, CD8VT1>;
10419
10419
10420
10420
defm VSCATTERPF0QPD: avx512_gather_scatter_prefetch<0xC7, MRM5m, "vscatterpf0qpd",
10421
- VK8WM, vz512mem >, EVEX_V512, REX_W, EVEX_CD8<64, CD8VT1>;
10421
+ VK8WM, vz64mem >, EVEX_V512, REX_W, EVEX_CD8<64, CD8VT1>;
10422
10422
10423
10423
defm VSCATTERPF1DPS: avx512_gather_scatter_prefetch<0xC6, MRM6m, "vscatterpf1dps",
10424
- VK16WM, vz512mem >, EVEX_V512, EVEX_CD8<32, CD8VT1>;
10424
+ VK16WM, vz32mem >, EVEX_V512, EVEX_CD8<32, CD8VT1>;
10425
10425
10426
10426
defm VSCATTERPF1QPS: avx512_gather_scatter_prefetch<0xC7, MRM6m, "vscatterpf1qps",
10427
- VK8WM, vz256mem >, EVEX_V512, EVEX_CD8<32, CD8VT1>;
10427
+ VK8WM, vz32mem >, EVEX_V512, EVEX_CD8<32, CD8VT1>;
10428
10428
10429
10429
defm VSCATTERPF1DPD: avx512_gather_scatter_prefetch<0xC6, MRM6m, "vscatterpf1dpd",
10430
- VK8WM, vy512xmem >, EVEX_V512, REX_W, EVEX_CD8<64, CD8VT1>;
10430
+ VK8WM, vy64xmem >, EVEX_V512, REX_W, EVEX_CD8<64, CD8VT1>;
10431
10431
10432
10432
defm VSCATTERPF1QPD: avx512_gather_scatter_prefetch<0xC7, MRM6m, "vscatterpf1qpd",
10433
- VK8WM, vz512mem >, EVEX_V512, REX_W, EVEX_CD8<64, CD8VT1>;
10433
+ VK8WM, vz64mem >, EVEX_V512, REX_W, EVEX_CD8<64, CD8VT1>;
10434
10434
10435
10435
multiclass cvt_by_vec_width<bits<8> opc, X86VectorVTInfo Vec, string OpcodeStr, SchedWrite Sched> {
10436
10436
def rk : AVX512XS8I<opc, MRMSrcReg, (outs Vec.RC:$dst), (ins Vec.KRC:$src),
0 commit comments