1 /* PR target/57623 */
2 /* { dg-do assemble { target bmi } } */
3 /* { dg-options "-O2 -mbmi" } */
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 __bextr_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 __bextr_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 __bextr_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 __bextr_u64 (*x, y);
30 }
31 #endif
32