================
@@ -0,0 +1,2029 @@
+// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py 
UTC_ARGS: --check-globals all --filter-out-after "getelem.*kernel" --filter-out 
"= alloca.*" --include-generated-funcs --replace-value-regex 
"__omp_offloading_[0-9a-z]+_[0-9a-z]+" "reduction_size[.].+[.]" 
"pl_cond[.].+[.|,]" --prefix-filecheck-ir-name _ --global-value-regex 
"\.offload_.*" --global-hex-value-regex ".offload_maptypes.*" --version 6
+// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=51 -std=c++20 -triple 
x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s
+
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=51 -std=c++20 -triple 
x86_64-unknown-unknown -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp -fopenmp-version=51 -std=c++20 -triple 
x86_64-unknown-unknown -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s
+
+// expected-no-diagnostics
+
+#ifndef HEADER
+#define HEADER
+
+struct Point { int x, y; };
+struct Point3D { int x, y, z; };
+
+void test_target_explicit_map() {
+  Point p{1, 2};
+  auto [a, b] = p;
+
+#pragma omp target map(tofrom: p)
+  {
+    a = a + 1;
+    b = b + 1;
+  }
+}
+
+void test_target_implicit_map() {
+  Point p{1, 2};
+  auto [a, b] = p;
+
+#pragma omp target
+  {
+    int sum = a + b;
+  }
+}
+
+void test_target_parallel() {
+  Point p{3, 4};
+  auto [a, b] = p;
+
+#pragma omp target parallel
+  {
+    int sum = a + b;
+  }
+}
+
+void test_target_parallel_for() {
+  Point p{5, 6};
+  auto [a, b] = p;
+
+#pragma omp target parallel for
+  for (int i = 0; i < 10; i++) {
+    int result = a + b + i;
+  }
+}
+
+void test_firstprivate_dsa() {
+  Point p{7, 8};
+  auto [a, b] = p;
+
+#pragma omp parallel firstprivate(p)
----------------
alexey-bataev wrote:

Also, something like `firstprivate (a) shared(b)` would be good to test

https://github.com/llvm/llvm-project/pull/190832
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to