OSDN Git Service

2011-04-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / pr44838.c
1 /* PR rtl-optimization/44838 */
2 /* { dg-do run } */
3 /* { dg-options "-O2 -funroll-loops" } */
4
5 extern void abort ();
6
7 void
8 foo (int *a, int n)
9 {
10   int *lasta = a + n;
11   for (; a != lasta; a++)
12     {
13       *a *= 2;
14       a[1] = a[-1] + a[-2];
15     }
16 }
17
18 int a[16];
19 int ref[16] = { 0, 1, 4, 2, 10, 12, 24, 44,
20                 72, 136, 232, 416, 736, 1296, 2304, 2032 };
21
22 int
23 main ()
24 {
25   int i;
26   for (i = 0; i < 16; i++)
27     a[i] = i;
28   foo (a + 2, 16 - 3);
29   for (i = 0; i < 16; i++)
30     if (ref[i] != a[i])
31       abort ();
32   return 0;
33 }