]> git.lizzy.rs Git - rust.git/blob - src/libstd/tests/run-time-detect.rs
Auto merge of #68037 - msizanoen1:riscv-ci, r=alexcrichton
[rust.git] / src / libstd / tests / run-time-detect.rs
1 //! These tests just check that the macros are available in libstd.
2
3 #![cfg_attr(
4     any(
5         all(target_arch = "arm", any(target_os = "linux", target_os = "android")),
6         all(target_arch = "aarch64", any(target_os = "linux", target_os = "android")),
7         all(target_arch = "powerpc", target_os = "linux"),
8         all(target_arch = "powerpc64", target_os = "linux"),
9     ),
10     feature(stdsimd)
11 )]
12
13 #[test]
14 #[cfg(all(target_arch = "arm", any(target_os = "linux", target_os = "android")))]
15 fn arm_linux() {
16     println!("neon: {}", is_arm_feature_detected!("neon"));
17     println!("pmull: {}", is_arm_feature_detected!("pmull"));
18 }
19
20 #[test]
21 #[cfg(all(target_arch = "aarch64", any(target_os = "linux", target_os = "android")))]
22 fn aarch64_linux() {
23     println!("fp: {}", is_aarch64_feature_detected!("fp"));
24     println!("fp16: {}", is_aarch64_feature_detected!("fp16"));
25     println!("neon: {}", is_aarch64_feature_detected!("neon"));
26     println!("asimd: {}", is_aarch64_feature_detected!("asimd"));
27     println!("sve: {}", is_aarch64_feature_detected!("sve"));
28     println!("crc: {}", is_aarch64_feature_detected!("crc"));
29     println!("crypto: {}", is_aarch64_feature_detected!("crypto"));
30     println!("lse: {}", is_aarch64_feature_detected!("lse"));
31     println!("rdm: {}", is_aarch64_feature_detected!("rdm"));
32     println!("rcpc: {}", is_aarch64_feature_detected!("rcpc"));
33     println!("dotprod: {}", is_aarch64_feature_detected!("dotprod"));
34 }
35
36 #[test]
37 #[cfg(all(target_arch = "powerpc", target_os = "linux"))]
38 fn powerpc_linux() {
39     println!("altivec: {}", is_powerpc_feature_detected!("altivec"));
40     println!("vsx: {}", is_powerpc_feature_detected!("vsx"));
41     println!("power8: {}", is_powerpc_feature_detected!("power8"));
42 }
43
44 #[test]
45 #[cfg(all(target_arch = "powerpc64", target_os = "linux"))]
46 fn powerpc64_linux() {
47     println!("altivec: {}", is_powerpc64_feature_detected!("altivec"));
48     println!("vsx: {}", is_powerpc64_feature_detected!("vsx"));
49     println!("power8: {}", is_powerpc64_feature_detected!("power8"));
50 }
51
52 #[test]
53 #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
54 fn x86_all() {
55     println!("aes: {:?}", is_x86_feature_detected!("aes"));
56     println!("pcmulqdq: {:?}", is_x86_feature_detected!("pclmulqdq"));
57     println!("rdrand: {:?}", is_x86_feature_detected!("rdrand"));
58     println!("rdseed: {:?}", is_x86_feature_detected!("rdseed"));
59     println!("tsc: {:?}", is_x86_feature_detected!("tsc"));
60     println!("mmx: {:?}", is_x86_feature_detected!("mmx"));
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"));
65     println!("sse4.1: {:?}", is_x86_feature_detected!("sse4.1"));
66     println!("sse4.2: {:?}", is_x86_feature_detected!("sse4.2"));
67     println!("sse4a: {:?}", is_x86_feature_detected!("sse4a"));
68     println!("sha: {:?}", is_x86_feature_detected!("sha"));
69     println!("avx: {:?}", is_x86_feature_detected!("avx"));
70     println!("avx2: {:?}", is_x86_feature_detected!("avx2"));
71     println!("avx512f {:?}", is_x86_feature_detected!("avx512f"));
72     println!("avx512cd {:?}", is_x86_feature_detected!("avx512cd"));
73     println!("avx512er {:?}", is_x86_feature_detected!("avx512er"));
74     println!("avx512pf {:?}", is_x86_feature_detected!("avx512pf"));
75     println!("avx512bw {:?}", is_x86_feature_detected!("avx512bw"));
76     println!("avx512dq {:?}", is_x86_feature_detected!("avx512dq"));
77     println!("avx512vl {:?}", is_x86_feature_detected!("avx512vl"));
78     println!("avx512_ifma {:?}", is_x86_feature_detected!("avx512ifma"));
79     println!("avx512_vbmi {:?}", is_x86_feature_detected!("avx512vbmi"));
80     println!("avx512_vpopcntdq {:?}", is_x86_feature_detected!("avx512vpopcntdq"));
81     println!("fma: {:?}", is_x86_feature_detected!("fma"));
82     println!("bmi1: {:?}", is_x86_feature_detected!("bmi1"));
83     println!("bmi2: {:?}", is_x86_feature_detected!("bmi2"));
84     println!("abm: {:?}", is_x86_feature_detected!("abm"));
85     println!("lzcnt: {:?}", is_x86_feature_detected!("lzcnt"));
86     println!("tbm: {:?}", is_x86_feature_detected!("tbm"));
87     println!("popcnt: {:?}", is_x86_feature_detected!("popcnt"));
88     println!("fxsr: {:?}", is_x86_feature_detected!("fxsr"));
89     println!("xsave: {:?}", is_x86_feature_detected!("xsave"));
90     println!("xsaveopt: {:?}", is_x86_feature_detected!("xsaveopt"));
91     println!("xsaves: {:?}", is_x86_feature_detected!("xsaves"));
92     println!("xsavec: {:?}", is_x86_feature_detected!("xsavec"));
93 }