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 1456a2778f33..2640020f0007 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 | 
