Thyre wrote:
I split the added tests from the main implementation into two commits, to
hopefully keep this reviewable.
For the tests, I basically copied
`target_teams_distribute_parallel_for_simd_if_codegen.cpp` and
`teams_distribute_parallel_for_simd_if_codegen.cpp`, changed the OpenMP flag to
`-fopenmp-version=52` and added small bits of code to also test `if(teams:
false)`. Here's the diff (ignoring the IR checks):
`teams_distribute_parallel_for_simd_if_codegen.cpp`:
<details>
<summary>Click to open</summary>
```diff
--- clang/test/OpenMP/teams_distribute_parallel_for_simd_if_codegen.cpp
2026-06-29 08:15:45.693665013 +0200
+++
clang/test/OpenMP/teams_distribute_parallel_for_simd_if_openmp52_codegen.cpp
2026-07-03 20:29:30.974549526 +0200
@@ -1,31 +1,31 @@
// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
UTC_ARGS: --function-signature --include-generated-funcs --replace-value-regex
"__omp_offloading_[0-9a-z]+_[0-9a-z]+" "reduction_size[.].+[.]"
"pl_cond[.].+[.|,]" --prefix-filecheck-ir-name _
-// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK1
-// RUN: %clang_cc1 -fopenmp -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
x86_64-unknown-unknown -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK1
-// RUN: %clang_cc1 -verify -fopenmp -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK3
-// RUN: %clang_cc1 -fopenmp -DOMP5 -fopenmp-targets=powerpc64le-ibm-linux-gnu
-x c++ -std=c++11 -triple x86_64-unknown-unknown -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp -DOMP5 -fopenmp-targets=powerpc64le-ibm-linux-gnu
-x c++ -triple x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s
-emit-llvm -o - | FileCheck %s --check-prefix=CHECK3
+// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK1
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
x86_64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK1
+// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK3
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
x86_64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK3
-// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK5
-// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
x86_64-unknown-unknown -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK5
-// RUN: %clang_cc1 -verify -fopenmp-simd -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK7
-// RUN: %clang_cc1 -fopenmp-simd -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
x86_64-unknown-unknown -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp-simd -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK7
+// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK5
+// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
x86_64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK5
+// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK7
+// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
x86_64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK7
-// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK9
-// RUN: %clang_cc1 -fopenmp -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
aarch64-unknown-unknown -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK9
-// RUN: %clang_cc1 -verify -fopenmp -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK11
-// RUN: %clang_cc1 -fopenmp -DOMP5 -fopenmp-targets=powerpc64le-ibm-linux-gnu
-x c++ -std=c++11 -triple aarch64-unknown-unknown -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp -DOMP5 -fopenmp-targets=powerpc64le-ibm-linux-gnu
-x c++ -triple aarch64-unknown-unknown -std=c++11 -include-pch %t -verify %s
-emit-llvm -o - | FileCheck %s --check-prefix=CHECK11
+// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK9
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
aarch64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK9
+// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK11
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
aarch64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK11
-// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK13
-// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
aarch64-unknown-unknown -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK13
-// RUN: %clang_cc1 -verify -fopenmp-simd -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK15
-// RUN: %clang_cc1 -fopenmp-simd -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
aarch64-unknown-unknown -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp-simd -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK15
+// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK13
+// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
aarch64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK13
+// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK15
+// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
aarch64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK15
// expected-no-diagnostics
#ifndef HEADER
#define HEADER
@@ -36,6 +36,7 @@
void fn4();
void fn5();
void fn6();
+void fn7();
int Arg;
@@ -52,6 +53,19 @@
}
+void gtid_test2() {
+#pragma omp target
+#pragma omp teams distribute parallel for simd
+ for(int i = 0 ; i < 100; i++) {}
+
+#pragma omp target
+#pragma omp teams distribute parallel for simd if (teams: false)
+ for(int i = 0 ; i < 100; i++) {
+ gtid_test2();
+ }
+}
+
+
template <typename T>
int tmain(T Arg) {
#pragma omp target
@@ -69,6 +83,11 @@
for(int i = 0 ; i < 100; i++) {
fn3();
}
+#pragma omp target
+#pragma omp teams distribute parallel for simd if (teams: Arg)
+ for(int i = 0 ; i < 100; i++) {
+ fn4();
+ }
return 0;
}
@@ -78,7 +97,7 @@
for(int i = 0 ; i < 100; i++) {
- fn4();
+ fn5();
}
#pragma omp target
@@ -86,7 +105,7 @@
for(int i = 0 ; i < 100; i++) {
- fn5();
+ fn6();
}
#pragma omp target
@@ -94,7 +113,7 @@
for(int i = 0 ; i < 100; i++) {
- fn6();
+ fn7();
}
return tmain(Arg);
@@ -157,11 +176,11 @@
```
</details>
`target_teams_distribute_parallel_for_simd_if_codegen.cpp`:
<details>
<summary>Click to open</summary>
```diff
--- clang/test/OpenMP/target_teams_distribute_parallel_for_simd_if_codegen.cpp
2026-06-29 08:15:45.683665078 +0200
+++
clang/test/OpenMP/target_teams_distribute_parallel_for_simd_if_openmp52_codegen.cpp
2026-07-03 20:29:30.973549528 +0200
@@ -1,31 +1,31 @@
// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
UTC_ARGS: --function-signature --include-generated-funcs --replace-value-regex
"__omp_offloading_[0-9a-z]+_[0-9a-z]+" "reduction_size[.].+[.]"
"pl_cond[.].+[.|,]" --prefix-filecheck-ir-name _
-// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK1
-// RUN: %clang_cc1 -fopenmp -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
x86_64-unknown-unknown -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK1
-// RUN: %clang_cc1 -verify -fopenmp -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK3
-// RUN: %clang_cc1 -fopenmp -DOMP5 -fopenmp-targets=powerpc64le-ibm-linux-gnu
-x c++ -std=c++11 -triple x86_64-unknown-unknown -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp -DOMP5 -fopenmp-targets=powerpc64le-ibm-linux-gnu
-x c++ -triple x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s
-emit-llvm -o - | FileCheck %s --check-prefix=CHECK3
+// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK1
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
x86_64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK1
+// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=52 -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK3
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=52 -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
x86_64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=52 -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK3
-// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK5
-// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
x86_64-unknown-unknown -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK5
-// RUN: %clang_cc1 -verify -fopenmp-simd -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK7
-// RUN: %clang_cc1 -fopenmp-simd -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
x86_64-unknown-unknown -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp-simd -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK7
+// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK5
+// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
x86_64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK5
+// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=52 -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK7
+// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=52 -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
x86_64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=52 -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK7
-// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK9
-// RUN: %clang_cc1 -fopenmp -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
aarch64-unknown-unknown -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK9
-// RUN: %clang_cc1 -verify -fopenmp -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK11
-// RUN: %clang_cc1 -fopenmp -DOMP5 -fopenmp-targets=powerpc64le-ibm-linux-gnu
-x c++ -std=c++11 -triple aarch64-unknown-unknown -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp -DOMP5 -fopenmp-targets=powerpc64le-ibm-linux-gnu
-x c++ -triple aarch64-unknown-unknown -std=c++11 -include-pch %t -verify %s
-emit-llvm -o - | FileCheck %s --check-prefix=CHECK11
+// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK9
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
aarch64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK9
+// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=52 -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK11
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=52 -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
aarch64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=52 -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK11
-// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK13
-// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
aarch64-unknown-unknown -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=45
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK13
-// RUN: %clang_cc1 -verify -fopenmp-simd -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK15
-// RUN: %clang_cc1 -fopenmp-simd -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
aarch64-unknown-unknown -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp-simd -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK15
+// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK13
+// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
aarch64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=52
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK13
+// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=52 -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK15
+// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=52 -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -std=c++11 -triple
aarch64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=52 -DOMP5
-fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple
aarch64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - |
FileCheck %s --check-prefix=CHECK15
// expected-no-diagnostics
#ifndef HEADER
@@ -37,6 +37,7 @@
void fn4();
void fn5();
void fn6();
+void fn7();
int Arg;
@@ -57,6 +58,23 @@
}
+void gtid_test2() {
+#ifdef OMP5
+#pragma omp target teams distribute parallel for simd if(simd: true)
nontemporal(Arg)
+#else
+#pragma omp target teams distribute parallel for simd
+#endif // OMP5
+ for (int i = 0; i < 100; i++) {
+ Arg = 0;
+ }
+
+#pragma omp target teams distribute parallel for simd if (teams: false)
+ for(int i = 0 ; i < 100; i++) {
+ gtid_test2();
+ }
+}
+
+
template <typename T>
int tmain(T Arg) {
#pragma omp target teams distribute parallel for simd if (true)
@@ -71,6 +89,10 @@
for(int i = 0 ; i < 100; i++) {
fn3();
}
+#pragma omp target teams distribute parallel for simd if (teams: Arg)
+ for(int i = 0 ; i < 100; i++) {
+ fn4();
+ }
return 0;
}
@@ -79,21 +101,21 @@
for(int i = 0 ; i < 100; i++) {
- fn4();
+ fn5();
}
#pragma omp target teams distribute parallel for simd if (false)
for(int i = 0 ; i < 100; i++) {
- fn5();
+ fn6();
}
#pragma omp target teams distribute parallel for simd if (Arg)
for(int i = 0 ; i < 100; i++) {
- fn6();
+ fn7();
}
return tmain(Arg);
@@ -164,11 +186,11 @@
```
</details>
I'm not familiar with the Clang code generation at all, so I've tried to
implement this based on what I've found in the existing code. Any feedback is
greatly appreciated!
https://github.com/llvm/llvm-project/pull/207444
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits