Skip to content

Commit e5d7d7c

Browse files
mrkajetanpdavidtwco
authored andcommitted
attributes/codegen: update aarch64 features
Update `attributes/codegen.md` to match aarch64 CPU features known to rustc[1]. [1]: https://github.com/rust-lang/rust/blob/afa859f8121bf2985362a2c8414dc71a825ccf2d/compiler/rustc_target/src/target_features.rs#L179-L373
1 parent 3340922 commit e5d7d7c

File tree

1 file changed

+46
-46
lines changed

1 file changed

+46
-46
lines changed

src/attributes/codegen.md

+46-46
Original file line numberDiff line numberDiff line change
@@ -226,52 +226,52 @@ Reference Manual], or elsewhere on [developer.arm.com].
226226
> The following pairs of features should both be marked as enabled or disabled together if used:
227227
> - `paca` and `pacg`, which LLVM currently implements as one feature.
228228
229-
Feature | Implicitly Enables | Feature Name
230-
---------------|--------------------|-------------------
231-
`aes` | `neon` | FEAT_AES & FEAT_PMULL --- Advanced <abbr title="Single Instruction Multiple Data">SIMD</abbr> AES & PMULL instructions
232-
`bf16` | | FEAT_BF16 --- BFloat16 instructions
233-
`bti` | | FEAT_BTI --- Branch Target Identification
234-
`crc` | | FEAT_CRC --- CRC32 checksum instructions
235-
`dit` | | FEAT_DIT --- Data Independent Timing instructions
236-
`dotprod` | | FEAT_DotProd --- Advanced SIMD Int8 dot product instructions
237-
`dpb` | | FEAT_DPB --- Data cache clean to point of persistence
238-
`dpb2` | | FEAT_DPB2 --- Data cache clean to point of deep persistence
239-
`f32mm` | `sve` | FEAT_F32MM --- SVE single-precision FP matrix multiply instruction
240-
`f64mm` | `sve` | FEAT_F64MM --- SVE double-precision FP matrix multiply instruction
241-
`fcma` | `neon` | FEAT_FCMA --- Floating point complex number support
242-
`fhm` | `fp16` | FEAT_FHM --- Half-precision FP FMLAL instructions
243-
`flagm` | | FEAT_FlagM --- Conditional flag manipulation
244-
`fp16` | `neon` | FEAT_FP16 --- Half-precision FP data processing
245-
`frintts` | | FEAT_FRINTTS --- Floating-point to int helper instructions
246-
`i8mm` | | FEAT_I8MM --- Int8 Matrix Multiplication
247-
`jsconv` | `neon` | FEAT_JSCVT --- JavaScript conversion instruction
248-
`lse` | | FEAT_LSE --- Large System Extension
249-
`lor` | | FEAT_LOR --- Limited Ordering Regions extension
250-
`mte` | | FEAT_MTE & FEAT_MTE2 --- Memory Tagging Extension
251-
`neon` | | FEAT_FP & FEAT_AdvSIMD --- Floating Point and Advanced SIMD extension
252-
`pan` | | FEAT_PAN --- Privileged Access-Never extension
253-
`paca` | | FEAT_PAuth --- Pointer Authentication (address authentication)
254-
`pacg` | | FEAT_PAuth --- Pointer Authentication (generic authentication)
255-
`pmuv3` | | FEAT_PMUv3 --- Performance Monitors extension (v3)
256-
`rand` | | FEAT_RNG --- Random Number Generator
257-
`ras` | | FEAT_RAS & FEAT_RASv1p1 --- Reliability, Availability and Serviceability extension
258-
`rcpc` | | FEAT_LRCPC --- Release consistent Processor Consistent
259-
`rcpc2` | `rcpc` | FEAT_LRCPC2 --- RcPc with immediate offsets
260-
`rdm` | | FEAT_RDM --- Rounding Double Multiply accumulate
261-
`sb` | | FEAT_SB --- Speculation Barrier
262-
`sha2` | `neon` | FEAT_SHA1 & FEAT_SHA256 --- Advanced SIMD SHA instructions
263-
`sha3` | `sha2` | FEAT_SHA512 & FEAT_SHA3 --- Advanced SIMD SHA instructions
264-
`sm4` | `neon` | FEAT_SM3 & FEAT_SM4 --- Advanced SIMD SM3/4 instructions
265-
`spe` | | FEAT_SPE --- Statistical Profiling Extension
266-
`ssbs` | | FEAT_SSBS & FEAT_SSBS2 --- Speculative Store Bypass Safe
267-
`sve` | `fp16` | FEAT_SVE --- Scalable Vector Extension
268-
`sve2` | `sve` | FEAT_SVE2 --- Scalable Vector Extension 2
269-
`sve2-aes` | `sve2`, `aes` | FEAT_SVE_AES --- SVE AES instructions
270-
`sve2-sm4` | `sve2`, `sm4` | FEAT_SVE_SM4 --- SVE SM4 instructions
271-
`sve2-sha3` | `sve2`, `sha3` | FEAT_SVE_SHA3 --- SVE SHA3 instructions
272-
`sve2-bitperm` | `sve2` | FEAT_SVE_BitPerm --- SVE Bit Permute
273-
`tme` | | FEAT_TME --- Transactional Memory Extension
274-
`vh` | | FEAT_VHE --- Virtualization Host Extensions
229+
Feature | Implicity Enables | Feature Name
230+
------- | ----------------- | ------------
231+
`aes` | `neon` | FEAT_AES & FEAT_PMULL --- Advanced <abbr title="Single Instruction Multiple Data">SIMD</abbr> AES & PMULL instructions
232+
`bf16` | | FEAT_BF16 --- BFloat16 instructions
233+
`bti` | | FEAT_BTI --- Branch Target Identification
234+
`crc` | | FEAT_CRC --- CRC32 checksum instructions
235+
`dit` | | FEAT_DIT --- Data Independent Timing instructions
236+
`dotprod` | `neon` | FEAT_DotProd --- Advanced SIMD Int8 dot product instructions
237+
`dpb` | | FEAT_DPB --- Data cache clean to point of persistence
238+
`dpb2` | `dpb` | FEAT_DPB2 --- Data cache clean to point of deep persistence
239+
`f32mm` | `sve` | FEAT_F32MM --- SVE single-precision FP matrix multiply instruction
240+
`f64mm` | `sve` | FEAT_F64MM --- SVE double-precision FP matrix multiply instruction
241+
`fcma` | `neon` | FEAT_FCMA --- Floating point complex number support
242+
`fhm` | `fp16` | FEAT_FHM --- Half-precision FP FMLAL instructions
243+
`flagm` | | FEAT_FLAGM --- Conditional flag manipulation
244+
`fp16` | `neon` | FEAT_FP16 --- Half-precision FP data processing
245+
`frintts` | | FEAT_FRINTTS --- Floating-point to int helper instructions
246+
`i8mm` | | FEAT_I8MM --- Int8 Matrix Multiplication
247+
`jsconv` | `neon` | FEAT_JSCVT --- JavaScript conversion instruction
248+
`lor` | | FEAT_LOR --- Limited Ordering Regions extension
249+
`lse` | | FEAT_LSE --- Large System Extensions
250+
`mte` | | FEAT_MTE & FEAT_MTE2 --- Memory Tagging Extension
251+
`neon` | | FEAT_AdvSimd & FEAT_FP --- Floating Point and Advanced SIMD extension
252+
`paca` | | FEAT_PAUTH --- Pointer Authentication (address authentication)
253+
`pacg` | | FEAT_PAUTH --- Pointer Authentication (generic authentication)
254+
`pan` | | FEAT_PAN --- Privileged Access-Never extension
255+
`pmuv3` | | FEAT_PMUv3 --- Performance Monitors extension (v3)
256+
`rand` | | FEAT_RNG --- Random Number Generator
257+
`ras` | | FEAT_RAS & FEAT_RASv1p1 --- Reliability, Availability and Serviceability extension
258+
`rcpc` | | FEAT_LRCPC --- Release consistent Processor Consistent
259+
`rcpc2` | `rcpc` | FEAT_LRCPC2 --- RcPc with immediate offsets
260+
`rdm` | `neon` | FEAT_RDM --- Rounding Double Multiply accumulate
261+
`sb` | | FEAT_SB --- Speculation Barrier
262+
`sha2` | `neon` | FEAT_SHA1 & FEAT_SHA256 --- Advanced SIMD SHA instructions
263+
`sha3` | `sha2` | FEAT_SHA512 & FEAT_SHA3 --- Advanced SIMD SHA instructions
264+
`sm4` | `neon` | FEAT_SM3 & FEAT_SM4 --- Advanced SIMD SM3/4 instructions
265+
`spe` | | FEAT_SPE --- Statistical Profiling Extension
266+
`ssbs` | | FEAT_SSBS & FEAT_SSBS2 --- Speculative Store Bypass Safe
267+
`sve` | `neon` | FEAT_SVE --- Scalable Vector Extension
268+
`sve2` | `sve` | FEAT_SVE2 --- Scalable Vector Extension 2
269+
`sve2-aes` | `sve2` `aes`, | FEAT_SVE_AES & FEAT_SVE_PMULL128 --- SVE AES instructions
270+
`sve2-bitperm` | `sve2` | FEAT_SVE2_BitPerm --- SVE Bit Permute
271+
`sve2-sha3` | `sve2` `sha3`, | FEAT_SVE2_SHA3 --- SVE SHA3 instructions
272+
`sve2-sm4` | `sve2` `sm4`, | FEAT_SVE2_SM4 --- SVE SM4 instructions
273+
`tme` | | FEAT_TME --- Transactional Memory Extension
274+
`vh` | | FEAT_VHE --- Virtualization Host Extensions
275275

276276
r[attributes.codegen.target_feature.riscv]
277277
#### `riscv32` or `riscv64`

0 commit comments

Comments
 (0)