| /* PR rtl-optimization/39794 */ | |
| /* { dg-do run } */ | |
| /* { dg-options "-O2 -funroll-loops" } */ | |
| extern void abort (); | |
| void | |
| foo (int *a, int n) | |
| { | |
| int i; | |
| for (i = 0; i < n; i++) | |
| { | |
| a[i] *= 2; | |
| a[i + 1] = a[i - 1] + a[i - 2]; | |
| } | |
| } | |
| int a[16]; | |
| int ref[16] = { 0, 1, 4, 2, 10, 12, 24, 44, | |
| 72, 136, 232, 416, 736, 1296, 2304, 2032 }; | |
| int | |
| main () | |
| { | |
| int i; | |
| for (i = 0; i < 16; i++) | |
| a[i] = i; | |
| foo (a + 2, 16 - 3); | |
| for (i = 0; i < 16; i++) | |
| if (ref[i] != a[i]) | |
| abort (); | |
| return 0; | |
| } |