|
19 | 19 | ! RUN: %flang %s -O2 -Rpass=loop -S %{output} 2>&1 | FileCheck %s --check-prefix=PASS-REGEX-LOOP-ONLY
|
20 | 20 |
|
21 | 21 | ! Check valid -Rpass-missed regex
|
| 22 | +! UNSUPPORTED: target=riscv{{.*}} |
22 | 23 | ! RUN: %flang %s -O2 -Rpass-missed=loop -S %{output} 2>&1 | FileCheck %s --check-prefix=MISSED-REGEX-LOOP-ONLY
|
23 | 24 |
|
24 | 25 | ! Check valid -Rpass-analysis regex
|
|
40 | 41 | ! With plain -Rpass, -Rpass-missed or -Rpass-analysis, we expect remarks related to 2 opportunities (loop vectorisation / loop delete and load hoisting).
|
41 | 42 | ! Once we start filtering, this is reduced to 1 one of the loop passes.
|
42 | 43 |
|
43 |
| -! PASS-REGEX-LOOP-ONLY-NOT: optimization-remark.f90:77:7: remark: hoisting load [-Rpass=licm] |
44 |
| -! PASS-REGEX-LOOP-ONLY: optimization-remark.f90:79:5: remark: Loop deleted because it is invariant [-Rpass=loop-delete] |
| 44 | +! PASS-REGEX-LOOP-ONLY-NOT: optimization-remark.f90:78:7: remark: hoisting load [-Rpass=licm] |
| 45 | +! PASS-REGEX-LOOP-ONLY: optimization-remark.f90:80:5: remark: Loop deleted because it is invariant [-Rpass=loop-delete] |
45 | 46 |
|
46 |
| -! MISSED-REGEX-LOOP-ONLY-NOT: optimization-remark.f90:77:7: remark: failed to hoist load with loop-invariant address because load is conditionally executed [-Rpass-missed=licm] |
47 |
| -! MISSED-REGEX-LOOP-ONLY: optimization-remark.f90:72:4: remark: loop not vectorized [-Rpass-missed=loop-vectorize] |
| 47 | +! MISSED-REGEX-LOOP-ONLY-NOT: optimization-remark.f90:78:7: remark: failed to hoist load with loop-invariant address because load is conditionally executed [-Rpass-missed=licm] |
| 48 | +! MISSED-REGEX-LOOP-ONLY: optimization-remark.f90:73:4: remark: loop not vectorized [-Rpass-missed=loop-vectorize] |
48 | 49 |
|
49 | 50 |
|
50 |
| -! ANALYSIS-REGEX-LOOP-ONLY: optimization-remark.f90:74:7: remark: loop not vectorized: unsafe dependent memory operations in loop |
| 51 | +! ANALYSIS-REGEX-LOOP-ONLY: optimization-remark.f90:75:7: remark: loop not vectorized: unsafe dependent memory operations in loop |
51 | 52 | ! ANALYSIS-REGEX-LOOP-ONLY-NOT: remark: {{.*}}: IR instruction count changed from {{[0-9]+}} to {{[0-9]+}}; Delta: {{-?[0-9]+}} [-Rpass-analysis=size-info]
|
52 | 53 |
|
53 |
| -! PASS: optimization-remark.f90:79:5: remark: Loop deleted because it is invariant [-Rpass=loop-delete] |
| 54 | +! PASS: optimization-remark.f90:80:5: remark: Loop deleted because it is invariant [-Rpass=loop-delete] |
54 | 55 |
|
55 |
| -! MISSED: optimization-remark.f90:73:7: remark: failed to hoist load with loop-invariant address |
56 |
| -! MISSED: optimization-remark.f90:72:4: remark: loop not vectorized [-Rpass-missed=loop-vectorize] |
57 |
| -! MISSED-NOT: optimization-remark.f90:75:7: remark: loop not vectorized: 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 |
| 56 | +! MISSED: optimization-remark.f90:74:7: remark: failed to hoist load with loop-invariant address |
| 57 | +! MISSED: optimization-remark.f90:73:4: remark: loop not vectorized [-Rpass-missed=loop-vectorize] |
| 58 | +! MISSED-NOT: optimization-remark.f90:76:7: remark: loop not vectorized: 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 |
58 | 59 | ! MISSED-NOT: Unknown data dependence. Memory location is the same as accessed at optimization-remark.f90:78:7 [-Rpass-analysis=loop-vectorize]
|
59 | 60 |
|
60 |
| -! ANALYSIS: optimization-remark.f90:74:7: remark: loop not vectorized: unsafe dependent memory operations in loop. |
| 61 | +! ANALYSIS: optimization-remark.f90:75:7: remark: loop not vectorized: unsafe dependent memory operations in loop. |
61 | 62 | ! ANALYSIS: remark: {{.*}} instructions in function [-Rpass-analysis=asm-printer]
|
62 | 63 |
|
63 | 64 | subroutine swap_real(a1, a2)
|
|
0 commit comments