aboutsummaryrefslogtreecommitdiff
path: root/libgomp/testsuite/libgomp.c-c++-common
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2018-11-09 14:02:50 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2018-11-09 14:02:50 +0100
commit207286c31460c9f0d31c1568bd3de86c8f8b9187 (patch)
tree903224afe11c85bac02a85466ad076dba6a527eb /libgomp/testsuite/libgomp.c-c++-common
parentff150bc478180c2814136df3edd976059157cc18 (diff)
downloadgcc-207286c31460c9f0d31c1568bd3de86c8f8b9187.zip
gcc-207286c31460c9f0d31c1568bd3de86c8f8b9187.tar.gz
gcc-207286c31460c9f0d31c1568bd3de86c8f8b9187.tar.bz2
workshare-reduction-1.c: New test.
2018-11-09 Jakub Jelinek <jakub@redhat.com> * gcc.dg/gomp/workshare-reduction-1.c: New test. * gcc.dg/gomp/workshare-reduction-2.c: New test. * gcc.dg/gomp/workshare-reduction-3.c: New test. * gcc.dg/gomp/workshare-reduction-4.c: New test. * gcc.dg/gomp/workshare-reduction-5.c: New test. * gcc.dg/gomp/workshare-reduction-6.c: New test. * gcc.dg/gomp/workshare-reduction-7.c: New test. * gcc.dg/gomp/workshare-reduction-8.c: New test. * gcc.dg/gomp/workshare-reduction-9.c: New test. * gcc.dg/gomp/workshare-reduction-10.c: New test. * gcc.dg/gomp/workshare-reduction-11.c: New test. * gcc.dg/gomp/workshare-reduction-12.c: New test. * gcc.dg/gomp/workshare-reduction-13.c: New test. * gcc.dg/gomp/workshare-reduction-14.c: New test. * gcc.dg/gomp/workshare-reduction-15.c: New test. * gcc.dg/gomp/workshare-reduction-16.c: New test. * gcc.dg/gomp/workshare-reduction-17.c: New test. * gcc.dg/gomp/workshare-reduction-18.c: New test. * gcc.dg/gomp/workshare-reduction-19.c: New test. * gcc.dg/gomp/workshare-reduction-20.c: New test. * gcc.dg/gomp/workshare-reduction-21.c: New test. * gcc.dg/gomp/workshare-reduction-22.c: New test. * gcc.dg/gomp/workshare-reduction-23.c: New test. * gcc.dg/gomp/workshare-reduction-24.c: New test. * gcc.dg/gomp/workshare-reduction-25.c: New test. * gcc.dg/gomp/workshare-reduction-26.c: New test. * gcc.dg/gomp/workshare-reduction-27.c: New test. * gcc.dg/gomp/workshare-reduction-28.c: New test. * gcc.dg/gomp/workshare-reduction-29.c: New test. * gcc.dg/gomp/workshare-reduction-30.c: New test. * gcc.dg/gomp/workshare-reduction-31.c: New test. * gcc.dg/gomp/workshare-reduction-32.c: New test. * gcc.dg/gomp/workshare-reduction-33.c: New test. * gcc.dg/gomp/workshare-reduction-34.c: New test. * gcc.dg/gomp/workshare-reduction-35.c: New test. * gcc.dg/gomp/workshare-reduction-36.c: New test. * gcc.dg/gomp/workshare-reduction-37.c: New test. * gcc.dg/gomp/workshare-reduction-38.c: New test. * gcc.dg/gomp/workshare-reduction-39.c: New test. * gcc.dg/gomp/workshare-reduction-40.c: New test. * gcc.dg/gomp/workshare-reduction-41.c: New test. * gcc.dg/gomp/workshare-reduction-42.c: New test. * gcc.dg/gomp/workshare-reduction-43.c: New test. * gcc.dg/gomp/workshare-reduction-44.c: New test. * gcc.dg/gomp/workshare-reduction-45.c: New test. * gcc.dg/gomp/workshare-reduction-46.c: New test. * gcc.dg/gomp/workshare-reduction-47.c: New test. * gcc.dg/gomp/workshare-reduction-48.c: New test. * gcc.dg/gomp/workshare-reduction-49.c: New test. * gcc.dg/gomp/workshare-reduction-50.c: New test. * gcc.dg/gomp/workshare-reduction-51.c: New test. * gcc.dg/gomp/workshare-reduction-52.c: New test. * gcc.dg/gomp/workshare-reduction-53.c: New test. * gcc.dg/gomp/workshare-reduction-54.c: New test. * gcc.dg/gomp/workshare-reduction-55.c: New test. * gcc.dg/gomp/workshare-reduction-56.c: New test. * gcc.dg/gomp/workshare-reduction-57.c: New test. * gcc.dg/gomp/workshare-reduction-58.c: New test. libgomp/ * testsuite/libgomp.c-c++-common/task-reduction-13.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-14.c: New test. From-SVN: r265967
Diffstat (limited to 'libgomp/testsuite/libgomp.c-c++-common')
-rw-r--r--libgomp/testsuite/libgomp.c-c++-common/task-reduction-13.c50
-rw-r--r--libgomp/testsuite/libgomp.c-c++-common/task-reduction-14.c51
2 files changed, 101 insertions, 0 deletions
diff --git a/libgomp/testsuite/libgomp.c-c++-common/task-reduction-13.c b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-13.c
new file mode 100644
index 0000000..fc32216
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-13.c
@@ -0,0 +1,50 @@
+extern
+#ifdef __cplusplus
+"C"
+#endif
+void abort (void);
+#pragma omp declare reduction (foo: int: omp_out += omp_in - 1) initializer (omp_priv = 1)
+
+int
+main ()
+{
+ int i, v = 0;
+ unsigned long long j;
+ volatile unsigned long long sixtyfour = 64;
+ int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0;
+ #pragma omp parallel
+ {
+#define P(str) _Pragma (#str)
+#define ONE_ORDERED_LOOP(var, i, max, n, clauses...) \
+ P (omp for ordered reduction (task, foo: var) clauses) \
+ for (i = 0; i < max; i++) \
+ { \
+ var++; \
+ P (omp task in_reduction (foo: var)) \
+ var++; \
+ _Pragma ("omp ordered") \
+ if (v++ != i + n) \
+ abort (); \
+ } \
+ if (var != 128 || v != 64 + n) \
+ abort (); \
+ _Pragma ("omp barrier")
+ ONE_ORDERED_LOOP (a, i, 64, 0, )
+ ONE_ORDERED_LOOP (b, i, 64, 64, schedule (monotonic: static))
+ ONE_ORDERED_LOOP (c, i, 64, 128, schedule (static, 1))
+ ONE_ORDERED_LOOP (d, i, 64, 192, schedule (monotonic: runtime))
+ ONE_ORDERED_LOOP (e, i, 64, 256, schedule (dynamic, 2))
+ ONE_ORDERED_LOOP (f, i, 64, 320, schedule (monotonic: guided, 3))
+ ONE_ORDERED_LOOP (g, i, 64, 384, schedule (auto))
+ #pragma omp single
+ { v = 0; a = 0; b = 0; c = 0; d = 0; e = 0; f = 0; g = 0; }
+ ONE_ORDERED_LOOP (a, j, sixtyfour, 0, )
+ ONE_ORDERED_LOOP (b, j, sixtyfour, 64, schedule (static))
+ ONE_ORDERED_LOOP (c, j, sixtyfour, 128, schedule (monotonic: static, 1))
+ ONE_ORDERED_LOOP (d, j, sixtyfour, 192, schedule (runtime))
+ ONE_ORDERED_LOOP (e, j, sixtyfour, 256, schedule (monotonic: dynamic, 2))
+ ONE_ORDERED_LOOP (f, j, sixtyfour, 320, schedule (guided, 3))
+ ONE_ORDERED_LOOP (g, j, sixtyfour, 384, schedule (monotonic: auto))
+ }
+ return 0;
+}
diff --git a/libgomp/testsuite/libgomp.c-c++-common/task-reduction-14.c b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-14.c
new file mode 100644
index 0000000..37c00d4
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-14.c
@@ -0,0 +1,51 @@
+extern
+#ifdef __cplusplus
+"C"
+#endif
+void abort (void);
+#pragma omp declare reduction (foo: int: omp_out += omp_in - 1) initializer (omp_priv = 1)
+
+int
+main ()
+{
+ int i, v = 0;
+ unsigned long long j;
+ volatile unsigned long long sixtyfour = 64;
+ int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0;
+ #pragma omp parallel
+ {
+#define P(str) _Pragma (#str)
+#define ONE_ORDERED_LOOP(var, i, max, n, clauses...) \
+ P (omp for ordered(1) reduction (task, foo: var) clauses) \
+ for (i = 1; i <= max; i++) \
+ { \
+ P (omp task in_reduction (foo: var)) \
+ var++; \
+ P (omp ordered depend(sink: i - 1)) \
+ if (v++ != i + n - 1) \
+ abort (); \
+ _Pragma ("omp ordered depend(source)") \
+ var++; \
+ } \
+ if (var != 128 || v != 64 + n) \
+ abort (); \
+ _Pragma ("omp barrier")
+ ONE_ORDERED_LOOP (a, i, 64, 0, )
+ ONE_ORDERED_LOOP (b, i, 64, 64, schedule (monotonic: static))
+ ONE_ORDERED_LOOP (c, i, 64, 128, schedule (static, 1))
+ ONE_ORDERED_LOOP (d, i, 64, 192, schedule (monotonic: runtime))
+ ONE_ORDERED_LOOP (e, i, 64, 256, schedule (dynamic, 2))
+ ONE_ORDERED_LOOP (f, i, 64, 320, schedule (monotonic: guided, 3))
+ ONE_ORDERED_LOOP (g, i, 64, 384, schedule (auto))
+ #pragma omp single
+ { v = 0; a = 0; b = 0; c = 0; d = 0; e = 0; f = 0; g = 0; }
+ ONE_ORDERED_LOOP (a, j, sixtyfour, 0, )
+ ONE_ORDERED_LOOP (b, j, sixtyfour, 64, schedule (static))
+ ONE_ORDERED_LOOP (c, j, sixtyfour, 128, schedule (monotonic: static, 1))
+ ONE_ORDERED_LOOP (d, j, sixtyfour, 192, schedule (runtime))
+ ONE_ORDERED_LOOP (e, j, sixtyfour, 256, schedule (monotonic: dynamic, 2))
+ ONE_ORDERED_LOOP (f, j, sixtyfour, 320, schedule (guided, 3))
+ ONE_ORDERED_LOOP (g, j, sixtyfour, 384, schedule (monotonic: auto))
+ }
+ return 0;
+}