@@ -133,6 +133,71 @@ Feature | Implicitly Enables | Description
133
133
[ `xsaveopt` ] : https://www.felixcloutier.com/x86/xsaveopt
134
134
[ `xsaves` ] : https://www.felixcloutier.com/x86/xsaves
135
135
136
+ #### ` aarch64 `
137
+
138
+ This platform requires that ` #[target_feature] ` is only applied to [ ` unsafe `
139
+ functions] [ unsafe function ] .
140
+
141
+ Further documentation on these features can be found in the [ ARM Architecture
142
+ Reference Manual] , or elsewhere on [ developer.arm.com] .
143
+
144
+ [ ARM Architecture Reference Manual ] : https://developer.arm.com/documentation/ddi0487/latest
145
+ [ developer.arm.com ] : https://developer.arm.com
146
+
147
+ > *** Note*** : The following pairs of features should both be marked as enabled
148
+ > or disabled together if used:
149
+ > - ` fp ` and ` neon ` , in order facilitate inlining in more places, among other reasons.
150
+ > - ` paca ` and ` pacg ` , which LLVM currently implements as one feature.
151
+
152
+
153
+ Feature | Implicitly Enables | Feature Name
154
+ ---------------|--------------------|-------------------
155
+ ` aes ` | ` neon ` | FEAT_AES - Advanced <abbr title =" Single Instruction Multiple Data " >SIMD</abbr > AES instructions
156
+ ` bf16 ` | | FEAT_BF16 - BFloat16 instructions
157
+ ` bti ` | | FEAT_BTI - Branch Target Identification
158
+ ` crc ` | | FEAT_CRC - CRC32 checksum instructions
159
+ ` dit ` | | FEAT_DIT - Data Independent Timing instructions
160
+ ` dotprod ` | | FEAT_DotProd - Advanced SIMD Int8 dot product instructions
161
+ ` dpb ` | | FEAT_DPB - Data cache clean to point of persistence
162
+ ` dpb2 ` | | FEAT_DPB2 - Data cache clean to point of deep persistence
163
+ ` f32mm ` | ` sve ` | FEAT_F32MM - SVE single-precision FP matrix multiply instruction
164
+ ` f64mm ` | ` sve ` | FEAT_F64MM - SVE double-precision FP matrix multiply instruction
165
+ ` fcma ` | ` neon ` | FEAT_FCMA - Floating point complex number support
166
+ ` fhm ` | ` fp16 ` | FEAT_FHM - Half-precision FP FMLAL instructions
167
+ ` flagm ` | | FEAT_FlagM - Conditional flag manipulation
168
+ ` fp ` | | FEAT_FP - Floating point extension
169
+ ` fp16 ` | ` fp ` , ` neon ` | FEAT_FP16 - Half-precision FP data processing
170
+ ` frintts ` | | FEAT_FRINTTS - Floating-point to int helper instructions
171
+ ` i8mm ` | | FEAT_I8MM - Int8 Matrix Multiplication
172
+ ` jsconv ` | ` fp ` , ` neon ` | FEAT_JSCVT - JavaScript conversion instruction
173
+ ` lse ` | | FEAT_LSE - Large System Extension
174
+ ` lor ` | | FEAT_LOR - Limited Ordering Regions extension
175
+ ` mte ` | | FEAT_MTE - Memory Tagging Extension
176
+ ` neon ` | ` fp ` | FEAT_AdvSIMD - Advanced SIMD extension
177
+ ` pan ` | | FEAT_PAN - Privileged Access-Never extension
178
+ ` paca ` | | FEAT_PAuth - Pointer Authentication (address authentication)
179
+ ` pacg ` | | FEAT_PAuth - Pointer Authentication (generic authentication)
180
+ ` pmuv3 ` | | FEAT_PMUv3 - Performance Monitors extension (v3)
181
+ ` rand ` | | FEAT_RNG - Random Number Generator
182
+ ` ras ` | | FEAT_RAS - Reliability, Availability and Serviceability extension
183
+ ` rcpc ` | | FEAT_LRCPC - Release consistent Processor Consistent
184
+ ` rcpc2 ` | ` rcpc ` | FEAT_LRCPC2 - RcPc with immediate offsets
185
+ ` rdm ` | | FEAT_RDM - Rounding Double Multiply accumulate
186
+ ` sb ` | | FEAT_SB - Speculation Barrier
187
+ ` sha2 ` | ` neon ` | FEAT_SHA1 & FEAT_SHA256 - Advanced SIMD SHA instructions
188
+ ` sha3 ` | ` sha2 ` | FEAT_SHA512 & FEAT_SHA3 - Advanced SIMD SHA instructions
189
+ ` sm4 ` | ` neon ` | FEAT_SM3 & FEAT_SM4 - Advanced SIMD SM3/4 instructions
190
+ ` spe ` | | FEAT_SPE - Statistical Profiling Extension
191
+ ` ssbs ` | | FEAT_SSBS - Speculative Store Bypass Safe
192
+ ` sve ` | ` fp16 ` | FEAT_SVE - Scalable Vector Extension
193
+ ` sve2 ` | ` sve ` | FEAT_SVE2 - Scalable Vector Extension 2
194
+ ` sve2-aes ` | ` sve2 ` , ` aes ` | FEAT_SVE_AES - SVE AES instructions
195
+ ` sve2-sm4 ` | ` sve2 ` , ` sm4 ` | FEAT_SVE_SM4 - SVE SM4 instructions
196
+ ` sve2-sha3 ` | ` sve2 ` , ` sha3 ` | FEAT_SVE_SHA3 - SVE SHA3 instructions
197
+ ` sve2-bitperm ` | ` sve2 ` | FEAT_SVE_BitPerm - SVE Bit Permute
198
+ ` tme ` | | FEAT_TME - Transactional Memory Extension
199
+ ` vh ` | | FEAT_VHE - Virtualization Host Extensions
200
+
136
201
#### ` wasm32 ` or ` wasm64 `
137
202
138
203
` #[target_feature] ` may be used with both safe and
0 commit comments