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)8f (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