2 #![cfg_attr(stdsimd_strict, deny(warnings))]
3 #![cfg_attr(feature = "cargo-clippy",
4 allow(option_unwrap_used
, use_debug
, print_stdout
))]
6 #[cfg(any(target_arch = "arm", target_arch = "aarch64",
7 target_arch
= "x86", target_arch
= "x86_64",
8 target_arch
= "powerpc64"))]
13 #[cfg(all(target_arch = "arm", target_os = "linux"))]
15 println
!("neon: {}", is_arm_feature_detected
!("neon"));
16 println
!("pmull: {}", is_arm_feature_detected
!("pmull"));
20 #[cfg(all(target_arch = "aarch64", target_os = "linux"))]
22 println
!("fp: {}", is_aarch64_feature_detected
!("fp"));
23 println
!("fp16: {}", is_aarch64_feature_detected
!("fp16"));
24 println
!("neon: {}", is_aarch64_feature_detected
!("neon"));
27 is_aarch64_feature_detected
!("asimd")
29 println
!("sve: {}", is_aarch64_feature_detected
!("sve"));
30 println
!("crc: {}", is_aarch64_feature_detected
!("crc"));
33 is_aarch64_feature_detected
!("crypto")
35 println
!("lse: {}", is_aarch64_feature_detected
!("lse"));
36 println
!("rdm: {}", is_aarch64_feature_detected
!("rdm"));
37 println
!("rcpc: {}", is_aarch64_feature_detected
!("rcpc"));
40 is_aarch64_feature_detected
!("dotprod")
45 #[cfg(all(target_arch = "powerpc64", target_os = "linux"))]
46 fn powerpc64_linux() {
49 is_powerpc64_feature_detected
!("altivec")
51 println
!("vsx: {}", is_powerpc64_feature_detected
!("vsx"));
54 is_powerpc64_feature_detected
!("power8")
59 #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
61 println
!("sse: {:?}", is_x86_feature_detected
!("sse"));
62 println
!("sse2: {:?}", is_x86_feature_detected
!("sse2"));
63 println
!("sse3: {:?}", is_x86_feature_detected
!("sse3"));
64 println
!("ssse3: {:?}", is_x86_feature_detected
!("ssse3"));
67 is_x86_feature_detected
!("sse4.1")
71 is_x86_feature_detected
!("sse4.2")
73 println
!("sse4a: {:?}", is_x86_feature_detected
!("sse4a"));
74 println
!("sha: {:?}", is_x86_feature_detected
!("sha"));
75 println
!("avx: {:?}", is_x86_feature_detected
!("avx"));
76 println
!("avx2: {:?}", is_x86_feature_detected
!("avx2"));
79 is_x86_feature_detected
!("avx512f")
83 is_x86_feature_detected
!("avx512cd")
87 is_x86_feature_detected
!("avx512er")
91 is_x86_feature_detected
!("avx512pf")
95 is_x86_feature_detected
!("avx512bw")
99 is_x86_feature_detected
!("avx512dq")
103 is_x86_feature_detected
!("avx512vl")
107 is_x86_feature_detected
!("avx512ifma")
111 is_x86_feature_detected
!("avx512vbmi")
114 "avx512_vpopcntdq {:?}",
115 is_x86_feature_detected
!("avx512vpopcntdq")
117 println
!("fma: {:?}", is_x86_feature_detected
!("fma"));
118 println
!("abm: {:?}", is_x86_feature_detected
!("abm"));
119 println
!("bmi: {:?}", is_x86_feature_detected
!("bmi1"));
120 println
!("bmi2: {:?}", is_x86_feature_detected
!("bmi2"));
121 println
!("tbm: {:?}", is_x86_feature_detected
!("tbm"));
124 is_x86_feature_detected
!("popcnt")
126 println
!("lzcnt: {:?}", is_x86_feature_detected
!("lzcnt"));
127 println
!("fxsr: {:?}", is_x86_feature_detected
!("fxsr"));
128 println
!("xsave: {:?}", is_x86_feature_detected
!("xsave"));
131 is_x86_feature_detected
!("xsaveopt")
135 is_x86_feature_detected
!("xsaves")
139 is_x86_feature_detected
!("xsavec")