1 /* PR target/57623 */
2 /* { dg-do assemble { target bmi2 } } */
3 /* { dg-options "-O2 -mbmi2" } */
4 
5 #include <x86intrin.h>
6 
7 unsigned int
f1(unsigned int x,unsigned int * y)8 f1 (unsigned int x, unsigned int *y)
9 {
10   return _bzhi_u32 (x, *y);
11 }
12 
13 unsigned int
f2(unsigned int * x,unsigned int y)14 f2 (unsigned int *x, unsigned int y)
15 {
16   return _bzhi_u32 (*x, y);
17 }
18 
19 #ifdef  __x86_64__
20 unsigned long long
f3(unsigned long long x,unsigned long long * y)21 f3 (unsigned long long x, unsigned long long *y)
22 {
23   return _bzhi_u64 (x, *y);
24 }
25 
26 unsigned long long
f4(unsigned long long * x,unsigned long long y)27 f4 (unsigned long long *x, unsigned long long y)
28 {
29   return _bzhi_u64 (*x, y);
30 }
31 #endif
32