summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/graphite/interchange-6.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.dg/graphite/interchange-6.c')
-rw-r--r--gcc/testsuite/gcc.dg/graphite/interchange-6.c39
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" } } */