The following XFAILs the testcases, making them fail reliably independelty
of int/long type sizes and also providing new testcase variants that
succeed reliably.

I don't see us fixing the underlying niter analysis issue for GCC 7.

Tested on x86_64-unknown-linux-gnu with {,-m32}, applied.

Richard.

2017-02-01  Richard Biener  <rguent...@suse.de>

        PR testsuite/76957
        * gcc.dg/graphite/scop-dsyr2k-2.c: New testcase.
        * gcc.dg/graphite/scop-dsyrk-2.c: Likewise.
        * gcc.dg/graphite/scop-dsyr2k.c: XFAIL.
        * gcc.dg/graphite/scop-dsyrk.c: Likewise.

Index: gcc/testsuite/gcc.dg/graphite/scop-dsyr2k-2.c
===================================================================
--- gcc/testsuite/gcc.dg/graphite/scop-dsyr2k-2.c       (nonexistent)
+++ gcc/testsuite/gcc.dg/graphite/scop-dsyr2k-2.c       (working copy)
@@ -0,0 +1,24 @@
+/* { dg-require-effective-target size32plus } */
+#define NMAX 3000
+
+static double a[NMAX][NMAX], b[NMAX][NMAX], c[NMAX][NMAX];
+
+typedef __INT32_TYPE__ int32_t;
+typedef __INT64_TYPE__ int64_t;
+
+void dsyr2k(int64_t N) {
+       int32_t i,j,k;
+       
+#pragma scop
+       for (i=0; i<N; i++) {
+               for (j=0; j<N; j++) {
+                       for (k=j; k<N; k++) {
+                               c[j][k] += a[i][j] * b[i][k] + b[i][j] * 
a[i][k];
+                       }
+               }
+       }
+#pragma endscop
+}
+
+/* { dg-final { scan-tree-dump-times "number of SCoPs: 1" 1 "graphite"} } */ 
+
Index: gcc/testsuite/gcc.dg/graphite/scop-dsyr2k.c
===================================================================
--- gcc/testsuite/gcc.dg/graphite/scop-dsyr2k.c (revision 245089)
+++ gcc/testsuite/gcc.dg/graphite/scop-dsyr2k.c (working copy)
@@ -3,7 +3,7 @@
 
 static double a[NMAX][NMAX], b[NMAX][NMAX], c[NMAX][NMAX];
 
-void dsyr2k(long N) {
+void dsyr2k(int N) {
        int i,j,k;
        
 #pragma scop
@@ -17,5 +17,4 @@ void dsyr2k(long N) {
 #pragma endscop
 }
 
-/* { dg-final { scan-tree-dump-times "number of SCoPs: 1" 1 "graphite"} } */ 
-
+/* { dg-final { scan-tree-dump-times "number of SCoPs: 1" 1 "graphite" { xfail 
*-*-* } } } */ 
Index: gcc/testsuite/gcc.dg/graphite/scop-dsyrk-2.c
===================================================================
--- gcc/testsuite/gcc.dg/graphite/scop-dsyrk-2.c        (nonexistent)
+++ gcc/testsuite/gcc.dg/graphite/scop-dsyrk-2.c        (working copy)
@@ -0,0 +1,25 @@
+/* { dg-require-effective-target size32plus } */
+#define NMAX 3000
+#define MEASURE_TIME 1
+
+static double a[NMAX][NMAX], c[NMAX][NMAX];
+
+typedef __INT32_TYPE__ int32_t;
+typedef __INT64_TYPE__ int64_t;
+
+void dsyrk(int64_t N) 
+{
+  int32_t i,j,k;
+
+#pragma scop
+  for (i=0; i<N; i++) {
+    for (j=0; j<N; j++) {
+      for (k=j; k<N; k++) {
+        c[j][k] += a[i][j] * a[i][k];
+      }
+    }
+  }
+#pragma endscop
+}
+
+/* { dg-final { scan-tree-dump-times "number of SCoPs: 1" 1 "graphite" } } */
Index: gcc/testsuite/gcc.dg/graphite/scop-dsyrk.c
===================================================================
--- gcc/testsuite/gcc.dg/graphite/scop-dsyrk.c  (revision 245089)
+++ gcc/testsuite/gcc.dg/graphite/scop-dsyrk.c  (working copy)
@@ -4,7 +4,7 @@
 
 static double a[NMAX][NMAX], c[NMAX][NMAX];
 
-void dsyrk(long N) 
+void dsyrk(int N) 
 {
   int i,j,k;
 
@@ -19,4 +19,4 @@ void dsyrk(long N)
 #pragma endscop
 }
 
-/* { dg-final { scan-tree-dump-times "number of SCoPs: 1" 1 "graphite" } } */
+/* { dg-final { scan-tree-dump-times "number of SCoPs: 1" 1 "graphite" { xfail 
*-*-* } } } */

Reply via email to