@@ -99,6 +99,8 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
9999 ( "bti" , Stable , & [ ] ) ,
100100 // FEAT_CRC
101101 ( "crc" , Stable , & [ ] ) ,
102+ // FEAT_CSSC
103+ ( "cssc" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ ] ) ,
102104 // FEAT_DIT
103105 ( "dit" , Stable , & [ ] ) ,
104106 // FEAT_DotProd
@@ -107,21 +109,39 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
107109 ( "dpb" , Stable , & [ ] ) ,
108110 // FEAT_DPB2
109111 ( "dpb2" , Stable , & [ "dpb" ] ) ,
112+ // FEAT_ECV
113+ ( "ecv" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ ] ) ,
110114 // FEAT_F32MM
111115 ( "f32mm" , Stable , & [ "sve" ] ) ,
112116 // FEAT_F64MM
113117 ( "f64mm" , Stable , & [ "sve" ] ) ,
118+ // FEAT_FAMINMAX
119+ ( "faminmax" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ ] ) ,
114120 // FEAT_FCMA
115121 ( "fcma" , Stable , & [ "neon" ] ) ,
116122 // FEAT_FHM
117123 ( "fhm" , Stable , & [ "fp16" ] ) ,
118124 // FEAT_FLAGM
119125 ( "flagm" , Stable , & [ ] ) ,
126+ // FEAT_FLAGM2
127+ ( "flagm2" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ ] ) ,
120128 // FEAT_FP16
121129 // Rust ties FP and Neon: https://github.com/rust-lang/rust/pull/91608
122130 ( "fp16" , Stable , & [ "neon" ] ) ,
131+ // FEAT_FP8
132+ ( "fp8" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ "faminmax" , "lut" , "bf16" ] ) ,
133+ // FEAT_FP8DOT2
134+ ( "fp8dot2" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ "fp8dot4" ] ) ,
135+ // FEAT_FP8DOT4
136+ ( "fp8dot4" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ "fp8fma" ] ) ,
137+ // FEAT_FP8FMA
138+ ( "fp8fma" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ "fp8" ] ) ,
139+ // FEAT_FPMR
140+ ( "fpmr" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ ] ) ,
123141 // FEAT_FRINTTS
124142 ( "frintts" , Stable , & [ ] ) ,
143+ // FEAT_HBC
144+ ( "hbc" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ ] ) ,
125145 // FEAT_I8MM
126146 ( "i8mm" , Stable , & [ ] ) ,
127147 // FEAT_JSCVT
@@ -131,6 +151,14 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
131151 ( "lor" , Stable , & [ ] ) ,
132152 // FEAT_LSE
133153 ( "lse" , Stable , & [ ] ) ,
154+ // FEAT_LSE128
155+ ( "lse128" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ "lse" ] ) ,
156+ // FEAT_LSE2
157+ ( "lse2" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ ] ) ,
158+ // FEAT_LUT
159+ ( "lut" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ ] ) ,
160+ // FEAT_MOPS
161+ ( "mops" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ ] ) ,
134162 // FEAT_MTE & FEAT_MTE2
135163 ( "mte" , Stable , & [ ] ) ,
136164 // FEAT_AdvSimd & FEAT_FP
@@ -143,14 +171,16 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
143171 ( "pan" , Stable , & [ ] ) ,
144172 // FEAT_PMUv3
145173 ( "pmuv3" , Stable , & [ ] ) ,
146- // FEAT_RAND
174+ // FEAT_RNG
147175 ( "rand" , Stable , & [ ] ) ,
148176 // FEAT_RAS & FEAT_RASv1p1
149177 ( "ras" , Stable , & [ ] ) ,
150- // FEAT_RCPC
178+ // FEAT_LRCPC
151179 ( "rcpc" , Stable , & [ ] ) ,
152- // FEAT_RCPC2
180+ // FEAT_LRCPC2
153181 ( "rcpc2" , Stable , & [ "rcpc" ] ) ,
182+ // FEAT_LRCPC3
183+ ( "rcpc3" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ "rcpc2" ] ) ,
154184 // FEAT_RDM
155185 ( "rdm" , Stable , & [ "neon" ] ) ,
156186 // FEAT_SB
@@ -173,16 +203,20 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
173203 //
174204 // "For backwards compatibility, Neon and VFP are required in the latest architectures."
175205 ( "sve" , Stable , & [ "neon" ] ) ,
206+ // FEAT_SVE_B16B16 (SVE or SME Instructions)
207+ ( "sve-b16b16" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ "bf16" ] ) ,
176208 // FEAT_SVE2
177209 ( "sve2" , Stable , & [ "sve" ] ) ,
178- // FEAT_SVE2_AES
210+ // FEAT_SVE_AES & FEAT_SVE_PMULL128
179211 ( "sve2-aes" , Stable , & [ "sve2" , "aes" ] ) ,
180212 // FEAT_SVE2_BitPerm
181213 ( "sve2-bitperm" , Stable , & [ "sve2" ] ) ,
182214 // FEAT_SVE2_SHA3
183215 ( "sve2-sha3" , Stable , & [ "sve2" , "sha3" ] ) ,
184216 // FEAT_SVE2_SM4
185217 ( "sve2-sm4" , Stable , & [ "sve2" , "sm4" ] ) ,
218+ // FEAT_SVE2p1
219+ ( "sve2p1" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ "sve2" ] ) ,
186220 // FEAT_TME
187221 ( "tme" , Stable , & [ ] ) ,
188222 (
@@ -199,9 +233,19 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
199233 ( "v8.4a" , Unstable ( sym:: aarch64_ver_target_feature) , & [ "v8.3a" , "dotprod" , "dit" , "flagm" ] ) ,
200234 ( "v8.5a" , Unstable ( sym:: aarch64_ver_target_feature) , & [ "v8.4a" , "ssbs" , "sb" , "dpb2" , "bti" ] ) ,
201235 ( "v8.6a" , Unstable ( sym:: aarch64_ver_target_feature) , & [ "v8.5a" , "bf16" , "i8mm" ] ) ,
202- ( "v8.7a" , Unstable ( sym:: aarch64_ver_target_feature) , & [ ] ) ,
236+ ( "v8.7a" , Unstable ( sym:: aarch64_ver_target_feature) , & [ "v8.6a" , "wfxt" ] ) ,
237+ ( "v8.8a" , Unstable ( sym:: aarch64_ver_target_feature) , & [ "v8.7a" , "hbc" , "mops" ] ) ,
238+ ( "v8.9a" , Unstable ( sym:: aarch64_ver_target_feature) , & [ "v8.8a" , "cssc" ] ) ,
239+ ( "v9.1a" , Unstable ( sym:: aarch64_ver_target_feature) , & [ "v9a" , "v8.6a" ] ) ,
240+ ( "v9.2a" , Unstable ( sym:: aarch64_ver_target_feature) , & [ "v9.1a" , "v8.7a" ] ) ,
241+ ( "v9.3a" , Unstable ( sym:: aarch64_ver_target_feature) , & [ "v9.2a" , "v8.8a" ] ) ,
242+ ( "v9.4a" , Unstable ( sym:: aarch64_ver_target_feature) , & [ "v9.3a" , "v8.9a" ] ) ,
243+ ( "v9.5a" , Unstable ( sym:: aarch64_ver_target_feature) , & [ "v9.4a" ] ) ,
244+ ( "v9a" , Unstable ( sym:: aarch64_ver_target_feature) , & [ "v8.5a" , "sve2" ] ) ,
203245 // FEAT_VHE
204246 ( "vh" , Stable , & [ ] ) ,
247+ // FEAT_WFxT
248+ ( "wfxt" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ ] ) ,
205249 // tidy-alphabetical-end
206250] ;
207251
0 commit comments