1 /* { dg-do compile } */
2 /* { dg-options "-Ofast -fdump-tree-vrp1" } */
3 
4 void g (int);
5 void g1 (int);
6 
7 void
f(long a,long b,long c,long d,int x)8 f (long a, long b, long c, long d, int x)
9 {
10   int t;
11   _Bool l1 = 0, l2 = 0;
12   if (x)
13     {
14       g (a);
15       c = a + b;
16       t = a < b;
17       l1 = 1;
18     }
19   else
20     {
21       g1 (b);
22       t = c > d;
23       d = c + b;
24       l2 = 1;
25     }
26 
27   if (t)
28     {
29       if (l1 | l2)
30 	g1 (c);
31     }
32   else
33     {
34       g (d);
35       g1 (a + b);
36     }
37   g (c + d);
38 }
39 
40 /* { dg-final { scan-tree-dump-times "Removing basic block" 1 "vrp1" } } */
41