This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Committed][testsuite][PR65594] Add verification to libgomp.graphite/force-parallel-6.c


Hi,

this patch adds verification to libgomp.graphite/force-parallel-6.c.

Committed as approved by Jakub here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65594#c8 .

Thanks,
- Tom
Add verification to libgomp.graphite/force-parallel-6.c

2015-03-27  Tom de Vries  <tom@codesourcery.com>

	* testsuite/libgomp.graphite/force-parallel-6.c (abort): Declare.
	(init, check): New function.
	(foo): Change return type to void.
	(main): Call init and check.
---
 .../testsuite/libgomp.graphite/force-parallel-6.c  | 52 ++++++++++++++++++++--
 1 file changed, 49 insertions(+), 3 deletions(-)

diff --git a/libgomp/testsuite/libgomp.graphite/force-parallel-6.c b/libgomp/testsuite/libgomp.graphite/force-parallel-6.c
index e9e4b56..cbc5735 100644
--- a/libgomp/testsuite/libgomp.graphite/force-parallel-6.c
+++ b/libgomp/testsuite/libgomp.graphite/force-parallel-6.c
@@ -1,10 +1,31 @@
+void abort (void);
+
 #define N 500
 #define M 50
 
 int X[2*N], Y[2*N], B[2*N];
 int A[2*N][2*N], C[2*N][2*N];
 
-int foo(void)
+static void __attribute__((noinline,noclone))
+init (void)
+{
+  volatile int i, j;
+
+  for (i = 0; i < 2 * N; ++i)
+    {
+      B[i] = 1;
+      X[i] = 1;
+      Y[i] = 1;
+      for (j = 0; j < 2 * N; ++j)
+	{
+	  A[i][j] = 1;
+	  C[i][j] = 1;
+	}
+    }
+}
+
+static void __attribute__((noinline,noclone))
+foo (void)
 {
   int i, j, k;
 
@@ -21,13 +42,38 @@ int foo(void)
 	  Y[i+j] = A[j+1][N];
 	}
     }
+}
 
-  return A[1][5]*B[6];
+static void __attribute__((noinline,noclone))
+check (void)
+{
+  volatile int i, j;
+
+  for (i = 0; i < 2 * N; ++i)
+    {
+      int expect_x = i < M ? 11 : 1;
+
+      if (B[i] != 1
+	  || X[i] != expect_x
+	  || Y[i] != 1)
+	abort ();
+
+      for (j = 0; j < 2 * N; ++j)
+	{
+	  int expect_a = (0 < i && i <= M && j < N) ? 2 : 1;
+
+	  if (A[i][j] != expect_a
+	      || C[i][j] != 1)
+	    abort ();
+	}
+    }
 }
 
 int main(void)
 {
-  foo();
+  init ();
+  foo ();
+  check ();
 
   return 0;
 }
-- 
1.9.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]