diff options
author | Martin Liska <mliska@suse.cz> | 2022-10-13 15:54:17 +0200 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2022-10-13 15:54:17 +0200 |
commit | bd21c04269deded2c7476ceca1100a26f28ea526 (patch) | |
tree | 197bf75eedac69362078a4ccc0afe5615c45c327 /libgomp/testsuite | |
parent | d9e7934d25da4a78ffef1f738206aa1d897911df (diff) | |
parent | 786e4c024f941671a233f5779d73a5d22f4e9588 (diff) | |
download | gcc-bd21c04269deded2c7476ceca1100a26f28ea526.zip gcc-bd21c04269deded2c7476ceca1100a26f28ea526.tar.gz gcc-bd21c04269deded2c7476ceca1100a26f28ea526.tar.bz2 |
Merge branch 'master' into devel/sphinx
Diffstat (limited to 'libgomp/testsuite')
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; +} |