]>
git.proxmox.com Git - rustc.git/blob - library/stdarch/crates/std_detect/tests/x86-specific.rs
2 #![cfg(any(target_arch = "x86", target_arch = "x86_64"))]
6 extern crate std_detect
;
10 println
!("aes: {:?}", is_x86_feature_detected
!("aes"));
11 println
!("pclmulqdq: {:?}", is_x86_feature_detected
!("pclmulqdq"));
12 println
!("rdrand: {:?}", is_x86_feature_detected
!("rdrand"));
13 println
!("rdseed: {:?}", is_x86_feature_detected
!("rdseed"));
14 println
!("tsc: {:?}", is_x86_feature_detected
!("tsc"));
15 println
!("sse: {:?}", is_x86_feature_detected
!("sse"));
16 println
!("sse2: {:?}", is_x86_feature_detected
!("sse2"));
17 println
!("sse3: {:?}", is_x86_feature_detected
!("sse3"));
18 println
!("ssse3: {:?}", is_x86_feature_detected
!("ssse3"));
19 println
!("sse4.1: {:?}", is_x86_feature_detected
!("sse4.1"));
20 println
!("sse4.2: {:?}", is_x86_feature_detected
!("sse4.2"));
21 println
!("sse4a: {:?}", is_x86_feature_detected
!("sse4a"));
22 println
!("sha: {:?}", is_x86_feature_detected
!("sha"));
23 println
!("avx: {:?}", is_x86_feature_detected
!("avx"));
24 println
!("avx2: {:?}", is_x86_feature_detected
!("avx2"));
25 println
!("avx512f {:?}", is_x86_feature_detected
!("avx512f"));
26 println
!("avx512cd {:?}", is_x86_feature_detected
!("avx512cd"));
27 println
!("avx512er {:?}", is_x86_feature_detected
!("avx512er"));
28 println
!("avx512pf {:?}", is_x86_feature_detected
!("avx512pf"));
29 println
!("avx512bw {:?}", is_x86_feature_detected
!("avx512bw"));
30 println
!("avx512dq {:?}", is_x86_feature_detected
!("avx512dq"));
31 println
!("avx512vl {:?}", is_x86_feature_detected
!("avx512vl"));
32 println
!("avx512_ifma {:?}", is_x86_feature_detected
!("avx512ifma"));
33 println
!("avx512vbmi {:?}", is_x86_feature_detected
!("avx512vbmi"));
35 "avx512_vpopcntdq {:?}",
36 is_x86_feature_detected
!("avx512vpopcntdq")
38 println
!("avx512vbmi2 {:?}", is_x86_feature_detected
!("avx512vbmi2"));
39 println
!("avx512gfni {:?}", is_x86_feature_detected
!("avx512gfni"));
40 println
!("avx512vaes {:?}", is_x86_feature_detected
!("avx512vaes"));
42 "avx512vpclmulqdq {:?}",
43 is_x86_feature_detected
!("avx512vpclmulqdq")
45 println
!("avx512vnni {:?}", is_x86_feature_detected
!("avx512vnni"));
48 is_x86_feature_detected
!("avx512bitalg")
50 println
!("avx512bf16 {:?}", is_x86_feature_detected
!("avx512bf16"));
52 "avx512vp2intersect {:?}",
53 is_x86_feature_detected
!("avx512vp2intersect")
55 println
!("fma: {:?}", is_x86_feature_detected
!("fma"));
56 println
!("abm: {:?}", is_x86_feature_detected
!("abm"));
57 println
!("bmi: {:?}", is_x86_feature_detected
!("bmi1"));
58 println
!("bmi2: {:?}", is_x86_feature_detected
!("bmi2"));
59 println
!("tbm: {:?}", is_x86_feature_detected
!("tbm"));
60 println
!("popcnt: {:?}", is_x86_feature_detected
!("popcnt"));
61 println
!("lzcnt: {:?}", is_x86_feature_detected
!("lzcnt"));
62 println
!("fxsr: {:?}", is_x86_feature_detected
!("fxsr"));
63 println
!("xsave: {:?}", is_x86_feature_detected
!("xsave"));
64 println
!("xsaveopt: {:?}", is_x86_feature_detected
!("xsaveopt"));
65 println
!("xsaves: {:?}", is_x86_feature_detected
!("xsaves"));
66 println
!("xsavec: {:?}", is_x86_feature_detected
!("xsavec"));
67 println
!("cmpxchg16b: {:?}", is_x86_feature_detected
!("cmpxchg16b"));
68 println
!("adx: {:?}", is_x86_feature_detected
!("adx"));
69 println
!("rtm: {:?}", is_x86_feature_detected
!("rtm"));
72 #[cfg(feature = "std_detect_env_override")]
74 fn env_override_no_avx() {
75 if let Ok(disable
) = std
::env
::var("RUST_STD_DETECT_UNSTABLE") {
76 let information
= cupid
::master().unwrap();
77 for d
in disable
.split(" ") {
80 if information
.avx() {
81 assert_ne
!(is_x86_feature_detected
!("avx"), information
.avx())
85 if information
.avx2() {
86 assert_ne
!(is_x86_feature_detected
!("avx2"), information
.avx2())
96 fn compare_with_cupid() {
97 let information
= cupid
::master().unwrap();
98 assert_eq
!(is_x86_feature_detected
!("aes"), information
.aesni());
100 is_x86_feature_detected
!("pclmulqdq"),
101 information
.pclmulqdq()
103 assert_eq
!(is_x86_feature_detected
!("rdrand"), information
.rdrand());
104 assert_eq
!(is_x86_feature_detected
!("rdseed"), information
.rdseed());
105 assert_eq
!(is_x86_feature_detected
!("tsc"), information
.tsc());
106 assert_eq
!(is_x86_feature_detected
!("sse"), information
.sse());
107 assert_eq
!(is_x86_feature_detected
!("sse2"), information
.sse2());
108 assert_eq
!(is_x86_feature_detected
!("sse3"), information
.sse3());
109 assert_eq
!(is_x86_feature_detected
!("ssse3"), information
.ssse3());
110 assert_eq
!(is_x86_feature_detected
!("sse4.1"), information
.sse4_1());
111 assert_eq
!(is_x86_feature_detected
!("sse4.2"), information
.sse4_2());
112 assert_eq
!(is_x86_feature_detected
!("sse4a"), information
.sse4a());
113 assert_eq
!(is_x86_feature_detected
!("sha"), information
.sha());
114 assert_eq
!(is_x86_feature_detected
!("avx"), information
.avx());
115 assert_eq
!(is_x86_feature_detected
!("avx2"), information
.avx2());
116 assert_eq
!(is_x86_feature_detected
!("avx512f"), information
.avx512f());
117 assert_eq
!(is_x86_feature_detected
!("avx512cd"), information
.avx512cd());
118 assert_eq
!(is_x86_feature_detected
!("avx512er"), information
.avx512er());
119 assert_eq
!(is_x86_feature_detected
!("avx512pf"), information
.avx512pf());
120 assert_eq
!(is_x86_feature_detected
!("avx512bw"), information
.avx512bw());
121 assert_eq
!(is_x86_feature_detected
!("avx512dq"), information
.avx512dq());
122 assert_eq
!(is_x86_feature_detected
!("avx512vl"), information
.avx512vl());
124 is_x86_feature_detected
!("avx512ifma"),
125 information
.avx512_ifma()
128 is_x86_feature_detected
!("avx512vbmi"),
129 information
.avx512_vbmi()
132 is_x86_feature_detected
!("avx512vpopcntdq"),
133 information
.avx512_vpopcntdq()
135 assert_eq
!(is_x86_feature_detected
!("fma"), information
.fma());
136 assert_eq
!(is_x86_feature_detected
!("bmi1"), information
.bmi1());
137 assert_eq
!(is_x86_feature_detected
!("bmi2"), information
.bmi2());
138 assert_eq
!(is_x86_feature_detected
!("popcnt"), information
.popcnt());
139 assert_eq
!(is_x86_feature_detected
!("abm"), information
.lzcnt());
140 assert_eq
!(is_x86_feature_detected
!("tbm"), information
.tbm());
141 assert_eq
!(is_x86_feature_detected
!("lzcnt"), information
.lzcnt());
142 assert_eq
!(is_x86_feature_detected
!("xsave"), information
.xsave());
143 assert_eq
!(is_x86_feature_detected
!("xsaveopt"), information
.xsaveopt());
145 is_x86_feature_detected
!("xsavec"),
146 information
.xsavec_and_xrstor()
149 is_x86_feature_detected
!("xsaves"),
150 information
.xsaves_xrstors_and_ia32_xss()
153 is_x86_feature_detected
!("cmpxchg16b"),
154 information
.cmpxchg16b(),
156 assert_eq
!(is_x86_feature_detected
!("adx"), information
.adx(),);
157 assert_eq
!(is_x86_feature_detected
!("rtm"), information
.rtm(),);