]> git.proxmox.com Git - rustc.git/blob - src/stdarch/crates/std_detect/tests/cpu-detection.rs
New upstream version 1.42.0+dfsg0+pve1
[rustc.git] / src / stdarch / crates / std_detect / tests / cpu-detection.rs
1 #![feature(stdsimd)]
2 #![allow(clippy::option_unwrap_used, clippy::use_debug, clippy::print_stdout)]
3
4 #[cfg(any(
5 target_arch = "arm",
6 target_arch = "aarch64",
7 target_arch = "x86",
8 target_arch = "x86_64",
9 target_arch = "powerpc",
10 target_arch = "powerpc64"
11 ))]
12 #[macro_use]
13 extern crate std_detect;
14
15 #[test]
16 #[cfg(all(target_arch = "arm", any(target_os = "linux", target_os = "android")))]
17 fn arm_linux() {
18 println!("neon: {}", is_arm_feature_detected!("neon"));
19 println!("pmull: {}", is_arm_feature_detected!("pmull"));
20 }
21
22 #[test]
23 #[cfg(all(
24 target_arch = "aarch64",
25 any(target_os = "linux", target_os = "android")
26 ))]
27 fn aarch64_linux() {
28 println!("fp: {}", is_aarch64_feature_detected!("fp"));
29 println!("fp16: {}", is_aarch64_feature_detected!("fp16"));
30 println!("neon: {}", is_aarch64_feature_detected!("neon"));
31 println!("asimd: {}", is_aarch64_feature_detected!("asimd"));
32 println!("sve: {}", is_aarch64_feature_detected!("sve"));
33 println!("crc: {}", is_aarch64_feature_detected!("crc"));
34 println!("crypto: {}", 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"));
38 println!("dotprod: {}", is_aarch64_feature_detected!("dotprod"));
39 }
40
41 #[test]
42 #[cfg(all(target_arch = "powerpc", target_os = "linux"))]
43 fn powerpc_linux() {
44 println!("altivec: {}", is_powerpc_feature_detected!("altivec"));
45 println!("vsx: {}", is_powerpc_feature_detected!("vsx"));
46 println!("power8: {}", is_powerpc_feature_detected!("power8"));
47 }
48
49 #[test]
50 #[cfg(all(target_arch = "powerpc64", target_os = "linux"))]
51 fn powerpc64_linux() {
52 println!("altivec: {}", is_powerpc64_feature_detected!("altivec"));
53 println!("vsx: {}", is_powerpc64_feature_detected!("vsx"));
54 println!("power8: {}", is_powerpc64_feature_detected!("power8"));
55 }
56
57 #[test]
58 #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
59 fn x86_all() {
60 println!("aes: {:?}", is_x86_feature_detected!("aes"));
61 println!("pcmulqdq: {:?}", is_x86_feature_detected!("pclmulqdq"));
62 println!("rdrand: {:?}", is_x86_feature_detected!("rdrand"));
63 println!("rdseed: {:?}", is_x86_feature_detected!("rdseed"));
64 println!("tsc: {:?}", is_x86_feature_detected!("tsc"));
65 println!("mmx: {:?}", is_x86_feature_detected!("mmx"));
66 println!("sse: {:?}", is_x86_feature_detected!("sse"));
67 println!("sse2: {:?}", is_x86_feature_detected!("sse2"));
68 println!("sse3: {:?}", is_x86_feature_detected!("sse3"));
69 println!("ssse3: {:?}", is_x86_feature_detected!("ssse3"));
70 println!("sse4.1: {:?}", is_x86_feature_detected!("sse4.1"));
71 println!("sse4.2: {:?}", is_x86_feature_detected!("sse4.2"));
72 println!("sse4a: {:?}", is_x86_feature_detected!("sse4a"));
73 println!("sha: {:?}", is_x86_feature_detected!("sha"));
74 println!("avx: {:?}", is_x86_feature_detected!("avx"));
75 println!("avx2: {:?}", is_x86_feature_detected!("avx2"));
76 println!("avx512f {:?}", is_x86_feature_detected!("avx512f"));
77 println!("avx512cd {:?}", is_x86_feature_detected!("avx512cd"));
78 println!("avx512er {:?}", is_x86_feature_detected!("avx512er"));
79 println!("avx512pf {:?}", is_x86_feature_detected!("avx512pf"));
80 println!("avx512bw {:?}", is_x86_feature_detected!("avx512bw"));
81 println!("avx512dq {:?}", is_x86_feature_detected!("avx512dq"));
82 println!("avx512vl {:?}", is_x86_feature_detected!("avx512vl"));
83 println!("avx512_ifma {:?}", is_x86_feature_detected!("avx512ifma"));
84 println!("avx512_vbmi {:?}", is_x86_feature_detected!("avx512vbmi"));
85 println!(
86 "avx512_vpopcntdq {:?}",
87 is_x86_feature_detected!("avx512vpopcntdq")
88 );
89 println!("f16c: {:?}", is_x86_feature_detected!("f16c"));
90 println!("fma: {:?}", is_x86_feature_detected!("fma"));
91 println!("bmi1: {:?}", is_x86_feature_detected!("bmi1"));
92 println!("bmi2: {:?}", is_x86_feature_detected!("bmi2"));
93 println!("abm: {:?}", is_x86_feature_detected!("abm"));
94 println!("lzcnt: {:?}", is_x86_feature_detected!("lzcnt"));
95 println!("tbm: {:?}", is_x86_feature_detected!("tbm"));
96 println!("popcnt: {:?}", is_x86_feature_detected!("popcnt"));
97 println!("fxsr: {:?}", is_x86_feature_detected!("fxsr"));
98 println!("xsave: {:?}", is_x86_feature_detected!("xsave"));
99 println!("xsaveopt: {:?}", is_x86_feature_detected!("xsaveopt"));
100 println!("xsaves: {:?}", is_x86_feature_detected!("xsaves"));
101 println!("xsavec: {:?}", is_x86_feature_detected!("xsavec"));
102 }