|
4 | 4 | define void @test_invar_dependence_before_positive_strided_access_1(ptr %a) {
|
5 | 5 | ; CHECK-LABEL: 'test_invar_dependence_before_positive_strided_access_1'
|
6 | 6 | ; CHECK-NEXT: loop:
|
7 |
| -; CHECK-NEXT: Memory dependences are safe |
| 7 | +; CHECK-NEXT: Report: unsafe dependent memory operations in loop. Use #pragma clang loop distribute(enable) to allow loop distribution to attempt to isolate the offending operations into a separate loop |
| 8 | +; CHECK-NEXT: Unknown data dependence. |
8 | 9 | ; CHECK-NEXT: Dependences:
|
| 10 | +; CHECK-NEXT: Unknown: |
| 11 | +; CHECK-NEXT: %l = load i32, ptr %a, align 4 -> |
| 12 | +; CHECK-NEXT: store i32 %l, ptr %gep, align 4 |
| 13 | +; CHECK-EMPTY: |
9 | 14 | ; CHECK-NEXT: Run-time memory checks:
|
10 | 15 | ; CHECK-NEXT: Grouped accesses:
|
11 | 16 | ; CHECK-EMPTY:
|
|
34 | 39 | define void @test_invar_dependence_before_positive_strided_access_2(ptr %a) {
|
35 | 40 | ; CHECK-LABEL: 'test_invar_dependence_before_positive_strided_access_2'
|
36 | 41 | ; CHECK-NEXT: loop:
|
37 |
| -; CHECK-NEXT: Memory dependences are safe |
| 42 | +; CHECK-NEXT: Report: unsafe dependent memory operations in loop. Use #pragma clang loop distribute(enable) to allow loop distribution to attempt to isolate the offending operations into a separate loop |
| 43 | +; CHECK-NEXT: Unknown data dependence. |
38 | 44 | ; CHECK-NEXT: Dependences:
|
| 45 | +; CHECK-NEXT: Unknown: |
| 46 | +; CHECK-NEXT: %l = load i32, ptr %gep, align 4 -> |
| 47 | +; CHECK-NEXT: store i32 %l, ptr %a, align 4 |
| 48 | +; CHECK-EMPTY: |
39 | 49 | ; CHECK-NEXT: Run-time memory checks:
|
40 | 50 | ; CHECK-NEXT: Grouped accesses:
|
41 | 51 | ; CHECK-EMPTY:
|
@@ -134,8 +144,13 @@ exit:
|
134 | 144 | define void @test_invar_dependence_before_positive_strided_access_1_different_access_sizes(ptr %a) {
|
135 | 145 | ; CHECK-LABEL: 'test_invar_dependence_before_positive_strided_access_1_different_access_sizes'
|
136 | 146 | ; CHECK-NEXT: loop:
|
137 |
| -; CHECK-NEXT: Memory dependences are safe |
| 147 | +; CHECK-NEXT: Report: unsafe dependent memory operations in loop. Use #pragma clang loop distribute(enable) to allow loop distribution to attempt to isolate the offending operations into a separate loop |
| 148 | +; CHECK-NEXT: Unknown data dependence. |
138 | 149 | ; CHECK-NEXT: Dependences:
|
| 150 | +; CHECK-NEXT: Unknown: |
| 151 | +; CHECK-NEXT: %l = load i32, ptr %a, align 4 -> |
| 152 | +; CHECK-NEXT: store i8 %t, ptr %gep, align 1 |
| 153 | +; CHECK-EMPTY: |
139 | 154 | ; CHECK-NEXT: Run-time memory checks:
|
140 | 155 | ; CHECK-NEXT: Grouped accesses:
|
141 | 156 | ; CHECK-EMPTY:
|
@@ -201,8 +216,13 @@ exit:
|
201 | 216 | define void @test_invar_dependence_before_negative_strided_access_1(ptr %a) {
|
202 | 217 | ; CHECK-LABEL: 'test_invar_dependence_before_negative_strided_access_1'
|
203 | 218 | ; CHECK-NEXT: loop:
|
204 |
| -; CHECK-NEXT: Memory dependences are safe |
| 219 | +; CHECK-NEXT: Report: unsafe dependent memory operations in loop. Use #pragma clang loop distribute(enable) to allow loop distribution to attempt to isolate the offending operations into a separate loop |
| 220 | +; CHECK-NEXT: Unknown data dependence. |
205 | 221 | ; CHECK-NEXT: Dependences:
|
| 222 | +; CHECK-NEXT: Unknown: |
| 223 | +; CHECK-NEXT: %l = load i32, ptr %a, align 4 -> |
| 224 | +; CHECK-NEXT: store i32 %l, ptr %gep, align 4 |
| 225 | +; CHECK-EMPTY: |
206 | 226 | ; CHECK-NEXT: Run-time memory checks:
|
207 | 227 | ; CHECK-NEXT: Grouped accesses:
|
208 | 228 | ; CHECK-EMPTY:
|
@@ -231,8 +251,13 @@ exit:
|
231 | 251 | define void @test_invar_dependence_before_negative_strided_access_2(ptr %a) {
|
232 | 252 | ; CHECK-LABEL: 'test_invar_dependence_before_negative_strided_access_2'
|
233 | 253 | ; CHECK-NEXT: loop:
|
234 |
| -; CHECK-NEXT: Memory dependences are safe |
| 254 | +; CHECK-NEXT: Report: unsafe dependent memory operations in loop. Use #pragma clang loop distribute(enable) to allow loop distribution to attempt to isolate the offending operations into a separate loop |
| 255 | +; CHECK-NEXT: Unknown data dependence. |
235 | 256 | ; CHECK-NEXT: Dependences:
|
| 257 | +; CHECK-NEXT: Unknown: |
| 258 | +; CHECK-NEXT: %l = load i32, ptr %gep, align 4 -> |
| 259 | +; CHECK-NEXT: store i32 %l, ptr %a, align 4 |
| 260 | +; CHECK-EMPTY: |
236 | 261 | ; CHECK-NEXT: Run-time memory checks:
|
237 | 262 | ; CHECK-NEXT: Grouped accesses:
|
238 | 263 | ; CHECK-EMPTY:
|
@@ -332,8 +357,13 @@ exit:
|
332 | 357 | define void @test_both_invar_before_1(ptr %a) {
|
333 | 358 | ; CHECK-LABEL: 'test_both_invar_before_1'
|
334 | 359 | ; CHECK-NEXT: loop:
|
335 |
| -; CHECK-NEXT: Memory dependences are safe |
| 360 | +; CHECK-NEXT: Report: unsafe dependent memory operations in loop. Use #pragma clang loop distribute(enable) to allow loop distribution to attempt to isolate the offending operations into a separate loop |
| 361 | +; CHECK-NEXT: Unknown data dependence. |
336 | 362 | ; CHECK-NEXT: Dependences:
|
| 363 | +; CHECK-NEXT: Unknown: |
| 364 | +; CHECK-NEXT: %l = load i32, ptr %a, align 4 -> |
| 365 | +; CHECK-NEXT: store i32 %l, ptr %gep.off, align 4 |
| 366 | +; CHECK-EMPTY: |
337 | 367 | ; CHECK-NEXT: Run-time memory checks:
|
338 | 368 | ; CHECK-NEXT: Grouped accesses:
|
339 | 369 | ; CHECK-EMPTY:
|
@@ -361,8 +391,13 @@ exit:
|
361 | 391 | define void @test_both_invar_before_2(ptr %a) {
|
362 | 392 | ; CHECK-LABEL: 'test_both_invar_before_2'
|
363 | 393 | ; CHECK-NEXT: loop:
|
364 |
| -; CHECK-NEXT: Memory dependences are safe |
| 394 | +; CHECK-NEXT: Report: unsafe dependent memory operations in loop. Use #pragma clang loop distribute(enable) to allow loop distribution to attempt to isolate the offending operations into a separate loop |
| 395 | +; CHECK-NEXT: Unknown data dependence. |
365 | 396 | ; CHECK-NEXT: Dependences:
|
| 397 | +; CHECK-NEXT: Unknown: |
| 398 | +; CHECK-NEXT: %l = load i32, ptr %gep.off, align 4 -> |
| 399 | +; CHECK-NEXT: store i32 %l, ptr %a, align 4 |
| 400 | +; CHECK-EMPTY: |
366 | 401 | ; CHECK-NEXT: Run-time memory checks:
|
367 | 402 | ; CHECK-NEXT: Grouped accesses:
|
368 | 403 | ; CHECK-EMPTY:
|
@@ -723,8 +758,13 @@ exit:
|
723 | 758 | define void @test_invar_vector_dependence_before_positive_strided_access_1(ptr %a) {
|
724 | 759 | ; CHECK-LABEL: 'test_invar_vector_dependence_before_positive_strided_access_1'
|
725 | 760 | ; CHECK-NEXT: loop:
|
726 |
| -; CHECK-NEXT: Memory dependences are safe |
| 761 | +; CHECK-NEXT: Report: unsafe dependent memory operations in loop. Use #pragma clang loop distribute(enable) to allow loop distribution to attempt to isolate the offending operations into a separate loop |
| 762 | +; CHECK-NEXT: Unknown data dependence. |
727 | 763 | ; CHECK-NEXT: Dependences:
|
| 764 | +; CHECK-NEXT: Unknown: |
| 765 | +; CHECK-NEXT: %l = load <4 x i8>, ptr %a, align 4 -> |
| 766 | +; CHECK-NEXT: store i32 0, ptr %gep, align 4 |
| 767 | +; CHECK-EMPTY: |
728 | 768 | ; CHECK-NEXT: Run-time memory checks:
|
729 | 769 | ; CHECK-NEXT: Grouped accesses:
|
730 | 770 | ; CHECK-EMPTY:
|
|
0 commit comments