diff libgomp/testsuite/libgomp.c/reduction-5.c @ 0:a06113de4d67

first commit
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Fri, 17 Jul 2009 14:47:48 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgomp/testsuite/libgomp.c/reduction-5.c	Fri Jul 17 14:47:48 2009 +0900
@@ -0,0 +1,78 @@
+/* PR middle-end/36506 */
+
+extern void abort (void);
+
+int
+main (void)
+{
+  int sum = 0, prod = 1;
+#pragma omp parallel
+  #pragma omp sections reduction (+:sum)
+    {
+    #pragma omp section
+      sum += 2;
+    #pragma omp section
+      sum += 2;
+    #pragma omp section
+      sum += 2;
+    }
+  if (sum != 6)
+    abort ();
+  sum = 0;
+#pragma omp parallel sections reduction (+:sum)
+  {
+  #pragma omp section
+    sum += 2;
+  #pragma omp section
+    sum += 2;
+  #pragma omp section
+    sum += 2;
+  }
+  if (sum != 6)
+    abort ();
+  sum = 0;
+#pragma omp parallel
+  #pragma omp sections reduction (+:sum) reduction (*:prod)
+    {
+    #pragma omp section
+      {
+	sum += 2;
+	prod *= 2;
+      }
+    #pragma omp section
+      {
+	sum += 2;
+	prod *= 2;
+      }
+    #pragma omp section
+      {
+	sum += 2;
+	prod *= 2;
+      }
+    }
+  if (sum != 6 || prod != 8)
+    abort ();
+  sum = 0;
+  prod = 1;
+#pragma omp parallel sections reduction (+:sum) reduction (*:prod)
+  {
+  #pragma omp section
+    {
+      sum += 2;
+      prod *= 2;
+    }
+  #pragma omp section
+    {
+      sum += 2;
+      prod *= 2;
+    }
+  #pragma omp section
+    {
+      sum += 2;
+      prod *= 2;
+    }
+  }
+  if (sum != 6 || prod != 8)
+    abort ();
+  return 0;
+}