OSDN Git Service

Add runtime tests for interchange and blocking.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / graphite / interchange-7.c
index 2a7bf86..a030943 100644 (file)
@@ -1,17 +1,45 @@
+/* { dg-require-effective-target size32plus } */
+
 /* Formerly known as ltrans-8.c */
 
-double
+#define DEBUG 0
+#if DEBUG
+#include <stdio.h>
+#endif
+
+#define N 111
+#define M 1111
+
+static int __attribute__((noinline))
 foo (double *a)
 {
   int i,j;
-  double r = 0.0;
+  int r = 0;
 
-  for (i = 0; i < 100; ++i)
-    for (j = 0; j < 1000; ++j)
-      r += a[j * 100 + i];
+  for (i = 0; i < N; ++i)
+    for (j = 0; j < M; ++j)
+      r += a[j * N + i];
 
   return r;
 }
 
+int
+main (void)
+{
+  double A[N*M];
+  int i, res;
+
+  for (i = 0; i < N*M; i++)
+    A[i] = 2;
+
+  res = foo (A);
+
+#if DEBUG
+  fprintf (stderr, "res = %d \n", res);
+#endif
+
+  return res != 246642;
+}
+
 /* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } } */
 /* { dg-final { cleanup-tree-dump "graphite" } } */