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;
foo(int a,int b)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"} } */
23