2 #![allow(clippy::option_unwrap_used, clippy::use_debug, clippy::print_stdout)]
5 target_arch
= "aarch64",
7 target_arch
= "x86_64",
8 target_arch
= "powerpc",
9 target_arch
= "powerpc64"
13 extern crate std_detect
;
17 for (f
, e
) in std_detect
::detect
::features() {
18 println
!("{}: {}", f
, e
);
23 #[cfg(all(target_arch = "arm", any(target_os = "linux", target_os = "android")))]
25 println
!("neon: {}", is_arm_feature_detected
!("neon"));
26 println
!("pmull: {}", is_arm_feature_detected
!("pmull"));
27 println
!("crc: {}", is_arm_feature_detected
!("crc"));
28 println
!("crypto: {}", is_arm_feature_detected
!("crypto"));
33 target_arch
= "aarch64",
34 any(target_os
= "linux", target_os
= "android")
37 println
!("fp: {}", is_aarch64_feature_detected
!("fp"));
38 println
!("fp16: {}", is_aarch64_feature_detected
!("fp16"));
39 println
!("neon: {}", is_aarch64_feature_detected
!("neon"));
40 println
!("asimd: {}", is_aarch64_feature_detected
!("asimd"));
41 println
!("sve: {}", is_aarch64_feature_detected
!("sve"));
42 println
!("crc: {}", is_aarch64_feature_detected
!("crc"));
43 println
!("crypto: {}", is_aarch64_feature_detected
!("crypto"));
44 println
!("lse: {}", is_aarch64_feature_detected
!("lse"));
45 println
!("rdm: {}", is_aarch64_feature_detected
!("rdm"));
46 println
!("rcpc: {}", is_aarch64_feature_detected
!("rcpc"));
47 println
!("dotprod: {}", is_aarch64_feature_detected
!("dotprod"));
48 println
!("tme: {}", is_aarch64_feature_detected
!("tme"));
52 #[cfg(all(target_arch = "powerpc", target_os = "linux"))]
54 println
!("altivec: {}", is_powerpc_feature_detected
!("altivec"));
55 println
!("vsx: {}", is_powerpc_feature_detected
!("vsx"));
56 println
!("power8: {}", is_powerpc_feature_detected
!("power8"));
60 #[cfg(all(target_arch = "powerpc64", target_os = "linux"))]
61 fn powerpc64_linux() {
62 println
!("altivec: {}", is_powerpc64_feature_detected
!("altivec"));
63 println
!("vsx: {}", is_powerpc64_feature_detected
!("vsx"));
64 println
!("power8: {}", is_powerpc64_feature_detected
!("power8"));
68 #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
70 println
!("aes: {:?}", is_x86_feature_detected
!("aes"));
71 println
!("pcmulqdq: {:?}", is_x86_feature_detected
!("pclmulqdq"));
72 println
!("rdrand: {:?}", is_x86_feature_detected
!("rdrand"));
73 println
!("rdseed: {:?}", is_x86_feature_detected
!("rdseed"));
74 println
!("tsc: {:?}", is_x86_feature_detected
!("tsc"));
75 println
!("mmx: {:?}", is_x86_feature_detected
!("mmx"));
76 println
!("sse: {:?}", is_x86_feature_detected
!("sse"));
77 println
!("sse2: {:?}", is_x86_feature_detected
!("sse2"));
78 println
!("sse3: {:?}", is_x86_feature_detected
!("sse3"));
79 println
!("ssse3: {:?}", is_x86_feature_detected
!("ssse3"));
80 println
!("sse4.1: {:?}", is_x86_feature_detected
!("sse4.1"));
81 println
!("sse4.2: {:?}", is_x86_feature_detected
!("sse4.2"));
82 println
!("sse4a: {:?}", is_x86_feature_detected
!("sse4a"));
83 println
!("sha: {:?}", is_x86_feature_detected
!("sha"));
84 println
!("avx: {:?}", is_x86_feature_detected
!("avx"));
85 println
!("avx2: {:?}", is_x86_feature_detected
!("avx2"));
86 println
!("avx512f: {:?}", is_x86_feature_detected
!("avx512f"));
87 println
!("avx512cd: {:?}", is_x86_feature_detected
!("avx512cd"));
88 println
!("avx512er: {:?}", is_x86_feature_detected
!("avx512er"));
89 println
!("avx512pf: {:?}", is_x86_feature_detected
!("avx512pf"));
90 println
!("avx512bw: {:?}", is_x86_feature_detected
!("avx512bw"));
91 println
!("avx512dq: {:?}", is_x86_feature_detected
!("avx512dq"));
92 println
!("avx512vl: {:?}", is_x86_feature_detected
!("avx512vl"));
93 println
!("avx512ifma: {:?}", is_x86_feature_detected
!("avx512ifma"));
94 println
!("avx512vbmi: {:?}", is_x86_feature_detected
!("avx512vbmi"));
96 "avx512vpopcntdq: {:?}",
97 is_x86_feature_detected
!("avx512vpopcntdq")
99 println
!("avx512vbmi2 {:?}", is_x86_feature_detected
!("avx512vbmi2"));
100 println
!("avx512gfni {:?}", is_x86_feature_detected
!("avx512gfni"));
101 println
!("avx512vaes {:?}", is_x86_feature_detected
!("avx512vaes"));
103 "avx512vpclmulqdq {:?}",
104 is_x86_feature_detected
!("avx512vpclmulqdq")
106 println
!("avx512vnni {:?}", is_x86_feature_detected
!("avx512vnni"));
109 is_x86_feature_detected
!("avx512bitalg")
111 println
!("avx512bf16 {:?}", is_x86_feature_detected
!("avx512bf16"));
113 "avx512vp2intersect {:?}",
114 is_x86_feature_detected
!("avx512vp2intersect")
116 println
!("f16c: {:?}", is_x86_feature_detected
!("f16c"));
117 println
!("fma: {:?}", is_x86_feature_detected
!("fma"));
118 println
!("bmi1: {:?}", is_x86_feature_detected
!("bmi1"));
119 println
!("bmi2: {:?}", is_x86_feature_detected
!("bmi2"));
120 println
!("abm: {:?}", is_x86_feature_detected
!("abm"));
121 println
!("lzcnt: {:?}", is_x86_feature_detected
!("lzcnt"));
122 println
!("tbm: {:?}", is_x86_feature_detected
!("tbm"));
123 println
!("popcnt: {:?}", is_x86_feature_detected
!("popcnt"));
124 println
!("fxsr: {:?}", is_x86_feature_detected
!("fxsr"));
125 println
!("xsave: {:?}", is_x86_feature_detected
!("xsave"));
126 println
!("xsaveopt: {:?}", is_x86_feature_detected
!("xsaveopt"));
127 println
!("xsaves: {:?}", is_x86_feature_detected
!("xsaves"));
128 println
!("xsavec: {:?}", is_x86_feature_detected
!("xsavec"));