1  /* { dg-options "-O2" } */
       2  /* { dg-do compile } */
       3  
       4  unsigned f(unsigned x, unsigned b)
       5  {
       6    return ((x & 0xff00ff00U) >> 8) | b;
       7  }
       8  
       9  unsigned f0(unsigned x, unsigned b)
      10  {
      11    return ((x & 0xff00ff00U) >> 8) ^ b;
      12  }
      13  unsigned f1(unsigned x, unsigned b)
      14  {
      15    return ((x & 0xff00ff00U) >> 8) + b;
      16  }
      17  
      18  /* { dg-final { scan-assembler-times "lsr\\tw\[0-9\]+" 0 } } */
      19  /* { dg-final { scan-assembler-times "lsr 8" 3 } } */
      20  /* { dg-final { scan-assembler-times "eor\\tw\[0-9\]+" 1 } } */
      21  /* { dg-final { scan-assembler-times "add\\tw\[0-9\]+" 1 } } */
      22  /* { dg-final { scan-assembler-times "orr\\tw\[0-9\]+" 1 } } */