diff options
Diffstat (limited to 'test/PCH/pragma-loop.cpp')
-rw-r--r-- | test/PCH/pragma-loop.cpp | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/test/PCH/pragma-loop.cpp b/test/PCH/pragma-loop.cpp index 1456a27..2640020 100644 --- a/test/PCH/pragma-loop.cpp +++ b/test/PCH/pragma-loop.cpp @@ -10,11 +10,14 @@ // CHECK: #pragma clang loop unroll(disable) // CHECK: #pragma clang loop interleave(disable) // CHECK: #pragma clang loop vectorize(enable) -// CHECK: #pragma clang loop unroll(enable) +// CHECK: #pragma clang loop unroll(full) // CHECK: #pragma clang loop interleave(enable) // CHECK: #pragma clang loop vectorize(disable) // CHECK: #pragma unroll // CHECK: #pragma unroll (32) +// CHECK: #pragma nounroll +// CHECK: #pragma clang loop interleave_count(I) +// CHECK: #pragma clang loop vectorize_width(V) #ifndef HEADER #define HEADER @@ -47,7 +50,7 @@ public: int i = 0; #pragma clang loop vectorize(disable) #pragma clang loop interleave(enable) -#pragma clang loop unroll(enable) +#pragma clang loop unroll(full) while (i - 3 < Length) { List[i] = i; i++; @@ -71,8 +74,25 @@ public: i++; } } -}; + inline void run6(int *List, int Length) { + int i = 0; +#pragma nounroll + while (i - 3 < Length) { + List[i] = i; + i++; + } + } + + template <int V, int I> + inline void run7(int *List, int Length) { +#pragma clang loop vectorize_width(V) +#pragma clang loop interleave_count(I) + for (int i = 0; i < Length; i++) { + List[i] = i; + } + } +}; #else void test() { @@ -85,6 +105,8 @@ void test() { pt.run3(List, 100); pt.run4(List, 100); pt.run5(List, 100); + pt.run6(List, 100); + pt.run7<2, 4>(List, 100); } #endif |