1 /* { dg-require-effective-target size32plus } */
2 
3 #define DEBUG 0
4 #if DEBUG
5 #include <stdio.h>
6 #endif
7 
8 #define MAX 100
9 
10 extern void abort ();
11 
12 int
main(void)13 main (void)
14 {
15   int i, j;
16   unsigned int sum = 0;
17   unsigned int A[MAX * MAX];
18   unsigned int B[MAX * MAX];
19 
20   /* These loops should be loop blocked.  */
21   for (i = 0; i < MAX; i++)
22     for (j = 0; j < MAX; j++)
23       {
24 	A[i*MAX + j] = j;
25 	B[i*MAX + j] = j;
26       }
27 
28   /* These loops should be loop blocked.  */
29   for (i = 0; i < MAX; i++)
30     for (j = 0; j < MAX; j++)
31       A[i*MAX + j] += B[j*MAX + i];
32 
33   /* These loops should be loop blocked.  */
34   for (i = 0; i < MAX; i++)
35     for (j = 0; j < MAX; j++)
36       sum += A[i*MAX + j];
37 
38 #if DEBUG
39   fprintf (stderr, "sum = %d \n", sum);
40 #endif
41 
42   if (sum != 990000)
43     abort ();
44 
45   return 0;
46 }
47 
48 /* { dg-final { scan-tree-dump "tiled by" "graphite" } } */
49