1  /* { dg-options "-O2" } */
       2  
       3  /* PR85160 */
       4  
       5  /* Originally, the "x >> 14" are CSEd away (eventually becoming a srawi
       6     instruction), and the two ANDs remain separate instructions because
       7     combine cannot deal with this.
       8  
       9     Now that combine knows how to combine two RTL insns into two, it manages
      10     to make this just the sum of two rlwinm instructions.  */
      11  
      12  int f(int x)
      13  {
      14    return ((x >> 14) & 6) + ((x >> 14) & 4);
      15  }
      16  
      17  /* { dg-final { scan-assembler-not {\msrawi\M} } } */