(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
fold-eqrotate-1.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -fdump-tree-optimized" } */
       3  
       4  int test1(unsigned int x, unsigned int y)
       5  {
       6  #if __SIZEOF_INT__ == 4
       7    unsigned int r1 = (x << 16) | (x >> 16);
       8    unsigned int r2 = (y << 16) | (y >> 16);
       9    return r1 == r2;
      10  #else
      11    return x == y;
      12  #endif
      13  }
      14  
      15  int test2(unsigned int x)
      16  {
      17  #if __SIZEOF_INT__ == 4
      18    unsigned int r1 = (x << 16) | (x >> 16);
      19    return r1 == 12345;
      20  #else
      21    return x == 12345;
      22  #endif
      23  }
      24  
      25  int test3(unsigned int x)
      26  {
      27  #if __SIZEOF_INT__ == 4
      28    unsigned int r1 = (x << 16) | (x >> 16);
      29    return r1 == 0;
      30  #else
      31    return x == 0;
      32  #endif
      33  }
      34  
      35  int test4(unsigned int x)
      36  {
      37  #if __SIZEOF_INT__ == 4
      38    unsigned int r1 = (x << 16) | (x >> 16);
      39    return r1 == ~0;
      40  #else
      41    return x == ~0;
      42  #endif
      43  }
      44  
      45  /* { dg-final { scan-tree-dump-times "r>>" 0 "optimized" } } */
      46