diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 19:18:08 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 19:18:08 +0000 |
commit | bab175ec4b075c8076ba14c762900392533f6ee4 (patch) | |
tree | 01f4f29419a2cb10abe13c1e63cd2a66068b0137 /test/OpenMP/declare_simd_ast_print.cpp | |
parent | 8b7a8012d223fac5d17d16a66bb39168a9a1dfc0 (diff) | |
download | src-bab175ec4b075c8076ba14c762900392533f6ee4.tar.gz src-bab175ec4b075c8076ba14c762900392533f6ee4.zip |
Vendor import of clang trunk r290819:vendor/clang/clang-trunk-r290819
Notes
Notes:
svn path=/vendor/clang/dist/; revision=311118
svn path=/vendor/clang/clang-trunk-r290819/; revision=311119; tag=vendor/clang/clang-trunk-r290819
Diffstat (limited to 'test/OpenMP/declare_simd_ast_print.cpp')
-rw-r--r-- | test/OpenMP/declare_simd_ast_print.cpp | 38 |
1 files changed, 17 insertions, 21 deletions
diff --git a/test/OpenMP/declare_simd_ast_print.cpp b/test/OpenMP/declare_simd_ast_print.cpp index 5a32e61d9922..632e038e221d 100644 --- a/test/OpenMP/declare_simd_ast_print.cpp +++ b/test/OpenMP/declare_simd_ast_print.cpp @@ -22,18 +22,16 @@ template <class C> void h(C *hp, C *hp2, C *hq, C *lin) { } // CHECK: #pragma omp declare simd aligned(hp) aligned(hp2) -// CHECK-NEXT: template <class C = int> void h(int *hp, int *hp2, int *hq, int *lin) { -// CHECK-NEXT: h((float *)hp, (float *)hp2, (float *)hq, (float *)lin); +// CHECK-NEXT: template <class C> void h(C *hp, C *hp2, C *hq, C *lin) { // CHECK-NEXT: } -// CHECK: #pragma omp declare simd aligned(hp) aligned(hp2) -// CHECK-NEXT: template <class C = float> void h(float *hp, float *hp2, float *hq, float *lin) { +// CHECK: #pragma omp declare simd aligned(hp) aligned(hp2) +// CHECK-NEXT: template<> void h<float>(float *hp, float *hp2, float *hq, float *lin) { // CHECK-NEXT: } -// CHECK: #pragma omp declare simd aligned(hp) aligned(hp2) -// CHECK: template <class C> void h(C *hp, C *hp2, C *hq, C *lin) { +// CHECK-NEXT: template<> void h<int>(int *hp, int *hp2, int *hq, int *lin) { +// CHECK-NEXT: h((float *)hp, (float *)hp2, (float *)hq, (float *)lin); // CHECK-NEXT: } -// // Explicit specialization with <C=int>. // Pragmas need to be same, otherwise standard says that's undefined behavior. @@ -75,11 +73,11 @@ private: int x[10]; }; -// CHECK: template <int X = 16, typename T = float> class TVV { -// CHECK: #pragma omp declare simd -// CHECK-NEXT: int tadd(int a, int b); -// CHECK: #pragma omp declare simd aligned(a: 16 * 2) aligned(b) linear(ref(b): 16) -// CHECK-NEXT: float taddpf(float *a, float *&b) { +// CHECK: template <int X, typename T> class TVV { +// CHECK: #pragma omp declare simd simdlen(X) +// CHECK-NEXT: int tadd(int a, int b) { +// CHECK: #pragma omp declare simd aligned(a: X * 2) aligned(b) linear(ref(b): X) +// CHECK-NEXT: float taddpf(float *a, T *&b) { // CHECK-NEXT: return *a + *b; // CHECK-NEXT: } // CHECK: #pragma omp declare simd @@ -91,20 +89,18 @@ private: template <int X, typename T> class TVV { public: -// CHECK: template <int X, typename T> class TVV { +// CHECK: template<> class TVV<16, float> { #pragma omp declare simd simdlen(X) int tadd(int a, int b) { return a + b; } -// CHECK: #pragma omp declare simd simdlen(X) -// CHECK-NEXT: int tadd(int a, int b) { -// CHECK-NEXT: return a + b; -// CHECK-NEXT: } +// CHECK: #pragma omp declare simd simdlen(16) +// CHECK-NEXT: int tadd(int a, int b); #pragma omp declare simd aligned(a : X * 2) aligned(b) linear(ref(b): X) float taddpf(float *a, T *&b) { return *a + *b; } -// CHECK: #pragma omp declare simd aligned(a: X * 2) aligned(b) -// CHECK-NEXT: float taddpf(float *a, T *&b) { +// CHECK: #pragma omp declare simd aligned(a: 16 * 2) aligned(b) linear(ref(b): 16) +// CHECK-NEXT: float taddpf(float *a, float *&b) { // CHECK-NEXT: return *a + *b; // CHECK-NEXT: } @@ -123,10 +119,10 @@ private: }; // CHECK: }; -// CHECK: #pragma omp declare simd simdlen(64) aligned(b: 64 * 2) linear(uval(c): 64) -// CHECK: template <int N = 64> void foo(int (&b)[64], float *&c) // CHECK: #pragma omp declare simd simdlen(N) aligned(b: N * 2) linear(uval(c): N) // CHECK: template <int N> void foo(int (&b)[N], float *&c) +// CHECK: #pragma omp declare simd simdlen(64) aligned(b: 64 * 2) linear(uval(c): 64) +// CHECK: template<> void foo<64>(int (&b)[64], float *&c) #pragma omp declare simd simdlen(N) aligned(b : N * 2) linear(uval(c): N) template <int N> void foo(int (&b)[N], float *&c); |