1  /* PR tree-optimization/96669 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -fdump-tree-original" } */
       4  /* { dg-final { scan-tree-dump "a == 0" "original" } } */
       5  /* { dg-final { scan-tree-dump "return 1;" "original" } } */
       6  /* { dg-final { scan-tree-dump "return c == 3;" "original" } } */
       7  /* { dg-final { scan-tree-dump "return d != 1;" "original" } } */
       8  /* { dg-final { scan-tree-dump "return e != 0;" "original" } } */
       9  /* { dg-final { scan-tree-dump "return f == 1;" "original" } } */
      10  /* { dg-final { scan-tree-dump "return 0;" "original" } } */
      11  /* { dg-final { scan-tree-dump "return h != 1;" "original" } } */
      12  
      13  int
      14  f1 (int a)
      15  {
      16    return ((1 << a) & 1) != 0;
      17  }
      18  
      19  int
      20  f2 (int b)
      21  {
      22    return ((2 << b) & 1) == 0;
      23  }
      24  
      25  int
      26  f3 (int c)
      27  {
      28    return ((2 << c) & 16) != 0;
      29  }
      30  
      31  int
      32  f4 (int d)
      33  {
      34    return ((16 << d) & 32) == 0;
      35  }
      36  
      37  int
      38  f5 (int e)
      39  {
      40    return ((1 >> e) & 1) == 0;
      41  }
      42  
      43  int
      44  f6 (int f)
      45  {
      46    return ((2 >> f) & 1) != 0;
      47  }
      48  
      49  int
      50  f7 (int g)
      51  {
      52    return ((1 >> g) & 2) != 0;
      53  }
      54  
      55  int
      56  f8 (int h)
      57  {
      58    return ((32 >> h) & 16) == 0;
      59  }