@@ -110,11 +110,11 @@ multiclass ZARead<string n_suffix, string t, string i_prefix, list<ImmCheck> ch>
110
110
}
111
111
}
112
112
113
- defm SVREAD_ZA8 : ZARead<"za8", "cUc ", "aarch64_sme_read", [ImmCheck<2, ImmCheck0_0>]>;
113
+ defm SVREAD_ZA8 : ZARead<"za8", "cUcm ", "aarch64_sme_read", [ImmCheck<2, ImmCheck0_0>]>;
114
114
defm SVREAD_ZA16 : ZARead<"za16", "sUshb", "aarch64_sme_read", [ImmCheck<2, ImmCheck0_1>]>;
115
115
defm SVREAD_ZA32 : ZARead<"za32", "iUif", "aarch64_sme_read", [ImmCheck<2, ImmCheck0_3>]>;
116
116
defm SVREAD_ZA64 : ZARead<"za64", "lUld", "aarch64_sme_read", [ImmCheck<2, ImmCheck0_7>]>;
117
- defm SVREAD_ZA128 : ZARead<"za128", "csilUcUsUiUlhbfd ", "aarch64_sme_readq", [ImmCheck<2, ImmCheck0_15>]>;
117
+ defm SVREAD_ZA128 : ZARead<"za128", "csilUcUsUiUlmhbfd ", "aarch64_sme_readq", [ImmCheck<2, ImmCheck0_15>]>;
118
118
119
119
////////////////////////////////////////////////////////////////////////////////
120
120
// Write horizontal/vertical ZA slices
@@ -131,11 +131,11 @@ multiclass ZAWrite<string n_suffix, string t, string i_prefix, list<ImmCheck> ch
131
131
}
132
132
}
133
133
134
- defm SVWRITE_ZA8 : ZAWrite<"za8", "cUc ", "aarch64_sme_write", [ImmCheck<0, ImmCheck0_0>]>;
134
+ defm SVWRITE_ZA8 : ZAWrite<"za8", "cUcm ", "aarch64_sme_write", [ImmCheck<0, ImmCheck0_0>]>;
135
135
defm SVWRITE_ZA16 : ZAWrite<"za16", "sUshb", "aarch64_sme_write", [ImmCheck<0, ImmCheck0_1>]>;
136
136
defm SVWRITE_ZA32 : ZAWrite<"za32", "iUif", "aarch64_sme_write", [ImmCheck<0, ImmCheck0_3>]>;
137
137
defm SVWRITE_ZA64 : ZAWrite<"za64", "lUld", "aarch64_sme_write", [ImmCheck<0, ImmCheck0_7>]>;
138
- defm SVWRITE_ZA128 : ZAWrite<"za128", "csilUcUsUiUlhbfd ", "aarch64_sme_writeq", [ImmCheck<0, ImmCheck0_15>]>;
138
+ defm SVWRITE_ZA128 : ZAWrite<"za128", "csilUcUsUiUlmhbfd ", "aarch64_sme_writeq", [ImmCheck<0, ImmCheck0_15>]>;
139
139
140
140
////////////////////////////////////////////////////////////////////////////////
141
141
// SME - Zero
@@ -350,7 +350,7 @@ multiclass ZAWrite_VG<string n, string t, string i, list<ImmCheck> checks> {
350
350
}
351
351
352
352
let SMETargetGuard = "sme2" in {
353
- defm SVWRITE_ZA8 : ZAWrite_VG<"za8", "cUc ", "aarch64_sme_write", [ImmCheck<0, ImmCheck0_0>]>;
353
+ defm SVWRITE_ZA8 : ZAWrite_VG<"za8", "cUcm ", "aarch64_sme_write", [ImmCheck<0, ImmCheck0_0>]>;
354
354
defm SVWRITE_ZA16 : ZAWrite_VG<"za16", "sUshb", "aarch64_sme_write", [ImmCheck<0, ImmCheck0_1>]>;
355
355
defm SVWRITE_ZA32 : ZAWrite_VG<"za32", "iUif", "aarch64_sme_write", [ImmCheck<0, ImmCheck0_3>]>;
356
356
defm SVWRITE_ZA64 : ZAWrite_VG<"za64", "lUld", "aarch64_sme_write", [ImmCheck<0, ImmCheck0_7>]>;
@@ -366,7 +366,7 @@ multiclass ZARead_VG<string n, string t, string i, list<ImmCheck> checks> {
366
366
}
367
367
368
368
let SMETargetGuard = "sme2" in {
369
- defm SVREAD_ZA8 : ZARead_VG<"za8", "cUc ", "aarch64_sme_read", [ImmCheck<0, ImmCheck0_0>]>;
369
+ defm SVREAD_ZA8 : ZARead_VG<"za8", "cUcm ", "aarch64_sme_read", [ImmCheck<0, ImmCheck0_0>]>;
370
370
defm SVREAD_ZA16 : ZARead_VG<"za16", "sUshb", "aarch64_sme_read", [ImmCheck<0, ImmCheck0_1>]>;
371
371
defm SVREAD_ZA32 : ZARead_VG<"za32", "iUif", "aarch64_sme_read", [ImmCheck<0, ImmCheck0_3>]>;
372
372
defm SVREAD_ZA64 : ZARead_VG<"za64", "lUld", "aarch64_sme_read", [ImmCheck<0, ImmCheck0_7>]>;
@@ -722,24 +722,24 @@ def IN_STREAMING_MODE : Inst<"__arm_in_streaming_mode", "sv", "Pc", MergeNone,
722
722
// lookup table expand four contiguous registers
723
723
//
724
724
let SMETargetGuard = "sme2" in {
725
- def SVLUTI2_LANE_ZT_X4 : Inst<"svluti2_lane_zt_{d}_x4", "4.di[i", "cUcsUsiUibhf ", MergeNone, "aarch64_sme_luti2_lane_zt_x4", [IsStreaming, IsInZT0], [ImmCheck<0, ImmCheck0_0>, ImmCheck<2, ImmCheck0_3>]>;
725
+ def SVLUTI2_LANE_ZT_X4 : Inst<"svluti2_lane_zt_{d}_x4", "4.di[i", "cUcsUsiUimbhf ", MergeNone, "aarch64_sme_luti2_lane_zt_x4", [IsStreaming, IsInZT0], [ImmCheck<0, ImmCheck0_0>, ImmCheck<2, ImmCheck0_3>]>;
726
726
def SVLUTI4_LANE_ZT_X4 : Inst<"svluti4_lane_zt_{d}_x4", "4.di[i", "sUsiUibhf", MergeNone, "aarch64_sme_luti4_lane_zt_x4", [IsStreaming, IsInZT0], [ImmCheck<0, ImmCheck0_0>, ImmCheck<2, ImmCheck0_1>]>;
727
727
}
728
728
729
729
//
730
730
// lookup table expand one register
731
731
//
732
732
let SMETargetGuard = "sme2" in {
733
- def SVLUTI2_LANE_ZT : Inst<"svluti2_lane_zt_{d}", "di[i", "cUcsUsiUibhf ", MergeNone, "aarch64_sme_luti2_lane_zt", [IsStreaming, IsInZT0], [ImmCheck<0, ImmCheck0_0>, ImmCheck<2, ImmCheck0_15>]>;
734
- def SVLUTI4_LANE_ZT : Inst<"svluti4_lane_zt_{d}", "di[i", "cUcsUsiUibhf ", MergeNone, "aarch64_sme_luti4_lane_zt", [IsStreaming, IsInZT0], [ImmCheck<0, ImmCheck0_0>, ImmCheck<2, ImmCheck0_7>]>;
733
+ def SVLUTI2_LANE_ZT : Inst<"svluti2_lane_zt_{d}", "di[i", "cUcsUsiUimbhf ", MergeNone, "aarch64_sme_luti2_lane_zt", [IsStreaming, IsInZT0], [ImmCheck<0, ImmCheck0_0>, ImmCheck<2, ImmCheck0_15>]>;
734
+ def SVLUTI4_LANE_ZT : Inst<"svluti4_lane_zt_{d}", "di[i", "cUcsUsiUimbhf ", MergeNone, "aarch64_sme_luti4_lane_zt", [IsStreaming, IsInZT0], [ImmCheck<0, ImmCheck0_0>, ImmCheck<2, ImmCheck0_7>]>;
735
735
}
736
736
737
737
//
738
738
// lookup table expand two contiguous registers
739
739
//
740
740
let SMETargetGuard = "sme2" in {
741
- def SVLUTI2_LANE_ZT_X2 : Inst<"svluti2_lane_zt_{d}_x2", "2.di[i", "cUcsUsiUibhf ", MergeNone, "aarch64_sme_luti2_lane_zt_x2", [IsStreaming, IsInZT0], [ImmCheck<0, ImmCheck0_0>, ImmCheck<2, ImmCheck0_7>]>;
742
- def SVLUTI4_LANE_ZT_X2 : Inst<"svluti4_lane_zt_{d}_x2", "2.di[i", "cUcsUsiUibhf ", MergeNone, "aarch64_sme_luti4_lane_zt_x2", [IsStreaming, IsInZT0], [ImmCheck<0, ImmCheck0_0>, ImmCheck<2, ImmCheck0_3>]>;
741
+ def SVLUTI2_LANE_ZT_X2 : Inst<"svluti2_lane_zt_{d}_x2", "2.di[i", "cUcsUsiUimbhf ", MergeNone, "aarch64_sme_luti2_lane_zt_x2", [IsStreaming, IsInZT0], [ImmCheck<0, ImmCheck0_0>, ImmCheck<2, ImmCheck0_7>]>;
742
+ def SVLUTI4_LANE_ZT_X2 : Inst<"svluti4_lane_zt_{d}_x2", "2.di[i", "cUcsUsiUimbhf ", MergeNone, "aarch64_sme_luti4_lane_zt_x2", [IsStreaming, IsInZT0], [ImmCheck<0, ImmCheck0_0>, ImmCheck<2, ImmCheck0_3>]>;
743
743
}
744
744
745
745
//
@@ -811,12 +811,12 @@ multiclass ZAReadz<string n_suffix, string vg_num, string t, string i_prefix, li
811
811
}
812
812
}
813
813
814
- defm SVREADZ_ZA8_X2 : ZAReadz<"za8", "2", "cUc ", "aarch64_sme_readz", [ImmCheck<0, ImmCheck0_0>]>;
814
+ defm SVREADZ_ZA8_X2 : ZAReadz<"za8", "2", "cUcm ", "aarch64_sme_readz", [ImmCheck<0, ImmCheck0_0>]>;
815
815
defm SVREADZ_ZA16_X2 : ZAReadz<"za16", "2", "sUshb", "aarch64_sme_readz", [ImmCheck<0, ImmCheck0_1>]>;
816
816
defm SVREADZ_ZA32_X2 : ZAReadz<"za32", "2", "iUif", "aarch64_sme_readz", [ImmCheck<0, ImmCheck0_3>]>;
817
817
defm SVREADZ_ZA64_X2 : ZAReadz<"za64", "2", "lUld", "aarch64_sme_readz", [ImmCheck<0, ImmCheck0_7>]>;
818
818
819
- defm SVREADZ_ZA8_X4 : ZAReadz<"za8", "4", "cUc ", "aarch64_sme_readz", [ImmCheck<0, ImmCheck0_0>]>;
819
+ defm SVREADZ_ZA8_X4 : ZAReadz<"za8", "4", "cUcm ", "aarch64_sme_readz", [ImmCheck<0, ImmCheck0_0>]>;
820
820
defm SVREADZ_ZA16_X4 : ZAReadz<"za16", "4", "sUshb", "aarch64_sme_readz", [ImmCheck<0, ImmCheck0_1>]>;
821
821
defm SVREADZ_ZA32_X4 : ZAReadz<"za32", "4", "iUif", "aarch64_sme_readz", [ImmCheck<0, ImmCheck0_3>]>;
822
822
defm SVREADZ_ZA64_X4 : ZAReadz<"za64", "4", "lUld", "aarch64_sme_readz", [ImmCheck<0, ImmCheck0_7>]>;
@@ -834,15 +834,15 @@ multiclass ZAReadzSingle<string n_suffix, string t, string i_prefix, list<ImmChe
834
834
}
835
835
}
836
836
837
- defm SVREADZ_ZA8 : ZAReadzSingle<"za8", "cUc ", "aarch64_sme_readz", [ImmCheck<0, ImmCheck0_0>]>;
837
+ defm SVREADZ_ZA8 : ZAReadzSingle<"za8", "cUcm ", "aarch64_sme_readz", [ImmCheck<0, ImmCheck0_0>]>;
838
838
defm SVREADZ_ZA16 : ZAReadzSingle<"za16", "sUshb", "aarch64_sme_readz", [ImmCheck<0, ImmCheck0_1>]>;
839
839
defm SVREADZ_ZA32 : ZAReadzSingle<"za32", "iUif", "aarch64_sme_readz", [ImmCheck<0, ImmCheck0_3>]>;
840
840
defm SVREADZ_ZA64 : ZAReadzSingle<"za64", "lUld", "aarch64_sme_readz", [ImmCheck<0, ImmCheck0_7>]>;
841
- defm SVREADZ_ZA128 : ZAReadzSingle<"za128", "csilUcUiUsUlbhfd ", "aarch64_sme_readz_q", [ImmCheck<0, ImmCheck0_15>]>;
841
+ defm SVREADZ_ZA128 : ZAReadzSingle<"za128", "csilUcUiUsUlmbhfd ", "aarch64_sme_readz_q", [ImmCheck<0, ImmCheck0_15>]>;
842
842
843
843
multiclass ZAReadzArray<string vg_num>{
844
844
let SMETargetGuard = "sme2p1" in {
845
- def NAME # _B : SInst<"svreadz_za8_{d}_vg1x" # vg_num, vg_num # "m", "cUc ", MergeNone, "aarch64_sme_readz_x" # vg_num, [IsStreaming, IsInOutZA]>;
845
+ def NAME # _B : SInst<"svreadz_za8_{d}_vg1x" # vg_num, vg_num # "m", "cUcm ", MergeNone, "aarch64_sme_readz_x" # vg_num, [IsStreaming, IsInOutZA]>;
846
846
def NAME # _H : SInst<"svreadz_za16_{d}_vg1x" # vg_num, vg_num # "m", "sUsbh", MergeNone, "aarch64_sme_readz_x" # vg_num, [IsStreaming, IsInOutZA]>;
847
847
def NAME # _S : SInst<"svreadz_za32_{d}_vg1x" # vg_num, vg_num # "m", "iUif", MergeNone, "aarch64_sme_readz_x" # vg_num, [IsStreaming, IsInOutZA]>;
848
848
def NAME # _D : SInst<"svreadz_za64_{d}_vg1x" # vg_num, vg_num # "m", "lUld", MergeNone, "aarch64_sme_readz_x" # vg_num, [IsStreaming, IsInOutZA]>;
0 commit comments