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
      13  main (void)
      14  {
      15    int i, j;
      16    int sum = 0;
      17    int A[MAX * MAX];
      18    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" } } */