(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
graphite/
uns-interchange-15.c
       1  /* { dg-require-effective-target size32plus } */
       2  
       3  #define DEBUG 0
       4  #if DEBUG
       5  #include <stdio.h>
       6  #endif
       7  
       8  #define NMAX 2000
       9  
      10  static unsigned int x[NMAX], a[NMAX][NMAX];
      11  
      12  static unsigned int __attribute__((noinline))
      13  mvt (long N)
      14  {
      15    int i,j;
      16  
      17    /* These two loops should be interchanged.  */
      18    for (i = 0; i < N; i++)
      19      for (j = 0; j < N; j++)
      20        x[i] += a[j][i];
      21  
      22    return x[1];
      23  }
      24  
      25  extern void abort ();
      26  
      27  int
      28  main (void)
      29  {
      30    int i, j;
      31    unsigned int res;
      32  
      33    for (i = 0; i < NMAX; i++)
      34      for (j = 0; j < NMAX; j++)
      35        a[i][j] = j;
      36  
      37    for (i = 0; i < NMAX; i++)
      38      x[i] = i;
      39  
      40    res = mvt (NMAX);
      41  
      42  #if DEBUG
      43    fprintf (stderr, "res = %d \n", res);
      44  #endif
      45  
      46    if (res != 2001)
      47      abort ();
      48  
      49    return 0;
      50  }
      51  
      52  /* { dg-final { scan-tree-dump "tiled by" "graphite" } } */