1  /* PR target/107627 */
       2  /* { dg-do compile { target ia32 } } */
       3  /* { dg-options "-O2 -masm=att" } */
       4  /* { dg-final { scan-assembler-not "\torl\t" } } */
       5  
       6  static inline unsigned long long
       7  qux (unsigned int x, unsigned int y)
       8  {
       9    return ((unsigned long long) x << 32) | y;
      10  }
      11  
      12  static inline unsigned int
      13  corge (unsigned int x, unsigned int y, unsigned z)
      14  {
      15    return qux (x, y) >> (z % 32);
      16  }
      17  
      18  void
      19  garply (unsigned int *x, const unsigned int *y, unsigned z)
      20  {
      21    x[0] = corge (y[0], y[1], z);
      22  }