[clang] [clang][SME] Emit error for OpenMP captured regions in SME functions (PR #124590)

Benjamin Maxwell via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 28 03:28:54 PST 2025


================
@@ -0,0 +1,68 @@
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme2 -fopenmp -fsyntax-only -verify %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme2 -fopenmp -fsyntax-only -verify=expected-cpp -x c++ %s
+
+int compute(int);
+
+void streaming_openmp_captured_region(int* out) __arm_streaming
+{
+  // expected-error at +2 {{OpenMP captured regions are not yet supported in streaming functions}}
+  // expected-cpp-error at +1 {{OpenMP captured regions are not yet supported in streaming functions}}
+  #pragma omp parallel for num_threads(32)
+  for(int ci =0;ci< 8;ci++)
+  {
+    out[ci] =compute(ci);
+  }
+}
+
+__arm_locally_streaming void locally_streaming_openmp_captured_region(int* out)
+{
+  // expected-error at +2 {{OpenMP captured regions are not yet supported in streaming functions}}
+  // expected-cpp-error at +1 {{OpenMP captured regions are not yet supported in streaming functions}}
+  #pragma omp parallel for num_threads(32)
+  for(int ci =0;ci< 8;ci++)
+  {
+    out[ci] = compute(ci);
+  }
+}
+
+void za_state_captured_region(int* out) __arm_inout("za")
+{
+  // expected-error at +2 {{OpenMP captured regions are not yet supported in functions with ZA state}}
+  // expected-cpp-error at +1 {{OpenMP captured regions are not yet supported in functions with ZA state}}
+  #pragma omp parallel for num_threads(32)
+  for(int ci =0;ci< 8;ci++)
+  {
+    out[ci] =compute(ci);
+  }
+}
+
+void zt0_state_openmp_captured_region(int* out) __arm_inout("zt0")
+{
+  // expected-error at +2 {{OpenMP captured regions are not yet supported in functions with ZT0 state}}
+  // expected-cpp-error at +1 {{OpenMP captured regions are not yet supported in functions with ZT0 state}}
+  #pragma omp parallel for num_threads(32)
+  for(int ci =0;ci< 8;ci++)
+  {
+    out[ci] = compute(ci);
+  }
+}
+
----------------
MacDue wrote:

Done :+1: 

https://github.com/llvm/llvm-project/pull/124590


More information about the cfe-commits mailing list