1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fno-ipa-icf -mbmi " } */
3 /* { dg-final { scan-assembler-times "andn\[^\\n]*eax" 2 } } */
4 /* { dg-final { scan-assembler-times "bextr\[ \\t]+\[^\\n]*eax" 2 } } */
5 /* { dg-final { scan-assembler-times "blsi\[^\\n]*eax" 2 } } */
6 /* { dg-final { scan-assembler-times "blsmsk\[^\\n]*eax" 2 } } */
7 /* { dg-final { scan-assembler-times "blsr\[^\\n]*eax" 2 } } */
8 /* { dg-final { scan-assembler-times "tzcntl\[^\\n]*eax" 2 } } */
9
10 #include <x86intrin.h>
11
12 unsigned int
13 func_andn32 (unsigned int X, unsigned int Y)
14 {
15 return __andn_u32(X, Y);
16 }
17
18 unsigned int
19 func_andn32_2 (unsigned int X, unsigned int Y)
20 {
21 return _andn_u32(X, Y);
22 }
23
24 unsigned int
25 func_bextr32 (unsigned int X, unsigned int Y)
26 {
27 return __bextr_u32(X, Y);
28 }
29
30 unsigned int
31 func_bextr32_3args (unsigned int X,
32 unsigned int Y,
33 unsigned int Z)
34 {
35 return _bextr_u32(X, Y, Z);
36 }
37
38 unsigned int
39 func_blsi32 (unsigned int X)
40 {
41 return __blsi_u32(X);
42 }
43
44 unsigned int
45 func_blsi32_2 (unsigned int X)
46 {
47 return _blsi_u32(X);
48 }
49
50 unsigned int
51 func_blsmsk32 (unsigned int X)
52 {
53 return __blsmsk_u32(X);
54 }
55
56 unsigned int
57 func_blsmsk32_2 (unsigned int X)
58 {
59 return _blsmsk_u32(X);
60 }
61
62 unsigned int
63 func_blsr32 (unsigned int X)
64 {
65 return __blsr_u32(X);
66 }
67
68 unsigned int
69 func_blsr32_2 (unsigned int X)
70 {
71 return _blsr_u32(X);
72 }
73
74 unsigned int
75 func_tzcnt32 (unsigned int X)
76 {
77 return __tzcnt_u32(X);
78 }
79
80 unsigned int
81 func_tzcnt32_2 (unsigned int X)
82 {
83 return _tzcnt_u32(X);
84 }