diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/graphite/interchange-6.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/interchange-6.c | 39 |
1 files changed, 33 insertions, 6 deletions
diff --git a/gcc/testsuite/gcc.dg/graphite/interchange-6.c b/gcc/testsuite/gcc.dg/graphite/interchange-6.c index 18454879b1f..2ff886cf7ee 100644 --- a/gcc/testsuite/gcc.dg/graphite/interchange-6.c +++ b/gcc/testsuite/gcc.dg/graphite/interchange-6.c @@ -2,17 +2,44 @@ /* Formerly known as ltrans-6.c */ -int medium_loop_interchange(int A[100][200]) +#define DEBUG 0 +#if DEBUG +#include <stdio.h> +#endif + +#define N 100 +#define M 200 + +static int __attribute__((noinline)) +foo (int A[N][M]) { - int i,j; + int i, j; /* This loop should be interchanged. */ - - for(j = 0; j < 200; j++) - for(i = 0; i < 100; i++) + for(j = 0; j < M; j++) + for(i = 0; i < N; i++) A[i][j] = A[i][j] + A[i][j]; - return A[1][1]; + return A[0][0] + A[N-1][M-1]; +} + +int +main (void) +{ + int A[N][M]; + int i, j, res; + + for (i = 0; i < N; i++) + for (j = 0; j < M; j++) + A[i][j] = 2; + + res = foo (A); + +#if DEBUG + fprintf (stderr, "res = %d \n", res); +#endif + + return res != 8; } /* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } } */ |