1  /* PR tree-optimization/96685 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -fdump-tree-optimized" } */
       4  /* { dg-final { scan-tree-dump-times "return 1;" 4 "optimized" } } */
       5  
       6  int
       7  f1 (unsigned x, unsigned y)
       8  {
       9    unsigned int r1 = (x - y);
      10    r1 = ~r1;
      11    unsigned int r2 = (y - x);
      12    r2 = r2 - 1;
      13    return r1 == r2;
      14  }
      15  
      16  int
      17  f2 (unsigned x, unsigned y)
      18  {
      19    unsigned int r1 = (x - 23);
      20    r1 = ~r1;
      21    unsigned int r2 = (23 - x);
      22    r2 = r2 - 1;
      23    return r1 == r2;
      24  }
      25  
      26  int
      27  f3 (int x, int y)
      28  {
      29    int r1 = (x - 23);
      30    r1 = ~r1;
      31    int r2 = (23 - x);
      32    --r2;
      33    return r1 == r2;
      34  }
      35  
      36  int
      37  f4 (int x, int y)
      38  {
      39    int r1 = (x - 23);
      40    r1 = ~r1;
      41    int r2 = (22 - x);
      42    return r1 == r2;
      43  }