diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/CodeGenCXX/pragma-loop.cpp | 13 | ||||
-rw-r--r-- | clang/test/Misc/ast-print-pragmas.cpp | 4 | ||||
-rw-r--r-- | clang/test/PCH/pragma-loop.cpp | 4 | ||||
-rw-r--r-- | clang/test/Parser/pragma-loop-safety.cpp | 1 | ||||
-rw-r--r-- | clang/test/Parser/pragma-loop.cpp | 19 |
5 files changed, 35 insertions, 6 deletions
diff --git a/clang/test/CodeGenCXX/pragma-loop.cpp b/clang/test/CodeGenCXX/pragma-loop.cpp index b85e0b49b9d..e337913646d 100644 --- a/clang/test/CodeGenCXX/pragma-loop.cpp +++ b/clang/test/CodeGenCXX/pragma-loop.cpp @@ -9,6 +9,7 @@ void while_test(int *List, int Length) { #pragma clang loop interleave_count(4) #pragma clang loop vectorize_width(4) #pragma clang loop unroll(full) +#pragma clang loop distribute(enable) while (i < Length) { // CHECK: br label {{.*}}, !llvm.loop ![[LOOP_1:.*]] List[i] = i * 2; @@ -20,7 +21,7 @@ void while_test(int *List, int Length) { void do_test(int *List, int Length) { int i = 0; -#pragma clang loop vectorize_width(8) interleave_count(4) unroll(disable) +#pragma clang loop vectorize_width(8) interleave_count(4) unroll(disable) distribute(disable) do { // CHECK: br i1 {{.*}}, label {{.*}}, label {{.*}}, !llvm.loop ![[LOOP_2:.*]] List[i] = i * 2; @@ -55,7 +56,7 @@ void for_range_test() { // Verify disable pragma clang loop directive generates correct metadata void disable_test(int *List, int Length) { -#pragma clang loop vectorize(disable) unroll(disable) +#pragma clang loop vectorize(disable) unroll(disable) distribute(disable) for (int i = 0; i < Length; i++) { // CHECK: br label {{.*}}, !llvm.loop ![[LOOP_5:.*]] List[i] = i * 2; @@ -157,20 +158,22 @@ void template_test(double *List, int Length) { for_template_constant_expression_test<double, 2, 4, 8>(List, Length); } -// CHECK: ![[LOOP_1]] = distinct !{![[LOOP_1]], ![[WIDTH_4:.*]], ![[INTERLEAVE_4:.*]], ![[INTENABLE_1:.*]], ![[UNROLL_FULL:.*]]} +// CHECK: ![[LOOP_1]] = distinct !{![[LOOP_1]], ![[WIDTH_4:.*]], ![[INTERLEAVE_4:.*]], ![[INTENABLE_1:.*]], ![[UNROLL_FULL:.*]], ![[DISTRIBUTE_ENABLE:.*]]} // CHECK: ![[WIDTH_4]] = !{!"llvm.loop.vectorize.width", i32 4} // CHECK: ![[INTERLEAVE_4]] = !{!"llvm.loop.interleave.count", i32 4} // CHECK: ![[INTENABLE_1]] = !{!"llvm.loop.vectorize.enable", i1 true} // CHECK: ![[UNROLL_FULL]] = !{!"llvm.loop.unroll.full"} -// CHECK: ![[LOOP_2]] = distinct !{![[LOOP_2:.*]], ![[WIDTH_8:.*]], ![[INTERLEAVE_4:.*]], ![[UNROLL_DISABLE:.*]]} +// CHECK: ![[DISTRIBUTE_ENABLE]] = !{!"llvm.loop.distribute.enable", i1 true} +// CHECK: ![[LOOP_2]] = distinct !{![[LOOP_2:.*]], ![[WIDTH_8:.*]], ![[INTERLEAVE_4:.*]], ![[UNROLL_DISABLE:.*]], ![[DISTRIBUTE_DISABLE:.*]]} // CHECK: ![[WIDTH_8]] = !{!"llvm.loop.vectorize.width", i32 8} // CHECK: ![[UNROLL_DISABLE]] = !{!"llvm.loop.unroll.disable"} +// CHECK: ![[DISTRIBUTE_DISABLE]] = !{!"llvm.loop.distribute.enable", i1 false} // CHECK: ![[LOOP_3]] = distinct !{![[LOOP_3]], ![[INTERLEAVE_4:.*]], ![[UNROLL_8:.*]], ![[INTENABLE_1:.*]]} // CHECK: ![[UNROLL_8]] = !{!"llvm.loop.unroll.count", i32 8} // CHECK: ![[LOOP_4]] = distinct !{![[LOOP_4]], ![[WIDTH_2:.*]], ![[INTERLEAVE_2:.*]]} // CHECK: ![[WIDTH_2]] = !{!"llvm.loop.vectorize.width", i32 2} // CHECK: ![[INTERLEAVE_2]] = !{!"llvm.loop.interleave.count", i32 2} -// CHECK: ![[LOOP_5]] = distinct !{![[LOOP_5]], ![[WIDTH_1:.*]], ![[UNROLL_DISABLE:.*]]} +// CHECK: ![[LOOP_5]] = distinct !{![[LOOP_5]], ![[WIDTH_1:.*]], ![[UNROLL_DISABLE:.*]], ![[DISTRIBUTE_DISABLE:.*]]} // CHECK: ![[WIDTH_1]] = !{!"llvm.loop.vectorize.width", i32 1} // CHECK: ![[LOOP_6]] = distinct !{![[LOOP_6]], ![[WIDTH_2:.*]], ![[INTERLEAVE_2:.*]], ![[UNROLL_8:.*]]} // CHECK: ![[LOOP_7]] = distinct !{![[LOOP_7]], ![[WIDTH_5:.*]]} diff --git a/clang/test/Misc/ast-print-pragmas.cpp b/clang/test/Misc/ast-print-pragmas.cpp index c4fe1e23b1e..5840c1a2c3b 100644 --- a/clang/test/Misc/ast-print-pragmas.cpp +++ b/clang/test/Misc/ast-print-pragmas.cpp @@ -19,7 +19,9 @@ void test(int *List, int Length) { // CHECK: #pragma clang loop interleave(disable) // CHECK-NEXT: #pragma clang loop vectorize(enable) +// CHECK-NEXT: #pragma clang loop distribute(disable) +#pragma clang loop distribute(disable) #pragma clang loop vectorize(enable) #pragma clang loop interleave(disable) // CHECK-NEXT: while (i - 1 < Length) @@ -30,7 +32,9 @@ void test(int *List, int Length) { // CHECK: #pragma clang loop interleave(enable) // CHECK-NEXT: #pragma clang loop vectorize(disable) +// CHECK-NEXT: #pragma clang loop distribute(enable) +#pragma clang loop distribute(enable) #pragma clang loop vectorize(disable) #pragma clang loop interleave(enable) // CHECK-NEXT: while (i - 2 < Length) diff --git a/clang/test/PCH/pragma-loop.cpp b/clang/test/PCH/pragma-loop.cpp index 2640020f000..5975816f69a 100644 --- a/clang/test/PCH/pragma-loop.cpp +++ b/clang/test/PCH/pragma-loop.cpp @@ -7,9 +7,11 @@ // CHECK: #pragma clang loop unroll_count(16) // CHECK: #pragma clang loop interleave_count(8) // CHECK: #pragma clang loop vectorize_width(4) +// CHECK: #pragma clang loop distribute(enable) // CHECK: #pragma clang loop unroll(disable) // CHECK: #pragma clang loop interleave(disable) // CHECK: #pragma clang loop vectorize(enable) +// CHECK: #pragma clang loop distribute(disable) // CHECK: #pragma clang loop unroll(full) // CHECK: #pragma clang loop interleave(enable) // CHECK: #pragma clang loop vectorize(disable) @@ -40,6 +42,7 @@ public: #pragma clang loop vectorize(enable) #pragma clang loop interleave(disable) #pragma clang loop unroll(disable) +#pragma clang loop distribute(enable) while (i - 1 < Length) { List[i] = i; i++; @@ -51,6 +54,7 @@ public: #pragma clang loop vectorize(disable) #pragma clang loop interleave(enable) #pragma clang loop unroll(full) +#pragma clang loop distribute(disable) while (i - 3 < Length) { List[i] = i; i++; diff --git a/clang/test/Parser/pragma-loop-safety.cpp b/clang/test/Parser/pragma-loop-safety.cpp index 0776000e512..ab87dcdcb63 100644 --- a/clang/test/Parser/pragma-loop-safety.cpp +++ b/clang/test/Parser/pragma-loop-safety.cpp @@ -16,6 +16,7 @@ void test(int *List, int Length) { /* expected-error {{expected ')'}} */ #pragma clang loop interleave(assume_safety /* expected-error {{invalid argument; expected 'enable', 'full' or 'disable'}} */ #pragma clang loop unroll(assume_safety) +/* expected-error {{invalid argument; expected 'enable' or 'disable'}} */ #pragma clang loop distribute(assume_safety) /* expected-error {{invalid argument; expected 'enable', 'assume_safety' or 'disable'}} */ #pragma clang loop vectorize(badidentifier) /* expected-error {{invalid argument; expected 'enable', 'assume_safety' or 'disable'}} */ #pragma clang loop interleave(badidentifier) diff --git a/clang/test/Parser/pragma-loop.cpp b/clang/test/Parser/pragma-loop.cpp index b9b5b41efba..f42d196ce8b 100644 --- a/clang/test/Parser/pragma-loop.cpp +++ b/clang/test/Parser/pragma-loop.cpp @@ -116,15 +116,27 @@ void test(int *List, int Length) { VList[j] = List[j]; } +#pragma clang loop distribute(enable) + for (int j : VList) { + VList[j] = List[j]; + } + +#pragma clang loop distribute(disable) + for (int j : VList) { + VList[j] = List[j]; + } + test_nontype_template_param<4, 8>(List, Length); /* expected-error {{expected '('}} */ #pragma clang loop vectorize /* expected-error {{expected '('}} */ #pragma clang loop interleave /* expected-error {{expected '('}} */ #pragma clang loop unroll +/* expected-error {{expected '('}} */ #pragma clang loop distribute /* expected-error {{expected ')'}} */ #pragma clang loop vectorize(enable /* expected-error {{expected ')'}} */ #pragma clang loop interleave(enable /* expected-error {{expected ')'}} */ #pragma clang loop unroll(full +/* expected-error {{expected ')'}} */ #pragma clang loop distribute(enable /* expected-error {{expected ')'}} */ #pragma clang loop vectorize_width(4 /* expected-error {{expected ')'}} */ #pragma clang loop interleave_count(4 @@ -133,8 +145,9 @@ void test(int *List, int Length) { /* expected-error {{missing argument; expected 'enable', 'assume_safety' or 'disable'}} */ #pragma clang loop vectorize() /* expected-error {{missing argument; expected an integer value}} */ #pragma clang loop interleave_count() /* expected-error {{missing argument; expected 'enable', 'full' or 'disable'}} */ #pragma clang loop unroll() +/* expected-error {{missing argument; expected 'enable' or 'disable'}} */ #pragma clang loop distribute() -/* expected-error {{missing option; expected vectorize, vectorize_width, interleave, interleave_count, unroll, or unroll_count}} */ #pragma clang loop +/* expected-error {{missing option; expected vectorize, vectorize_width, interleave, interleave_count, unroll, unroll_count, or distribute}} */ #pragma clang loop /* expected-error {{invalid option 'badkeyword'}} */ #pragma clang loop badkeyword /* expected-error {{invalid option 'badkeyword'}} */ #pragma clang loop badkeyword(enable) /* expected-error {{invalid option 'badkeyword'}} */ #pragma clang loop vectorize(enable) badkeyword(4) @@ -187,6 +200,7 @@ const int VV = 4; /* expected-error {{invalid argument; expected 'enable', 'assume_safety' or 'disable'}} */ #pragma clang loop vectorize(badidentifier) /* expected-error {{invalid argument; expected 'enable', 'assume_safety' or 'disable'}} */ #pragma clang loop interleave(badidentifier) /* expected-error {{invalid argument; expected 'enable', 'full' or 'disable'}} */ #pragma clang loop unroll(badidentifier) +/* expected-error {{invalid argument; expected 'enable' or 'disable'}} */ #pragma clang loop distribute(badidentifier) while (i-7 < Length) { List[i] = i; } @@ -196,6 +210,7 @@ const int VV = 4; /* expected-error {{expected ')'}} */ #pragma clang loop vectorize(() /* expected-error {{invalid argument; expected 'enable', 'assume_safety' or 'disable'}} */ #pragma clang loop interleave(*) /* expected-error {{invalid argument; expected 'enable', 'full' or 'disable'}} */ #pragma clang loop unroll(=) +/* expected-error {{invalid argument; expected 'enable' or 'disable'}} */ #pragma clang loop distribute(+) /* expected-error {{type name requires a specifier or qualifier}} expected-error {{expected expression}} */ #pragma clang loop vectorize_width(^) /* expected-error {{expected expression}} expected-error {{expected expression}} */ #pragma clang loop interleave_count(/) /* expected-error {{expected expression}} expected-error {{expected expression}} */ #pragma clang loop unroll_count(==) @@ -232,6 +247,8 @@ const int VV = 4; #pragma clang loop interleave(disable) /* expected-error {{duplicate directives 'unroll(disable)' and 'unroll(full)'}} */ #pragma clang loop unroll(full) #pragma clang loop unroll(disable) +/* expected-error {{duplicate directives 'distribute(disable)' and 'distribute(enable)'}} */ #pragma clang loop distribute(enable) +#pragma clang loop distribute(disable) while (i-9 < Length) { List[i] = i; } |