Fix type in the changelog entry,
[official-gcc.git] / gcc / testsuite / gcc.dg / predict-3.c
blobe1be7cc3c9540b5ef7ce951260a3ffcb34300135
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-profile_estimate" } */
4 extern int global;
6 int bar(int);
8 void foo (int bound)
10 int i, ret = 0;
11 for (i = 0; i <= bound; i++)
13 if (i < bound - 2)
14 global += bar (i);
15 /* The following test is redundant with the loop bound check in the
16 for stmt and thus eliminated by FRE which makes the controlled
17 stmt always executed and thus equivalent to 100%. Thus the
18 heuristic only applies three times. */
19 if (i <= bound)
20 global += bar (i);
21 if (i + 1 < bound)
22 global += bar (i);
23 if (i != bound)
24 global += bar (i);
28 /* { dg-final { scan-tree-dump-times "loop iv compare heuristics: 100.0%" 3 "profile_estimate"} } */