1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-fre1" } */
3 
4 int a, *b;
5 
f()6 void f ()
7 {
8   int d = 0, e = d;
9   while (a++)
10     ;
11   if (e)
12     goto L2;
13 L1:
14   d = e;
15   b = &d;
16 L2:
17   if (d)
18     goto L1;
19 }
20 
21 /* The load of d could be eliminated if we'd value-number the
22    irreducible region in RPO of the reducible result.  Likewise
23    a redundant store could be removed.  */
24 /* { dg-final { scan-tree-dump-times "d = 0;" 1 "fre1" { xfail *-*-* } } } */
25 /* { dg-final { scan-tree-dump-not " = d;" "fre1" { xfail *-*-* } } } */
26