]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.dg/tree-ssa/evrp21.c
Fix profile update in tree_transform_and_unroll_loop
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / evrp21.c
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-evrp" } */
3
4 extern void vrp_keep (void);
5 extern void vrp_kill (void);
6
7 void
8 f2 (int s, int b)
9 {
10 if (s > 4)
11 s = 4;
12 if (s < -16)
13 s = -16;
14 /* s in [-16, 4]. */
15 b = (b & 1) + 1;
16 /* b in range [1, 2]. */
17 b = s << b;
18 /* b in range [-64, 16]. */
19 if (b == -2)
20 vrp_keep ();
21 if (b <= -65)
22 vrp_kill ();
23 if (b >= 17)
24 vrp_kill ();
25 }
26
27 /* { dg-final { scan-tree-dump-times "vrp_keep \\(" 1 "evrp"} } */
28 /* { dg-final { scan-tree-dump-times "vrp_kill \\(" 0 "evrp"} } */