Macro std::is_aarch64_feature_detected [−][src]
macro_rules! is_aarch64_feature_detected { ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($feature_lit) => { ... }; ($bind_feature) => { ... }; ($nort_feature) => { ... }; ($nort_feature) => { ... }; ($nort_feature) => { ... }; ($nort_feature) => { ... }; ($nort_feature) => { ... }; ($nort_feature) => { ... }; ($nort_feature) => { ... }; ($nort_feature) => { ... }; ($t:tt,) => { ... }; ($t:tt) => { ... }; }
Expand description
This macro tests, at runtime, whether an aarch64
feature is enabled on aarch64 platforms.
Currently most features are only supported on linux-based platforms.
This macro takes one argument which is a string literal of the feature being tested for. The feature names are mostly taken from their FEAT_* definitiions in the ARM Architecture Reference Manual.
Supported arguments
"asimd"
or “neon” - FEAT_AdvSIMD"pmull"
- FEAT_PMULL"fp"
- FEAT_FP"fp16"
- FEAT_FP16"sve"
- FEAT_SVE"crc"
- FEAT_CRC"lse"
- FEAT_LSE"lse2"
- FEAT_LSE2"rdm"
- FEAT_RDM"rcpc"
- FEAT_LRCPC"rcpc2"
- FEAT_LRCPC2"dotprod"
- FEAT_DotProd"tme"
- FEAT_TME"fhm"
- FEAT_FHM"dit"
- FEAT_DIT"flagm"
- FEAT_FLAGM"ssbs"
- FEAT_SSBS"sb"
- FEAT_SB"pauth"
- FEAT_PAuth"dpb"
- FEAT_DPB"dpb2"
- FEAT_DPB2"sve2"
- FEAT_SVE2"sve2-aes"
- FEAT_SVE2_AES"sve2-sm4"
- FEAT_SVE2_SM4"sve2-sha3"
- FEAT_SVE2_SHA3"sve2-bitperm"
- FEAT_SVE2_BitPerm"frintts"
- FEAT_FRINTTS"i8mm"
- FEAT_I8MM"f32mm"
- FEAT_F32MM"f64mm"
- FEAT_F64MM"bf16"
- FEAT_BF16"rand"
- FEAT_RNG"bti"
- FEAT_BTI"mte"
- FEAT_MTE"jsconv"
- FEAT_JSCVT"fcma"
- FEAT_FCMA"aes"
- FEAT_AES"sha2"
- FEAT_SHA1 & FEAT_SHA256"sha3"
- FEAT_SHA512 & FEAT_SHA3"sm4"
- FEAT_SM3 & FEAT_SM4