1 /* { dg-do compile { target { ! ia32 } } } */
2 /* { dg-options "-O -mbmi2" } */
3 
4 unsigned long long a;
5 int b;
6 
7 int
fn1(int p1)8 fn1(int p1)
9 {
10   p1 &= 1;
11   p1 &= (short)~p1;
12   b = a;
13   a = a << p1 | a >> (64 - p1);
14   return p1 + 1 + a;
15 }
16