aboutsummaryrefslogtreecommitdiff
path: root/libgomp/testsuite
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2022-10-13 15:54:17 +0200
committerMartin Liska <mliska@suse.cz>2022-10-13 15:54:17 +0200
commitbd21c04269deded2c7476ceca1100a26f28ea526 (patch)
tree197bf75eedac69362078a4ccc0afe5615c45c327 /libgomp/testsuite
parentd9e7934d25da4a78ffef1f738206aa1d897911df (diff)
parent786e4c024f941671a233f5779d73a5d22f4e9588 (diff)
downloadgcc-bd21c04269deded2c7476ceca1100a26f28ea526.zip
gcc-bd21c04269deded2c7476ceca1100a26f28ea526.tar.gz
gcc-bd21c04269deded2c7476ceca1100a26f28ea526.tar.bz2
Merge branch 'master' into devel/sphinx
Diffstat (limited to 'libgomp/testsuite')
-rw-r--r--libgomp/testsuite/libgomp.c-c++-common/task-in-explicit-1.c106
-rw-r--r--libgomp/testsuite/libgomp.c-c++-common/task-in-explicit-2.c26
-rw-r--r--libgomp/testsuite/libgomp.c-c++-common/task-in-explicit-3.c36
-rw-r--r--libgomp/testsuite/libgomp.c-c++-common/task-reduction-17.c36
-rw-r--r--libgomp/testsuite/libgomp.c-c++-common/task-reduction-18.c17
-rw-r--r--libgomp/testsuite/libgomp.c/task-7.c26
-rw-r--r--libgomp/testsuite/libgomp.c/task-8.c14
7 files changed, 261 insertions, 0 deletions
diff --git a/libgomp/testsuite/libgomp.c-c++-common/task-in-explicit-1.c b/libgomp/testsuite/libgomp.c-c++-common/task-in-explicit-1.c
new file mode 100644
index 0000000..a228d93
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c-c++-common/task-in-explicit-1.c
@@ -0,0 +1,106 @@
+/* { dg-do run } */
+
+#include <omp.h>
+#include <stdlib.h>
+
+int
+main ()
+{
+ if (omp_in_explicit_task ())
+ abort ();
+ #pragma omp task
+ if (!omp_in_explicit_task ())
+ abort ();
+ #pragma omp task final (1)
+ {
+ if (!omp_in_explicit_task ())
+ abort ();
+ #pragma omp task
+ if (!omp_in_explicit_task ())
+ abort ();
+ }
+ #pragma omp parallel
+ {
+ if (omp_in_explicit_task ())
+ abort ();
+ #pragma omp task if (0)
+ {
+ if (!omp_in_explicit_task ())
+ abort ();
+ #pragma omp task if (0)
+ if (!omp_in_explicit_task ())
+ abort ();
+ }
+ #pragma omp task final (1)
+ if (!omp_in_explicit_task ())
+ abort ();
+ #pragma omp barrier
+ if (omp_in_explicit_task ())
+ abort ();
+ #pragma omp taskloop num_tasks (24)
+ for (int i = 0; i < 32; ++i)
+ if (!omp_in_explicit_task ())
+ abort ();
+ #pragma omp masked
+ #pragma omp task
+ if (!omp_in_explicit_task ())
+ abort ();
+ #pragma omp barrier
+ if (omp_in_explicit_task ())
+ abort ();
+ }
+ #pragma omp target
+ {
+ if (omp_in_explicit_task ())
+ abort ();
+ #pragma omp task if (0)
+ if (!omp_in_explicit_task ())
+ abort ();
+ #pragma omp task
+ if (!omp_in_explicit_task ())
+ abort ();
+ }
+ #pragma omp target teams
+ {
+ #pragma omp distribute
+ for (int i = 0; i < 4; ++i)
+ if (omp_in_explicit_task ())
+ abort ();
+ else
+ {
+ #pragma omp parallel
+ {
+ if (omp_in_explicit_task ())
+ abort ();
+ #pragma omp task
+ if (!omp_in_explicit_task ())
+ abort ();
+ #pragma omp barrier
+ if (omp_in_explicit_task ())
+ abort ();
+ }
+ }
+ }
+ #pragma omp teams
+ {
+ #pragma omp distribute
+ for (int i = 0; i < 4; ++i)
+ if (omp_in_explicit_task ())
+ abort ();
+ else
+ {
+ #pragma omp parallel
+ {
+ if (omp_in_explicit_task ())
+ abort ();
+ #pragma omp task
+ if (!omp_in_explicit_task ())
+ abort ();
+ #pragma omp barrier
+ if (omp_in_explicit_task ())
+ abort ();
+ }
+ }
+ }
+ return 0;
+}
diff --git a/libgomp/testsuite/libgomp.c-c++-common/task-in-explicit-2.c b/libgomp/testsuite/libgomp.c-c++-common/task-in-explicit-2.c
new file mode 100644
index 0000000..44df596
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c-c++-common/task-in-explicit-2.c
@@ -0,0 +1,26 @@
+/* { dg-do run } */
+
+#include <omp.h>
+#include <stdlib.h>
+
+int
+main ()
+{
+ #pragma omp task
+ {
+ if (!omp_in_explicit_task ())
+ abort ();
+ #pragma omp task
+ {
+ if (!omp_in_explicit_task ())
+ abort ();
+ #pragma omp target nowait
+ if (omp_in_explicit_task ())
+ abort ();
+ if (!omp_in_explicit_task ())
+ abort ();
+ #pragma omp taskwait
+ }
+ }
+ return 0;
+}
diff --git a/libgomp/testsuite/libgomp.c-c++-common/task-in-explicit-3.c b/libgomp/testsuite/libgomp.c-c++-common/task-in-explicit-3.c
new file mode 100644
index 0000000..40eb94d
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c-c++-common/task-in-explicit-3.c
@@ -0,0 +1,36 @@
+/* { dg-do run } */
+
+#include <omp.h>
+#include <stdlib.h>
+
+int a;
+
+int
+main ()
+{
+ #pragma omp task
+ {
+ if (!omp_in_explicit_task ())
+ abort ();
+ #pragma omp task
+ {
+ if (!omp_in_explicit_task ())
+ abort ();
+ #pragma omp taskgroup task_reduction (+: a)
+ {
+ if (!omp_in_explicit_task ())
+ abort ();
+ #pragma omp task in_reduction (+: a)
+ {
+ ++a;
+ if (!omp_in_explicit_task ())
+ abort ();
+ }
+ }
+ if (!omp_in_explicit_task ())
+ abort ();
+ #pragma omp taskwait
+ }
+ }
+ return 0;
+}
diff --git a/libgomp/testsuite/libgomp.c-c++-common/task-reduction-17.c b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-17.c
new file mode 100644
index 0000000..4a8d1e8
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-17.c
@@ -0,0 +1,36 @@
+/* { dg-do run } */
+
+#include <omp.h>
+#include <stdlib.h>
+
+int a;
+
+int
+main ()
+{
+ #pragma omp task final (1)
+ {
+ if (!omp_in_final ())
+ abort ();
+ #pragma omp task
+ {
+ if (!omp_in_final ())
+ abort ();
+ #pragma omp taskgroup task_reduction (+: a)
+ {
+ if (!omp_in_final ())
+ abort ();
+ #pragma omp task in_reduction (+: a)
+ {
+ ++a;
+ if (!omp_in_final ())
+ abort ();
+ }
+ }
+ if (!omp_in_final ())
+ abort ();
+ #pragma omp taskwait
+ }
+ }
+ return 0;
+}
diff --git a/libgomp/testsuite/libgomp.c-c++-common/task-reduction-18.c b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-18.c
new file mode 100644
index 0000000..483f440
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-18.c
@@ -0,0 +1,17 @@
+/* { dg-do run } */
+
+int a;
+
+int
+main ()
+{
+ #pragma omp task
+ {
+ #pragma omp taskgroup task_reduction (+: a)
+ {
+ #pragma omp task in_reduction (+: a)
+ ++a;
+ }
+ }
+ return 0;
+}
diff --git a/libgomp/testsuite/libgomp.c/task-7.c b/libgomp/testsuite/libgomp.c/task-7.c
new file mode 100644
index 0000000..0307575
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c/task-7.c
@@ -0,0 +1,26 @@
+/* { dg-do run } */
+
+#include <omp.h>
+#include <stdlib.h>
+
+int
+main ()
+{
+ #pragma omp task final (1)
+ {
+ if (!omp_in_final ())
+ abort ();
+ #pragma omp task
+ {
+ if (!omp_in_final ())
+ abort ();
+ #pragma omp target nowait
+ if (omp_in_final ())
+ abort ();
+ if (!omp_in_final ())
+ abort ();
+ #pragma omp taskwait
+ }
+ }
+ return 0;
+}
diff --git a/libgomp/testsuite/libgomp.c/task-8.c b/libgomp/testsuite/libgomp.c/task-8.c
new file mode 100644
index 0000000..f03aef6
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c/task-8.c
@@ -0,0 +1,14 @@
+/* { dg-do run } */
+
+int
+main ()
+{
+ int i = 0;
+ #pragma omp task
+ {
+ #pragma omp target nowait private (i)
+ i = 1;
+ #pragma omp taskwait
+ }
+ return 0;
+}