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