111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-O2 -funroll-loops -fdump-tree-cunroll-details" } */
|
|
3
|
|
4 __attribute__ ((pure))
|
|
5 int bla(int);
|
|
6
|
|
7 int foo(void)
|
|
8 {
|
|
9 int i;
|
|
10 int sum = 0;
|
|
11
|
|
12 /* This loop used to appear to be too large for unrolling. */
|
|
13 for (i = 0; i < 4; i++)
|
|
14 {
|
|
15 sum += bla (i);
|
|
16 sum += bla (2*i);
|
|
17 sum += bla (3*i);
|
|
18 sum += bla (4*i);
|
|
19 sum += bla (5*i);
|
|
20 sum += bla (6*i);
|
|
21 sum += bla (7*i);
|
|
22 sum += bla (8*i);
|
|
23 }
|
|
24 return sum;
|
|
25 }
|
|
26
|
131
|
27 /* { dg-final { scan-tree-dump-times "loop with 3 iterations completely unrolled" 1 "cunroll" } } */
|