1 | //! Run-time feature detection on ARM Aarch32. |
2 | |
3 | features! { |
4 | @TARGET: arm; |
5 | @CFG: target_arch = "arm" ; |
6 | @MACRO_NAME: is_arm_feature_detected; |
7 | @MACRO_ATTRS: |
8 | /// Checks if `arm` feature is enabled. |
9 | #[unstable (feature = "stdsimd" , issue = "27731" )] |
10 | @NO_RUNTIME_DETECTION: "v7" ; |
11 | @NO_RUNTIME_DETECTION: "vfp2" ; |
12 | @NO_RUNTIME_DETECTION: "vfp3" ; |
13 | @NO_RUNTIME_DETECTION: "vfp4" ; |
14 | @FEATURE: #[unstable (feature = "stdsimd" , issue = "27731" )] neon: "neon" ; |
15 | /// ARM Advanced SIMD (NEON) - Aarch32 |
16 | @FEATURE: #[unstable (feature = "stdsimd" , issue = "27731" )] pmull: "pmull" ; |
17 | /// Polynomial Multiply |
18 | @FEATURE: #[unstable (feature = "stdsimd" , issue = "27731" )] crc: "crc" ; |
19 | /// CRC32 (Cyclic Redundancy Check) |
20 | @FEATURE: #[unstable (feature = "stdsimd" , issue = "27731" )] aes: "aes" ; |
21 | /// FEAT_AES (AES instructions) |
22 | @FEATURE: #[unstable (feature = "stdsimd" , issue = "27731" )] sha2: "sha2" ; |
23 | /// FEAT_SHA1 & FEAT_SHA256 (SHA1 & SHA2-256 instructions) |
24 | @FEATURE: #[unstable (feature = "stdsimd" , issue = "27731" )] i8mm: "i8mm" ; |
25 | /// FEAT_I8MM (integer matrix multiplication, plus ASIMD support) |
26 | @FEATURE: #[unstable (feature = "stdsimd" , issue = "27731" )] dotprod: "dotprod" ; |
27 | /// FEAT_DotProd (Vector Dot-Product - ASIMDDP) |
28 | } |
29 | |