1  /* { dg-do compile } */ 
       2  /* { dg-options "-O2 -fno-code-hoisting -fno-tree-cselim -fdump-tree-pre-stats" } */
       3  int g2;
       4  struct A {
       5      int a; int b;
       6  }g1;
       7  int foo(int a, int b)
       8  {
       9    if (a > 0)
      10      {
      11        g1.a = a+ b;
      12      }
      13    else
      14      g1.a = b;
      15  
      16    g2 = a+b;
      17  
      18    return g1.a;
      19  }
      20  /* We will eliminate the g1.a from the return statement as fully redundant,
      21     and remove one calculation of a + b. */
      22  /* { dg-final { scan-tree-dump-times "Eliminated: 2" 1 "pre"} } */