@@ -10279,36 +10279,36 @@ multiclass avx512_gather<bits<8> opc, string OpcodeStr, X86VectorVTInfo _,
1027910279multiclass avx512_gather_q_pd<bits<8> dopc, bits<8> qopc,
1028010280 AVX512VLVectorVTInfo _, string OpcodeStr, string SUFF> {
1028110281 defm NAME#D#SUFF#Z: avx512_gather<dopc, OpcodeStr#"d", _.info512,
10282- vy512xmem >, EVEX_V512, REX_W;
10282+ vy64xmem >, EVEX_V512, REX_W;
1028310283 defm NAME#Q#SUFF#Z: avx512_gather<qopc, OpcodeStr#"q", _.info512,
10284- vz512mem >, EVEX_V512, REX_W;
10284+ vz64mem >, EVEX_V512, REX_W;
1028510285let Predicates = [HasVLX] in {
1028610286 defm NAME#D#SUFF#Z256: avx512_gather<dopc, OpcodeStr#"d", _.info256,
10287- vx256xmem >, EVEX_V256, REX_W;
10287+ vx64xmem >, EVEX_V256, REX_W;
1028810288 defm NAME#Q#SUFF#Z256: avx512_gather<qopc, OpcodeStr#"q", _.info256,
10289- vy256xmem >, EVEX_V256, REX_W;
10289+ vy64xmem >, EVEX_V256, REX_W;
1029010290 defm NAME#D#SUFF#Z128: avx512_gather<dopc, OpcodeStr#"d", _.info128,
10291- vx128xmem >, EVEX_V128, REX_W;
10291+ vx64xmem >, EVEX_V128, REX_W;
1029210292 defm NAME#Q#SUFF#Z128: avx512_gather<qopc, OpcodeStr#"q", _.info128,
10293- vx128xmem >, EVEX_V128, REX_W;
10293+ vx64xmem >, EVEX_V128, REX_W;
1029410294}
1029510295}
1029610296
1029710297multiclass avx512_gather_d_ps<bits<8> dopc, bits<8> qopc,
1029810298 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 >,
1030010300 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 >,
1030210302 EVEX_V512;
1030310303let Predicates = [HasVLX] in {
1030410304 defm NAME#D#SUFF#Z256: avx512_gather<dopc, OpcodeStr#"d", _.info256,
10305- vy256xmem >, EVEX_V256;
10305+ vy32xmem >, EVEX_V256;
1030610306 defm NAME#Q#SUFF#Z256: avx512_gather<qopc, OpcodeStr#"q", _.info128,
10307- vy128xmem >, EVEX_V256;
10307+ vy32xmem >, EVEX_V256;
1030810308 defm NAME#D#SUFF#Z128: avx512_gather<dopc, OpcodeStr#"d", _.info128,
10309- vx128xmem >, EVEX_V128;
10309+ vx32xmem >, EVEX_V128;
1031010310 defm NAME#Q#SUFF#Z128: avx512_gather<qopc, OpcodeStr#"q", _.info128,
10311- vx64xmem , VK2WM>, EVEX_V128;
10311+ vx32xmem , VK2WM>, EVEX_V128;
1031210312}
1031310313}
1031410314
@@ -10336,36 +10336,36 @@ let mayStore = 1, Constraints = "$mask = $mask_wb", ExeDomain = _.ExeDomain,
1033610336multiclass avx512_scatter_q_pd<bits<8> dopc, bits<8> qopc,
1033710337 AVX512VLVectorVTInfo _, string OpcodeStr, string SUFF> {
1033810338 defm NAME#D#SUFF#Z: avx512_scatter<dopc, OpcodeStr#"d", _.info512,
10339- vy512xmem >, EVEX_V512, REX_W;
10339+ vy64xmem >, EVEX_V512, REX_W;
1034010340 defm NAME#Q#SUFF#Z: avx512_scatter<qopc, OpcodeStr#"q", _.info512,
10341- vz512mem >, EVEX_V512, REX_W;
10341+ vz64mem >, EVEX_V512, REX_W;
1034210342let Predicates = [HasVLX] in {
1034310343 defm NAME#D#SUFF#Z256: avx512_scatter<dopc, OpcodeStr#"d", _.info256,
10344- vx256xmem >, EVEX_V256, REX_W;
10344+ vx64xmem >, EVEX_V256, REX_W;
1034510345 defm NAME#Q#SUFF#Z256: avx512_scatter<qopc, OpcodeStr#"q", _.info256,
10346- vy256xmem >, EVEX_V256, REX_W;
10346+ vy64xmem >, EVEX_V256, REX_W;
1034710347 defm NAME#D#SUFF#Z128: avx512_scatter<dopc, OpcodeStr#"d", _.info128,
10348- vx128xmem >, EVEX_V128, REX_W;
10348+ vx64xmem >, EVEX_V128, REX_W;
1034910349 defm NAME#Q#SUFF#Z128: avx512_scatter<qopc, OpcodeStr#"q", _.info128,
10350- vx128xmem >, EVEX_V128, REX_W;
10350+ vx64xmem >, EVEX_V128, REX_W;
1035110351}
1035210352}
1035310353
1035410354multiclass avx512_scatter_d_ps<bits<8> dopc, bits<8> qopc,
1035510355 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 >,
1035710357 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 >,
1035910359 EVEX_V512;
1036010360let Predicates = [HasVLX] in {
1036110361 defm NAME#D#SUFF#Z256: avx512_scatter<dopc, OpcodeStr#"d", _.info256,
10362- vy256xmem >, EVEX_V256;
10362+ vy32xmem >, EVEX_V256;
1036310363 defm NAME#Q#SUFF#Z256: avx512_scatter<qopc, OpcodeStr#"q", _.info128,
10364- vy128xmem >, EVEX_V256;
10364+ vy32xmem >, EVEX_V256;
1036510365 defm NAME#D#SUFF#Z128: avx512_scatter<dopc, OpcodeStr#"d", _.info128,
10366- vx128xmem >, EVEX_V128;
10366+ vx32xmem >, EVEX_V128;
1036710367 defm NAME#Q#SUFF#Z128: avx512_scatter<qopc, OpcodeStr#"q", _.info128,
10368- vx64xmem , VK2WM>, EVEX_V128;
10368+ vx32xmem , VK2WM>, EVEX_V128;
1036910369}
1037010370}
1037110371
@@ -10385,52 +10385,52 @@ multiclass avx512_gather_scatter_prefetch<bits<8> opc, Format F, string OpcodeSt
1038510385}
1038610386
1038710387defm 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>;
1038910389
1039010390defm 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>;
1039210392
1039310393defm 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>;
1039510395
1039610396defm 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>;
1039810398
1039910399defm 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>;
1040110401
1040210402defm 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>;
1040410404
1040510405defm 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>;
1040710407
1040810408defm 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>;
1041010410
1041110411defm 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>;
1041310413
1041410414defm 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>;
1041610416
1041710417defm 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>;
1041910419
1042010420defm 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>;
1042210422
1042310423defm 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>;
1042510425
1042610426defm 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>;
1042810428
1042910429defm 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>;
1043110431
1043210432defm 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>;
1043410434
1043510435multiclass cvt_by_vec_width<bits<8> opc, X86VectorVTInfo Vec, string OpcodeStr, SchedWrite Sched> {
1043610436def rk : AVX512XS8I<opc, MRMSrcReg, (outs Vec.RC:$dst), (ins Vec.KRC:$src),
0 commit comments