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