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

Reply via email to