Merge from mainline (167278:168000).
[official-gcc/graphite-test-results.git] / gcc / testsuite / gcc.dg / graphite / block-4.c
blobac22ec3aff29881643c859f05580ea9b016f17e0
1 /* { dg-require-effective-target size32plus } */
3 #define DEBUG 0
4 #if DEBUG
5 #include <stdio.h>
6 #endif
8 #define N 24
9 #define M 1000
11 int A[M][M], B[M][M], C[M][M];
13 static int __attribute__((noinline))
14 foo (void)
16 int i, j, k;
18 for (i = 0; i < 24; i++)
19 for (j = 0; j < 24; j++)
20 for (k = 0; k < 24; k++)
21 A[i][j] = B[i][k] * C[k][j];
23 for (i = 0; i < M; i++)
24 for (j = 0; j < M; j++)
25 for (k = 0; k < M; k++)
26 A[i][j] = B[i][k] * C[k][j];
28 return A[0][0] + A[M-1][M-1];
31 extern void abort ();
33 int
34 main (void)
36 int i, j, res;
38 for (i = 0; i < M; i++)
39 for (j = 0; j < M; j++)
41 B[i][j] = i;
42 C[i][j] = j;
45 res = foo ();
47 #if DEBUG
48 fprintf (stderr, "res = %d \n", res);
49 #endif
51 if (res != 998001)
52 abort ();
54 return 0;
57 /* { dg-final { scan-tree-dump-times "will be loop blocked" 1 "graphite" { xfail *-*-* } } } */
58 /* { dg-final { cleanup-tree-dump "graphite" } } */