Merge from mainline (167278:168000).
[official-gcc/graphite-test-results.git] / gcc / testsuite / gcc.dg / graphite / interchange-2.c
blob2609a10eb0b5784d9d2174fa2675e7dc5e3facd8
1 /* { dg-require-effective-target size32plus } */
3 /* Formerly known as ltrans-2.c */
5 #define DEBUG 0
6 #if DEBUG
7 #include <stdio.h>
8 #endif
10 double u[1782225];
12 static void __attribute__((noinline))
13 foo (int N, int *res)
15 unsigned int i, j;
16 double sum = 0;
18 /* This loop should be converted to a perfect nest and
19 interchanged. */
20 for (i = 0; i < N; i++)
22 for (j = 0; j < N; j++)
24 sum = sum + u[i + 1335 * j];
25 if (j == N - 1)
26 u[1336 * i] *= 2;
30 *res = sum + N + u[1336 * 2] + u[1336];
33 extern void abort ();
35 int
36 main (void)
38 int i, j, res;
40 for (i = 0; i < 1782225; i++)
41 u[i] = 2;
43 foo (1335, &res);
45 #if DEBUG
46 fprintf (stderr, "res = %d \n", res);
47 #endif
49 if (res != 3565793)
50 abort ();
52 return 0;
55 /* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } } */
56 /* { dg-final { cleanup-tree-dump "graphite" } } */