aboutsummaryrefslogtreecommitdiff
path: root/clang/test/OpenMP/declare_simd_codegen.cpp
diff options
context:
space:
mode:
authorMike Rice <michael.p.rice@intel.com>2022-05-10 10:54:00 -0700
committerMike Rice <michael.p.rice@intel.com>2022-05-10 14:12:44 -0700
commit0dbaef61b56f0ef0ab0cf38ea92ffc1f35bee3ff (patch)
treeb4cb75596502e8c7b68558ce73eec8158cb71765 /clang/test/OpenMP/declare_simd_codegen.cpp
parenta0f3ef42b01094b3606eef43ec1d0e79433154ed (diff)
downloadllvm-0dbaef61b56f0ef0ab0cf38ea92ffc1f35bee3ff.zip
llvm-0dbaef61b56f0ef0ab0cf38ea92ffc1f35bee3ff.tar.gz
llvm-0dbaef61b56f0ef0ab0cf38ea92ffc1f35bee3ff.tar.bz2
[OpenMP] Fix mangling for linear modifiers with variable stride
This adds support for variable stride with the val, uval, and ref linear modifiers. Previously only the no modifer type ls<argno> was supported. val -> Ls<argno> uval -> Us<argno> ref -> Rs<argno> Differential Revision: https://reviews.llvm.org/D125330
Diffstat (limited to 'clang/test/OpenMP/declare_simd_codegen.cpp')
-rw-r--r--clang/test/OpenMP/declare_simd_codegen.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/OpenMP/declare_simd_codegen.cpp b/clang/test/OpenMP/declare_simd_codegen.cpp
index 5a5df23..fa0be2a 100644
--- a/clang/test/OpenMP/declare_simd_codegen.cpp
+++ b/clang/test/OpenMP/declare_simd_codegen.cpp
@@ -144,6 +144,17 @@ double Four(int& a, int &b) {
return a;
}
+// Test reference parameters with variable stride.
+#pragma omp declare simd simdlen(4) uniform(a) \
+ linear(b:2) linear(c:a) \
+ linear(val(d):4) linear(val(e):a) \
+ linear(uval(f):8) linear(uval(g):a) \
+ linear(ref(h):16) linear(ref(i):a)
+double Five(int a, short &b, short &c, short &d, short &e, short &f, short &g,
+ short &h, short &i) {
+ return a + int(b);
+}
+
// CHECK-DAG: define {{.+}}@_Z5add_1Pf(
// CHECK-DAG: define {{.+}}@_Z1hIiEvPT_S1_S1_S1_(
// CHECK-DAG: define {{.+}}@_Z1hIfEvPT_S1_S1_S1_(
@@ -162,6 +173,11 @@ double Four(int& a, int &b) {
// CHECK-DAG: define {{.+}}@_Z3food(
// CHECK-DAG: declare {{.+}}@_Z5add_2Pf(
// CHECK-DAG: define {{.+}}@_Z11constlineari(
+// CHECK-DAG: define {{.+}}@_Z3OneRiPiiS_S0_i
+// CHECK-DAG: define {{.+}}@_Z3TwoRiPiiS_S0_i
+// CHECK-DAG: define {{.+}}@_Z5ThreeRiS_
+// CHECK-DAG: define {{.+}}@_Z4FourRiS_
+// CHECK-DAG: define {{.+}}@_Z4FiveiRsS_S_S_S_S_S_S_
// CHECK-DAG: "_ZGVbM4l32__Z5add_1Pf"
// CHECK-DAG: "_ZGVbN4l32__Z5add_1Pf"
@@ -381,6 +397,8 @@ double Four(int& a, int &b) {
// CHECK-DAG: "_ZGVbN4U2U__Z5ThreeRiS_"
// CHECK-DAG: "_ZGVbM4R8R4__Z4FourRiS_"
// CHECK-DAG: "_ZGVbN4R8R4__Z4FourRiS_"
+// CHECK-DAG: "_ZGVbM4uL2Ls0L4Ls0U8Us0R32Rs0__Z4FiveiRsS_S_S_S_S_S_S_"
+// CHECK-DAG: "_ZGVbN4uL2Ls0L4Ls0U8Us0R32Rs0__Z4FiveiRsS_S_S_S_S_S_S_"
// CHECK-NOT: "_ZGV{{.+}}__Z1fRA_i