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
10extern void abort ();
11
12int
13main (void)
14{
15  int i, j;
16  int sum = 0;
17  int A[MAX * MAX];
18  int B[MAX * MAX];
19
20  for (i = 0; i < MAX; i++)
21    for (j = 0; j < MAX; j++)
22      {
23	A[i*MAX + j] = j;
24	B[i*MAX + j] = j;
25      }
26
27  for (i = 0; i < MAX; i++)
28    for (j = 0; j < MAX; j++)
29      A[i*MAX + j] += B[j*MAX + i];
30
31  for(i = 0; i < MAX; i++)
32    for(j = 0; j < MAX; j++)
33      sum += A[i*MAX + j];
34
35#if DEBUG
36  fprintf (stderr, "sum = %d \n", sum);
37#endif
38
39  if (sum != 990000)
40    abort ();
41
42  return 0;
43}
44
45/* { dg-final { scan-tree-dump-times "will be loop blocked" 2 "graphite" { xfail *-*-* } } } */
46/* { dg-final { cleanup-tree-dump "graphite" } } */
47