summaryrefslogtreecommitdiffstats
path: root/test/OpenMP/declare_simd_aarch64_warning_sve.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/OpenMP/declare_simd_aarch64_warning_sve.c')
-rw-r--r--test/OpenMP/declare_simd_aarch64_warning_sve.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/OpenMP/declare_simd_aarch64_warning_sve.c b/test/OpenMP/declare_simd_aarch64_warning_sve.c
new file mode 100644
index 0000000000..0d66ce143c
--- /dev/null
+++ b/test/OpenMP/declare_simd_aarch64_warning_sve.c
@@ -0,0 +1,13 @@
+// REQUIRES: aarch64-registered-target
+// RUN: %clang_cc1 -triple aarch64-linux-gnu -target-feature +sve -fopenmp %s -S -o %t -verify
+// RUN: %clang_cc1 -triple aarch64-linux-gnu -target-feature +sve -fopenmp-simd %s -S -o %t -verify
+
+#pragma omp declare simd simdlen(66)
+double foo(float x);
+//expected-warning@-2{{The clause simdlen must fit the 64-bit lanes in the architectural constraints for SVE (min is 128-bit, max is 2048-bit, by steps of 128-bit)}}
+
+void foo_loop(double *x, float *y, int N) {
+ for (int i = 0; i < N; ++i) {
+ x[i] = foo(y[i]);
+ }
+}