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