1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-rtl-loop2_unroll-details -funroll-loops" } */
3 /* { dg-require-effective-target int32plus } */
4
5 extern int *a;
6
t(void)7 int t(void)
8 {
9 int i;
10 for (i=0;i<1000000;i++)
11 a[i]++;
12 }
13 /* { dg-final { scan-rtl-dump "Unrolled loop" "loop2_unroll" } } */
14 /* { dg-final { scan-rtl-dump "number of iterations: .const_int 999999" "loop2_unroll" } } */
15 /* { dg-final { scan-rtl-dump "upper bound: 999999" "loop2_unroll" } } */
16 /* { dg-final { scan-rtl-dump "realistic bound: 999999" "loop2_unroll" } } */
17 /* { dg-final { scan-rtl-dump "considering unrolling loop with constant number of iterations" "loop2_unroll" } } */
18 /* { dg-final { scan-rtl-dump-not "Invalid sum" "loop2_unroll" } } */
19