@@ -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