@@ -99,6 +99,8 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
99
99
( "bti" , Stable , & [ ] ) ,
100
100
// FEAT_CRC
101
101
( "crc" , Stable , & [ ] ) ,
102
+ // FEAT_CSSC
103
+ ( "cssc" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ ] ) ,
102
104
// FEAT_DIT
103
105
( "dit" , Stable , & [ ] ) ,
104
106
// FEAT_DotProd
@@ -107,21 +109,39 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
107
109
( "dpb" , Stable , & [ ] ) ,
108
110
// FEAT_DPB2
109
111
( "dpb2" , Stable , & [ "dpb" ] ) ,
112
+ // FEAT_ECV
113
+ ( "ecv" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ ] ) ,
110
114
// FEAT_F32MM
111
115
( "f32mm" , Stable , & [ "sve" ] ) ,
112
116
// FEAT_F64MM
113
117
( "f64mm" , Stable , & [ "sve" ] ) ,
118
+ // FEAT_FAMINMAX
119
+ ( "faminmax" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ ] ) ,
114
120
// FEAT_FCMA
115
121
( "fcma" , Stable , & [ "neon" ] ) ,
116
122
// FEAT_FHM
117
123
( "fhm" , Stable , & [ "fp16" ] ) ,
118
124
// FEAT_FLAGM
119
125
( "flagm" , Stable , & [ ] ) ,
126
+ // FEAT_FLAGM2
127
+ ( "flagm2" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ ] ) ,
120
128
// FEAT_FP16
121
129
// Rust ties FP and Neon: https://github.com/rust-lang/rust/pull/91608
122
130
( "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) , & [ ] ) ,
123
141
// FEAT_FRINTTS
124
142
( "frintts" , Stable , & [ ] ) ,
143
+ // FEAT_HBC
144
+ ( "hbc" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ ] ) ,
125
145
// FEAT_I8MM
126
146
( "i8mm" , Stable , & [ ] ) ,
127
147
// FEAT_JSCVT
@@ -131,6 +151,14 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
131
151
( "lor" , Stable , & [ ] ) ,
132
152
// FEAT_LSE
133
153
( "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) , & [ ] ) ,
134
162
// FEAT_MTE & FEAT_MTE2
135
163
( "mte" , Stable , & [ ] ) ,
136
164
// FEAT_AdvSimd & FEAT_FP
@@ -143,14 +171,16 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
143
171
( "pan" , Stable , & [ ] ) ,
144
172
// FEAT_PMUv3
145
173
( "pmuv3" , Stable , & [ ] ) ,
146
- // FEAT_RAND
174
+ // FEAT_RNG
147
175
( "rand" , Stable , & [ ] ) ,
148
176
// FEAT_RAS & FEAT_RASv1p1
149
177
( "ras" , Stable , & [ ] ) ,
150
- // FEAT_RCPC
178
+ // FEAT_LRCPC
151
179
( "rcpc" , Stable , & [ ] ) ,
152
- // FEAT_RCPC2
180
+ // FEAT_LRCPC2
153
181
( "rcpc2" , Stable , & [ "rcpc" ] ) ,
182
+ // FEAT_LRCPC3
183
+ ( "rcpc3" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ "rcpc2" ] ) ,
154
184
// FEAT_RDM
155
185
( "rdm" , Stable , & [ "neon" ] ) ,
156
186
// FEAT_SB
@@ -173,16 +203,20 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
173
203
//
174
204
// "For backwards compatibility, Neon and VFP are required in the latest architectures."
175
205
( "sve" , Stable , & [ "neon" ] ) ,
206
+ // FEAT_SVE_B16B16 (SVE or SME Instructions)
207
+ ( "sve-b16b16" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ "bf16" ] ) ,
176
208
// FEAT_SVE2
177
209
( "sve2" , Stable , & [ "sve" ] ) ,
178
- // FEAT_SVE2_AES
210
+ // FEAT_SVE_AES & FEAT_SVE_PMULL128
179
211
( "sve2-aes" , Stable , & [ "sve2" , "aes" ] ) ,
180
212
// FEAT_SVE2_BitPerm
181
213
( "sve2-bitperm" , Stable , & [ "sve2" ] ) ,
182
214
// FEAT_SVE2_SHA3
183
215
( "sve2-sha3" , Stable , & [ "sve2" , "sha3" ] ) ,
184
216
// FEAT_SVE2_SM4
185
217
( "sve2-sm4" , Stable , & [ "sve2" , "sm4" ] ) ,
218
+ // FEAT_SVE2p1
219
+ ( "sve2p1" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ "sve2" ] ) ,
186
220
// FEAT_TME
187
221
( "tme" , Stable , & [ ] ) ,
188
222
(
@@ -199,9 +233,19 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
199
233
( "v8.4a" , Unstable ( sym:: aarch64_ver_target_feature) , & [ "v8.3a" , "dotprod" , "dit" , "flagm" ] ) ,
200
234
( "v8.5a" , Unstable ( sym:: aarch64_ver_target_feature) , & [ "v8.4a" , "ssbs" , "sb" , "dpb2" , "bti" ] ) ,
201
235
( "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" ] ) ,
203
245
// FEAT_VHE
204
246
( "vh" , Stable , & [ ] ) ,
247
+ // FEAT_WFxT
248
+ ( "wfxt" , Unstable ( sym:: aarch64_unstable_target_feature) , & [ ] ) ,
205
249
// tidy-alphabetical-end
206
250
] ;
207
251
0 commit comments