]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - libgomp/testsuite/libgomp.c/ordered-3.c
Imported gcc-4.4.3
[msp430-gcc.git] / libgomp / testsuite / libgomp.c / ordered-3.c
diff --git a/libgomp/testsuite/libgomp.c/ordered-3.c b/libgomp/testsuite/libgomp.c/ordered-3.c
new file mode 100644 (file)
index 0000000..2a2f219
--- /dev/null
@@ -0,0 +1,82 @@
+#include <stdlib.h>
+
+int cnt;
+
+void
+check (int x)
+{
+  if (cnt++ != x)
+    abort ();
+}
+
+int
+main (void)
+{
+  int j;
+
+  cnt = 0;
+#pragma omp parallel for ordered schedule (static, 1) num_threads (4) if (0)
+  for (j = 0; j < 1000; j++)
+    {
+#pragma omp ordered
+      check (j);
+    }
+
+  cnt = 0;
+#pragma omp parallel for ordered schedule (static, 1) num_threads (4) if (1)
+  for (j = 0; j < 1000; j++)
+    {
+#pragma omp ordered
+      check (j);
+    }
+
+  cnt = 0;
+#pragma omp parallel for ordered schedule (runtime) num_threads (4) if (0)
+  for (j = 0; j < 1000; j++)
+    {
+#pragma omp ordered
+      check (j);
+    }
+
+  cnt = 0;
+#pragma omp parallel for ordered schedule (runtime) num_threads (4) if (1)
+  for (j = 0; j < 1000; j++)
+    {
+#pragma omp ordered
+      check (j);
+    }
+
+  cnt = 0;
+#pragma omp parallel for ordered schedule (dynamic) num_threads (4) if (0)
+  for (j = 0; j < 1000; j++)
+    {
+#pragma omp ordered
+      check (j);
+    }
+
+  cnt = 0;
+#pragma omp parallel for ordered schedule (dynamic) num_threads (4) if (1)
+  for (j = 0; j < 1000; j++)
+    {
+#pragma omp ordered
+      check (j);
+    }
+
+  cnt = 0;
+#pragma omp parallel for ordered schedule (guided) num_threads (4) if (0)
+  for (j = 0; j < 1000; j++)
+    {
+#pragma omp ordered
+      check (j);
+    }
+
+  cnt = 0;
+#pragma omp parallel for ordered schedule (guided) num_threads (4) if (1)
+  for (j = 0; j < 1000; j++)
+    {
+#pragma omp ordered
+      check (j);
+    }
+
+  return 0;
+}