1//! Run-time feature detection on ARM Aarch32.
2
3features! {
4 @TARGET: arm;
5 @CFG: target_arch = "arm";
6 @MACRO_NAME: is_arm_feature_detected;
7 @MACRO_ATTRS:
8 /// Check for the presence of a CPU feature at runtime.
9 ///
10 /// When the feature is known to be enabled at compile time (e.g. via `-Ctarget-feature`)
11 /// the macro expands to `true`.
12 #[unstable(feature = "stdarch_arm_feature_detection", issue = "111190")]
13 @NO_RUNTIME_DETECTION: "v7";
14 @NO_RUNTIME_DETECTION: "vfp2";
15 @NO_RUNTIME_DETECTION: "vfp3";
16 @NO_RUNTIME_DETECTION: "vfp4";
17 @FEATURE: #[unstable(feature = "stdarch_arm_feature_detection", issue = "111190")] neon: "neon";
18 /// ARM Advanced SIMD (NEON) - Aarch32
19 @FEATURE: #[unstable(feature = "stdarch_arm_feature_detection", issue = "111190")] pmull: "pmull";
20 without cfg check: true;
21 /// Polynomial Multiply
22 @FEATURE: #[unstable(feature = "stdarch_arm_feature_detection", issue = "111190")] crc: "crc";
23 /// CRC32 (Cyclic Redundancy Check)
24 @FEATURE: #[unstable(feature = "stdarch_arm_feature_detection", issue = "111190")] aes: "aes";
25 /// FEAT_AES (AES instructions)
26 @FEATURE: #[unstable(feature = "stdarch_arm_feature_detection", issue = "111190")] sha2: "sha2";
27 /// FEAT_SHA1 & FEAT_SHA256 (SHA1 & SHA2-256 instructions)
28 @FEATURE: #[unstable(feature = "stdarch_arm_feature_detection", issue = "111190")] i8mm: "i8mm";
29 /// FEAT_I8MM (integer matrix multiplication, plus ASIMD support)
30 @FEATURE: #[unstable(feature = "stdarch_arm_feature_detection", issue = "111190")] dotprod: "dotprod";
31 /// FEAT_DotProd (Vector Dot-Product - ASIMDDP)
32}
33