1  /* { dg-do compile { target { ! ia32 } } } */
       2  /* { dg-options "-O -mbmi2" } */
       3  
       4  unsigned long long a;
       5  int b;
       6  
       7  int
       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  }