1/* { dg-do compile } */
2/* { dg-options "-O2 -mtbm" } */
3/* { dg-final { scan-assembler "bextr\[^\\n]*(%|)eax" } } */
4/* { dg-final { scan-assembler "blcfill\[^\\n]*(%|)eax" } } */
5/* { dg-final { scan-assembler "blci\[^\\n]*(%|)eax" } } */
6/* { dg-final { scan-assembler "blcic\[^\\n]*(%|)eax" } } */
7/* { dg-final { scan-assembler "blcmsk\[^\\n]*(%|)eax" } } */
8/* { dg-final { scan-assembler "blcs\[^\\n]*(%|)eax" } } */
9/* { dg-final { scan-assembler "blsfill\[^\\n]*(%|)eax" } } */
10/* { dg-final { scan-assembler "blsic\[^\\n]*(%|)eax" } } */
11/* { dg-final { scan-assembler "t1mskc\[^\\n]*(%|)eax" } } */
12/* { dg-final { scan-assembler "tzmsk\[^\\n]*(%|)eax" } } */
13
14#include <x86intrin.h>
15
16unsigned int
17func_bextri32 (unsigned int X)
18{
19  return __bextri_u32 (X, 0x101);
20}
21
22unsigned int
23func_blcfill32 (unsigned int X)
24{
25  return __blcfill_u32 (X);
26}
27
28unsigned int
29func_blci32 (unsigned int X)
30{
31  return __blci_u32 (X);
32}
33
34unsigned int
35func_blcic32 (unsigned int X)
36{
37  return __blcic_u32 (X);
38}
39
40unsigned int
41func_blcmsk32 (unsigned int X)
42{
43  return __blcmsk_u32 (X);
44}
45
46unsigned int
47func_blcs32 (unsigned int X)
48{
49  return __blcs_u32 (X);
50}
51
52unsigned int
53func_blsfill32 (unsigned int X)
54{
55  return __blsfill_u32 (X);
56}
57
58unsigned int
59func_blsic32 (unsigned int X)
60{
61  return __blsic_u32 (X);
62}
63
64unsigned int
65func_t1mskc32 (unsigned int X)
66{
67  return __t1mskc_u32 (X);
68}
69
70unsigned int
71func_tzmsk32 (unsigned int X)
72{
73  return __tzmsk_u32 (X);
74}
75