diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2017-11-22 20:19:50 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2017-11-22 20:19:50 +0000 |
commit | 058809db8ecd355548e166fccd7b80f682524bde (patch) | |
tree | 29cff7ac7a4d9cd5d8c58ebc3a88bd218a426c9e /test/OpenMP | |
parent | ea7e3341d57fca39f0a8f4f236e03c2ae8f6dc80 (diff) |
[OPENMP] Add support for cancel constructs in [teams] distribute
parallel for directives.
Added codegen/sema support for cancel constructs in [teams] distribute
parallel for directives.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@318872 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/OpenMP')
4 files changed, 22 insertions, 0 deletions
diff --git a/test/OpenMP/distribute_parallel_for_codegen.cpp b/test/OpenMP/distribute_parallel_for_codegen.cpp index 62c38f1888..4fbca7d2f2 100644 --- a/test/OpenMP/distribute_parallel_for_codegen.cpp +++ b/test/OpenMP/distribute_parallel_for_codegen.cpp @@ -28,6 +28,7 @@ T tmain() { #pragma omp teams #pragma omp distribute parallel for for (int i = 0; i < n; ++i) { + #pragma omp cancel for a[i] = b[i] + c[i]; } diff --git a/test/OpenMP/distribute_parallel_for_messages.cpp b/test/OpenMP/distribute_parallel_for_messages.cpp index 35a61df39e..b61c4e7a46 100644 --- a/test/OpenMP/distribute_parallel_for_messages.cpp +++ b/test/OpenMP/distribute_parallel_for_messages.cpp @@ -116,3 +116,14 @@ void test_ordered() { ; } +void test_cancel() { +#pragma omp target +#pragma omp teams +#pragma omp distribute parallel for + for (int i = 0; i < 16; ++i) + for (int j = 0; j < 16; ++j) { +#pragma omp cancel for + ; + } +} + diff --git a/test/OpenMP/teams_distribute_parallel_for_codegen.cpp b/test/OpenMP/teams_distribute_parallel_for_codegen.cpp index 0f31db0794..d2dd9aa8d6 100644 --- a/test/OpenMP/teams_distribute_parallel_for_codegen.cpp +++ b/test/OpenMP/teams_distribute_parallel_for_codegen.cpp @@ -32,6 +32,7 @@ int teams_argument_global(int n){ #pragma omp teams distribute parallel for num_teams(te), thread_limit(th) for(int i = 0; i < n; i++) { a[i] = 0; + #pragma omp cancel for } // CK1: call i32 @__tgt_target(i64 -1, i8* @{{[^,]+}}, i32 2, i8** %{{[^,]+}}, i8** %{{[^,]+}}, i{{64|32}}* {{.+}}@{{[^,]+}}, i32 0, i32 0), i64* {{.+}}@{{[^,]+}}, i32 0, i32 0)) diff --git a/test/OpenMP/teams_distribute_parallel_for_messages.cpp b/test/OpenMP/teams_distribute_parallel_for_messages.cpp index 12010dc3dd..dd88abd566 100644 --- a/test/OpenMP/teams_distribute_parallel_for_messages.cpp +++ b/test/OpenMP/teams_distribute_parallel_for_messages.cpp @@ -107,3 +107,12 @@ void test_ordered() { ; } +void test_cancel() { +#pragma omp target +#pragma omp teams distribute parallel for + for (int i = 0; i < 16; ++i) { +#pragma omp cancel for + ; + } +} + |