[llvm-branch-commits] [llvm] [LoopInterchange] Reject if inner loop IV has outer-variant step (PR #202751)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Jun 11 04:55:34 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 135597 tests passed
* 3418 tests skipped
* 44 tests failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.Transforms/LoopInterchange/call-instructions.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\call-instructions.ll -passes=loop-interchange -S -verify-dom-info -verify-loop-info 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\call-instructions.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -S -verify-dom-info -verify-loop-info
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\call-instructions.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\call-instructions.ll:32:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR1_HEADER:.*]]
# | ^
# | <stdin>:18:2: note: 'next' match was here
# | br label %for2
# | ^
# | <stdin>:16:13: note: previous match ended here
# | for1.header: ; preds = %for1.inc10, %entry
# | ^
# | <stdin>:17:1: note: non-matching line after previous match is here
# | %indvars.iv23 = phi i64 [ 0, %entry ], [ %indvars.iv.next24, %for1.inc10 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\call-instructions.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 13: entry:
# | 14: br label %for1.header
# | 15:
# | 16: for1.header: ; preds = %for1.inc10, %entry
# | 17: %indvars.iv23 = phi i64 [ 0, %entry ], [ %indvars.iv.next24, %for1.inc10 ]
# | 18: br label %for2
# | next:32 !~~~~~~~~~~~~~ error: match on wrong line
# | 19:
# | 20: for2: ; preds = %for2, %for1.header
# | 21: %indvars.iv = phi i64 [ %indvars.iv.next, %for2 ], [ 1, %for1.header ]
# | 22: call void @bar(i64 %indvars.iv23)
# | 23: %arrayidx5 = getelementptr inbounds [100 x [100 x i32]], ptr @A, i64 0, i64 %indvars.iv, i64 %indvars.iv23
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/debuginfo.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\debuginfo.ll -passes=loop-interchange -cache-line-size=64 -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\debuginfo.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\debuginfo.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\debuginfo.ll:18:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR1_HEADER:.*]]
# | ^
# | <stdin>:14:2: note: 'next' match was here
# | br label %for2
# | ^
# | <stdin>:11:13: note: previous match ended here
# | for1.header: ; preds = %for1.inc10, %entry
# | ^
# | <stdin>:12:1: note: non-matching line after previous match is here
# | %j23 = phi i64 [ 0, %entry ], [ %j.next24, %for1.inc10 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\debuginfo.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 9: br label %for1.header
# | 10:
# | 11: for1.header: ; preds = %for1.inc10, %entry
# | 12: %j23 = phi i64 [ 0, %entry ], [ %j.next24, %for1.inc10 ]
# | 13: #dbg_value(i64 %j, !13, !DIExpression(), !14)
# | 14: br label %for2
# | next:18 !~~~~~~~~~~~~~ error: match on wrong line
# | 15:
# | 16: for2: ; preds = %for2, %for1.header
# | 17: %j = phi i64 [ %j.next, %for2 ], [ 0, %for1.header ]
# | 18: #dbg_value(i64 %j, !13, !DIExpression(), !14)
# | 19: %arrayidx5 = getelementptr inbounds [100 x [100 x i64]], ptr @A, i64 0, i64 %j, i64 %j23
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/delay-cachecost-calculation.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-interchange -debug -disable-output -loop-interchange-profitabilities=cache C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\delay-cachecost-calculation.ll 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\delay-cachecost-calculation.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -debug -disable-output -loop-interchange-profitabilities=cache 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\delay-cachecost-calculation.ll'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\delay-cachecost-calculation.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\delay-cachecost-calculation.ll:14:10: error: CHECK: expected string not found in input
# | ; CHECK: Loops 'for.i.header' and 'for.j' are legal to interchange
# | ^
# | <stdin>:1:1: note: scanning from here
# | Args: c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-interchange -debug -disable-output -loop-interchange-profitabilities=cache C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\delay-cachecost-calculation.ll
# | ^
# | <stdin>:59:1: note: possible intended match here
# | Loop 'for.i.header' and 'for.j' are perfectly nested.
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\delay-cachecost-calculation.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: Args: c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-interchange -debug -disable-output -loop-interchange-profitabilities=cache C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\delay-cachecost-calculation.ll
# | check:14'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 2: Get maximum perfect depth of loop nest rooted by loop 'for.i.header'
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 3: Checking whether loop 'for.i.header' and 'for.j' are perfectly nested.
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 4: Outer loop latch compare instruction: %i.exit = icmp eq i32 %i.next, 16
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 5: Instruction: %i = phi i32 [ 0, %entry ], [ %i.next, %for.i.latch ]
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 6: in basic block:
# | check:14'0 ~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 54: for.i.latch: ; preds = %for.j
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 55: %i.next = add i32 %i, 1
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | 56: %i.exit = icmp eq i32 %i.next, 16
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 57: br i1 %i.exit, label %exit, label %for.i.header
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 58: is unsafe.
# | check:14'0 ~~~~~~~~~~~
# | 59: Loop 'for.i.header' and 'for.j' are perfectly nested.
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:14'1 ? possible intended match
# | 60: Processing LoopList of size = 2 containing the following loops:
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 61: - Loop at depth 1 containing: %for.i.header<header>,%for.j,%for.i.latch<latch><exiting>
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 62: Loop at depth 2 containing: %for.j<header><latch><exiting>
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 63: - Loop at depth 2 containing: %for.j<header><latch><exiting>
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 64: Found 2 Loads and Stores to analyze
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/force-interchange.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\force-interchange.ll -passes=loop-interchange -loop-interchange-profitabilities=ignore -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\force-interchange.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -loop-interchange-profitabilities=ignore -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\force-interchange.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\force-interchange.ll:17:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[OUTER_HEADER:.*]]
# | ^
# | <stdin>:12:2: note: 'next' match was here
# | br label %inner.body
# | ^
# | <stdin>:10:14: note: previous match ended here
# | outer.header: ; preds = %inner.header, %entry
# | ^
# | <stdin>:11:1: note: non-matching line after previous match is here
# | %i = phi i64 [ 0, %entry ], [ %i.next, %inner.header ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\force-interchange.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 7: entry:
# | 8: br label %outer.header
# | 9:
# | 10: outer.header: ; preds = %inner.header, %entry
# | 11: %i = phi i64 [ 0, %entry ], [ %i.next, %inner.header ]
# | 12: br label %inner.body
# | next:17 !~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 13:
# | 14: inner.header: ; preds = %inner.body
# | 15: %i.next = add nuw nsw i64 %i, 1
# | 16: %exitcond20.not = icmp eq i64 %i.next, 1024
# | 17: br i1 %exitcond20.not, label %exit, label %outer.header
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/fp-reductions.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\fp-reductions.ll -passes=loop-interchange -cache-line-size=64 -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\fp-reductions.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\fp-reductions.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\fp-reductions.ll:75:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:40:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:37:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:38:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\fp-reductions.ll:144:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:69:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:66:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:67:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\fp-reductions.ll:273:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:127:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:124:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:125:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\fp-reductions.ll:406:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:187:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:184:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:185:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\fp-reductions.ll:482:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:218:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:215:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:216:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\fp-reductions.ll:551:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:248:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:245:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:246:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\fp-reductions.ll:623:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:277:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:274:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:275:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\fp-reductions.ll:692:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:307:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:304:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:305:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\fp-reductions.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 35: br label %for.i.header
# | 36:
# | 37: for.i.header: ; preds = %for.i.latch, %entry
# | 38: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 39: %sum.i = phi float [ 0.000000e+00, %entry ], [ %sum.i.lcssa, %for.i.latch ]
# | 40: br label %for.j
# | next:75 !~~~~~~~~~~~~~~ error: match on wrong line
# | 41:
# | 42: for.j: ; preds = %for.j, %for.i.header
# | 43: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 44: %sum.j = phi float [ %sum.i, %for.i.header ], [ %sum.j.next, %for.j ]
# | 45: %idx = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | 64: br label %for.i.header
# | 65:
# | 66: for.i.header: ; preds = %for.i.latch, %entry
# | 67: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 68: %sum.i = phi float [ 0.000000e+00, %entry ], [ %sum.i.lcssa, %for.i.latch ]
# | 69: br label %for.j
# | next:144 !~~~~~~~~~~~~~~ error: match on wrong line
# | 70:
# | 71: for.j: ; preds = %for.j, %for.i.header
# | 72: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 73: %sum.j = phi float [ %sum.i, %for.i.header ], [ %sum.j.next, %for.j ]
# | 74: %idx = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | 122: br label %for.i.header
# | 123:
# | 124: for.i.header: ; preds = %for.i.latch, %entry
# | 125: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 126: %prod.i = phi float [ 1.000000e+00, %entry ], [ %prod.i.lcssa, %for.i.latch ]
# | 127: br label %for.j
# | next:273 !~~~~~~~~~~~~~~ error: match on wrong line
# | 128:
# | 129: for.j: ; preds = %for.j, %for.i.header
# | 130: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 131: %prod.j = phi float [ %prod.i, %for.i.header ], [ %prod.j.next, %for.j ]
# | 132: %idx = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | 182: br label %for.i.header
# | 183:
# | 184: for.i.header: ; preds = %for.i.latch, %entry
# | 185: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 186: %fmuladd.i = phi float [ 1.000000e+00, %entry ], [ %fmuladd.i.lcssa, %for.i.latch ]
# | 187: br label %for.j
# | next:406 !~~~~~~~~~~~~~~ error: match on wrong line
# | 188:
# | 189: for.j: ; preds = %for.j, %for.i.header
# | 190: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 191: %fmuladd.j = phi float [ %fmuladd.i, %for.i.header ], [ %fmuladd.j.next, %for.j ]
# | 192: %idx.a = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | 213: br label %for.i.header
# | 214:
# | 215: for.i.header: ; preds = %for.i.latch, %entry
# | 216: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 217: %fmin.i = phi float [ %init, %entry ], [ %fmin.i.lcssa, %for.i.latch ]
# | 218: br label %for.j
# | next:482 !~~~~~~~~~~~~~~ error: match on wrong line
# | 219:
# | 220: for.j: ; preds = %for.j, %for.i.header
# | 221: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 222: %fmin.j = phi float [ %fmin.i, %for.i.header ], [ %fmin.j.next, %for.j ]
# | 223: %idx = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | 243: br label %for.i.header
# | 244:
# | 245: for.i.header: ; preds = %for.i.latch, %entry
# | 246: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 247: %fmin.i = phi float [ %init, %entry ], [ %fmin.i.lcssa, %for.i.latch ]
# | 248: br label %for.j
# | next:551 !~~~~~~~~~~~~~~ error: match on wrong line
# | 249:
# | 250: for.j: ; preds = %for.j, %for.i.header
# | 251: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 252: %fmin.j = phi float [ %fmin.i, %for.i.header ], [ %fmin.j.next, %for.j ]
# | 253: %idx = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | 272: br label %for.i.header
# | 273:
# | 274: for.i.header: ; preds = %for.i.latch, %entry
# | 275: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 276: %fmax.i = phi float [ %init, %entry ], [ %fmax.i.lcssa, %for.i.latch ]
# | 277: br label %for.j
# | next:623 !~~~~~~~~~~~~~~ error: match on wrong line
# | 278:
# | 279: for.j: ; preds = %for.j, %for.i.header
# | 280: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 281: %fmax.j = phi float [ %fmax.i, %for.i.header ], [ %fmax.j.next, %for.j ]
# | 282: %idx = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | 302: br label %for.i.header
# | 303:
# | 304: for.i.header: ; preds = %for.i.latch, %entry
# | 305: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 306: %fmax.i = phi float [ %init, %entry ], [ %fmax.i.lcssa, %for.i.latch ]
# | 307: br label %for.j
# | next:692 !~~~~~~~~~~~~~~ error: match on wrong line
# | 308:
# | 309: for.j: ; preds = %for.j, %for.i.header
# | 310: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 311: %fmax.j = phi float [ %fmax.i, %for.i.header ], [ %fmax.j.next, %for.j ]
# | 312: %idx = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/function-attr.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\function-attr.ll -passes=loop-interchange -loop-interchange-profitabilities=ignore -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\function-attr.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -loop-interchange-profitabilities=ignore -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\function-attr.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\function-attr.ll:71:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[OUTER_HEADER:.*]]
# | ^
# | <stdin>:36:2: note: 'next' match was here
# | br label %inner
# | ^
# | <stdin>:34:14: note: previous match ended here
# | outer.header: ; preds = %outer.latch, %entry
# | ^
# | <stdin>:35:1: note: non-matching line after previous match is here
# | %i = phi i64 [ 0, %entry ], [ %i.next, %outer.latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\function-attr.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 31: entry:
# | 32: br label %outer.header
# | 33:
# | 34: outer.header: ; preds = %outer.latch, %entry
# | 35: %i = phi i64 [ 0, %entry ], [ %i.next, %outer.latch ]
# | 36: br label %inner
# | next:71 !~~~~~~~~~~~~~~ error: match on wrong line
# | 37:
# | 38: inner: ; preds = %inner, %outer.header
# | 39: %j = phi i64 [ 0, %outer.header ], [ %j.next, %inner ]
# | 40: %gep.A = getelementptr [100 x i32], ptr %A, i64 %j, i64 %i
# | 41: store i32 0, ptr %gep.A, align 4
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/guarded-inner-loop.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\guarded-inner-loop.ll -passes=loop-interchange -loop-interchange-profitabilities=ignore -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\guarded-inner-loop.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -loop-interchange-profitabilities=ignore -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\guarded-inner-loop.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\guarded-inner-loop.ll:27:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I:.*]]
# | ^
# | <stdin>:18:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:12:7: note: previous match ended here
# | for.i: ; preds = %for.i.inc, %entry
# | ^
# | <stdin>:13:1: note: non-matching line after previous match is here
# | %i = phi i32 [ %i.next, %for.i.inc ], [ 0, %entry ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\guarded-inner-loop.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 13: %i = phi i32 [ %i.next, %for.i.inc ], [ 0, %entry ]
# | 14: %i.is.zero = icmp eq i32 %i, 0
# | 15: %xbase = getelementptr [9 x i32], ptr @x, i32 %i
# | 16: %wbase = getelementptr [9 x i32], ptr @w, i32 %i
# | 17: %ybase = getelementptr [3 x i32], ptr @y, i32 %i
# | 18: br label %for.j
# | next:27 !~~~~~~~~~~~~~~ error: match on wrong line
# | 19:
# | 20: for.j: ; preds = %for.j.inc, %for.i
# | 21: %j = phi i32 [ %j.next, %for.j.inc ], [ 0, %for.i ]
# | 22: br i1 %i.is.zero, label %for.j.inc, label %for.k.ph
# | 23:
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/inner-indvar-depend-on-outer-indvar-remark.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\inner-indvar-depend-on-outer-indvar-remark.ll -passes=loop-interchange -verify-dom-info -verify-loop-info -S -debug 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\inner-indvar-depend-on-outer-indvar-remark.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -verify-dom-info -verify-loop-info -S -debug
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\inner-indvar-depend-on-outer-indvar-remark.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\inner-indvar-depend-on-outer-indvar-remark.ll:14:10: error: CHECK: expected string not found in input
# | ; CHECK: Loop structure not understood by pass
# | ^
# | <stdin>:1:1: note: scanning from here
# | Args: c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-interchange -verify-dom-info -verify-loop-info -S -debug
# | ^
# | <stdin>:2:16: note: possible intended match here
# | Get maximum perfect depth of loop nest rooted by loop 'for1.header'
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\inner-indvar-depend-on-outer-indvar-remark.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: Args: c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-interchange -verify-dom-info -verify-loop-info -S -debug
# | check:14'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 2: Get maximum perfect depth of loop nest rooted by loop 'for1.header'
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:14'1 ? possible intended match
# | 3: Checking whether loop 'for1.header' and 'for2' are perfectly nested.
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 4: Outer loop latch compare instruction: %exitcond26 = icmp eq i64 %i, 99
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 5: Instruction: %i = phi i64 [ 0, %entry ], [ %i.next, %for1.inc10 ]
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 6: in basic block:
# | check:14'0 ~~~~~~~~~~~~~~~~
# | 7: for1.header: ; preds = %for1.inc10, %entry
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/inner-indvar-depend-on-outer-indvar.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\inner-indvar-depend-on-outer-indvar.ll -passes=loop-interchange -verify-dom-info -verify-loop-info -S -da-enable-dependence-test=all 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\inner-indvar-depend-on-outer-indvar.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -verify-dom-info -verify-loop-info -S -da-enable-dependence-test=all
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\inner-indvar-depend-on-outer-indvar.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\inner-indvar-depend-on-outer-indvar.ll:17:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR1_HEADER:.*]]
# | ^
# | <stdin>:14:2: note: 'next' match was here
# | br label %for2
# | ^
# | <stdin>:12:13: note: previous match ended here
# | for1.header: ; preds = %for1.inc10, %entry
# | ^
# | <stdin>:13:1: note: non-matching line after previous match is here
# | %i = phi i64 [ 0, %entry ], [ %i.next, %for1.inc10 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\inner-indvar-depend-on-outer-indvar.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 9: %0 = load i64, ptr @N, align 4
# | 10: br label %for1.header
# | 11:
# | 12: for1.header: ; preds = %for1.inc10, %entry
# | 13: %i = phi i64 [ 0, %entry ], [ %i.next, %for1.inc10 ]
# | 14: br label %for2
# | next:17 !~~~~~~~~~~~~~ error: match on wrong line
# | 15:
# | 16: for2: ; preds = %for2, %for1.header
# | 17: %j = phi i64 [ %j.next, %for2 ], [ 0, %for1.header ]
# | 18: %arrayidx5 = getelementptr inbounds [100 x [100 x i64]], ptr @A, i64 0, i64 %j, i64 %i
# | 19: %lv = load i64, ptr %arrayidx5, align 4
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/interchange-insts-between-indvar.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchange-insts-between-indvar.ll -passes=loop-interchange -cache-line-size=64 -da-enable-dependence-test=all -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchange-insts-between-indvar.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -da-enable-dependence-test=all -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchange-insts-between-indvar.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchange-insts-between-indvar.ll:22:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_COND1_PREHEADER:.*]]
# | ^
# | <stdin>:18:2: note: 'next' match was here
# | br label %for.body4
# | ^
# | <stdin>:11:19: note: previous match ended here
# | for.cond.loopexit: ; preds = %for.body4
# | ^
# | <stdin>:12:1: note: non-matching line after previous match is here
# | %exitcond28 = icmp ne i64 %indvars.iv.next27, 2
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchange-insts-between-indvar.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 13: br i1 %exitcond28, label %for.cond1.preheader, label %for.cond.cleanup
# | 14:
# | 15: for.cond1.preheader: ; preds = %for.cond.loopexit, %entry
# | 16: %indvars.iv26 = phi i64 [ 0, %entry ], [ %indvars.iv.next27, %for.cond.loopexit ]
# | 17: %indvars.iv.next27 = add nuw nsw i64 %indvars.iv26, 1
# | 18: br label %for.body4
# | next:22 !~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 19:
# | 20: for.cond.cleanup: ; preds = %for.cond.loopexit
# | 21: ret void
# | 22:
# | 23: for.body4: ; preds = %for.body4, %for.cond1.preheader
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/interchange-no-deps.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchange-no-deps.ll -passes='loop(loop-interchange),simplifycfg' -simplifycfg-require-and-preserve-domtree=1 -pass-remarks=loop-interchange -pass-remarks-missed=loop-interchange -stats -S 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefix=STATS C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchange-no-deps.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' '-passes=loop(loop-interchange),simplifycfg' -simplifycfg-require-and-preserve-domtree=1 -pass-remarks=loop-interchange -pass-remarks-missed=loop-interchange -stats -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefix=STATS 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchange-no-deps.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchange-no-deps.ll:14:15: error: STATS-NEXT: expected string not found in input
# | ; STATS-NEXT: [[INDVARS_IV19:%.*]] = phi i64 [ [[INDVARS_IV_NEXT20:%.*]], %[[FOR1_HEADER]] ], [ 0, %[[FOR2]] ]
# | ^
# | <stdin>:9:13: note: scanning from here
# | for1.header: ; preds = %for1.inc, %entry
# | ^
# | <stdin>:9:13: note: with "FOR1_HEADER" equal to "for1.header"
# | for1.header: ; preds = %for1.inc, %entry
# | ^
# | <stdin>:9:13: note: with "FOR2" equal to "for1.header"
# | for1.header: ; preds = %for1.inc, %entry
# | ^
# | <stdin>:10:8: note: possible intended match here
# | %indvars.iv19 = phi i64 [ 0, %entry ], [ %indvars.iv.next20, %for1.inc ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchange-no-deps.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: remark: <unknown>:0:0: All loops have dependencies in all directions.
# | 2: ; ModuleID = '<stdin>'
# | 3: source_filename = "<stdin>"
# | 4:
# | 5: define i32 @no_deps_interchange(ptr captures(none) %Arr) {
# | 6: entry:
# | 7: br label %for1.header
# | 8:
# | 9: for1.header: ; preds = %for1.inc, %entry
# | next:14'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | next:14'1 with "FOR1_HEADER" equal to "for1.header"
# | next:14'2 with "FOR2" equal to "for1.header"
# | 10: %indvars.iv19 = phi i64 [ 0, %entry ], [ %indvars.iv.next20, %for1.inc ]
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:14'3 ? possible intended match
# | 11: br label %for2
# | next:14'0 ~~~~~~~~~~~~~~~~
# | 12:
# | next:14'0 ~
# | 13: for2: ; preds = %for2, %for1.header
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 14: %indvars.iv = phi i64 [ 0, %for1.header ], [ %indvars.iv.next, %for2 ]
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 15: %arrayidx6 = getelementptr inbounds [1024 x i32], ptr %Arr, i64 %indvars.iv, i64 %indvars.iv19
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/interchangeable-innerloop-multiple-indvars.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable-innerloop-multiple-indvars.ll -passes=loop-interchange -cache-line-size=64 -verify-dom-info -verify-loop-info -verify-scev -verify-loop-lcssa -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable-innerloop-multiple-indvars.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -verify-dom-info -verify-loop-info -verify-scev -verify-loop-lcssa -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable-innerloop-multiple-indvars.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable-innerloop-multiple-indvars.ll:26:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_BODY:.*]]
# | ^
# | <stdin>:16:2: note: 'next' match was here
# | br label %for.body3
# | ^
# | <stdin>:12:10: note: previous match ended here
# | for.body: ; preds = %for.inc7, %entry
# | ^
# | <stdin>:13:1: note: non-matching line after previous match is here
# | %indvars.outer = phi i64 [ 0, %entry ], [ %indvars.outer.next, %for.inc7 ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable-innerloop-multiple-indvars.ll:121:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_BODY:.*]]
# | ^
# | <stdin>:55:2: note: 'next' match was here
# | br label %for.body3
# | ^
# | <stdin>:51:10: note: previous match ended here
# | for.body: ; preds = %for.inc7, %entry
# | ^
# | <stdin>:52:1: note: non-matching line after previous match is here
# | %indvars.outer = phi i64 [ 0, %entry ], [ %indvars.outer.next, %for.inc7 ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable-innerloop-multiple-indvars.ll:223:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_BODY:.*]]
# | ^
# | <stdin>:96:2: note: 'next' match was here
# | br label %for.body3
# | ^
# | <stdin>:92:10: note: previous match ended here
# | for.body: ; preds = %for.inc7, %entry
# | ^
# | <stdin>:93:1: note: non-matching line after previous match is here
# | %indvars.outer = phi i64 [ 0, %entry ], [ %indvars.outer.next, %for.inc7 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable-innerloop-multiple-indvars.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 11:
# | 12: for.body: ; preds = %for.inc7, %entry
# | 13: %indvars.outer = phi i64 [ 0, %entry ], [ %indvars.outer.next, %for.inc7 ]
# | 14: %or.reduction.outer = phi i32 [ %a, %entry ], [ %or.lcssa, %for.inc7 ]
# | 15: %index = add nsw i64 %indvars.outer, 9
# | 16: br label %for.body3
# | next:26 !~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 17:
# | 18: for.body3: ; preds = %for.body3, %for.body
# | 19: %or.reduction.inner = phi i32 [ %or.reduction.outer, %for.body ], [ %or, %for.body3 ]
# | 20: %indvar0 = phi i64 [ 5, %for.body ], [ %indvar0.next, %for.body3 ]
# | 21: %indvar1 = phi i32 [ 5, %for.body ], [ %indvar1.next, %for.body3 ]
# | .
# | .
# | .
# | 50:
# | 51: for.body: ; preds = %for.inc7, %entry
# | 52: %indvars.outer = phi i64 [ 0, %entry ], [ %indvars.outer.next, %for.inc7 ]
# | 53: %or.reduction.outer = phi i32 [ %a, %entry ], [ %or.lcssa, %for.inc7 ]
# | 54: %index = add nsw i64 %indvars.outer, 9
# | 55: br label %for.body3
# | next:121 !~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 56:
# | 57: for.body3: ; preds = %for.body3, %for.body
# | 58: %or.reduction.inner = phi i32 [ %or.reduction.outer, %for.body ], [ %or, %for.body3 ]
# | 59: %indvar0 = phi i64 [ 5, %for.body ], [ %indvar0.next, %for.body3 ]
# | 60: %indvar1 = phi i32 [ 6, %for.body ], [ %indvar1.next, %for.body3 ]
# | .
# | .
# | .
# | 91:
# | 92: for.body: ; preds = %for.inc7, %entry
# | 93: %indvars.outer = phi i64 [ 0, %entry ], [ %indvars.outer.next, %for.inc7 ]
# | 94: %or.reduction.outer = phi i32 [ %a, %entry ], [ %or.lcssa, %for.inc7 ]
# | 95: %index = add nsw i64 %indvars.outer, 9
# | 96: br label %for.body3
# | next:223 !~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 97:
# | 98: for.body3: ; preds = %for.body3, %for.body
# | 99: %or.reduction.inner = phi i32 [ %or.reduction.outer, %for.body ], [ %or, %for.body3 ]
# | 100: %indvar0 = phi i32 [ 5, %for.body ], [ %indvar0.next, %for.body3 ]
# | 101: %indvar1 = phi i32 [ 49, %for.body ], [ %indvar1.next, %for.body3 ]
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/interchangeable-outerloop-multiple-indvars.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable-outerloop-multiple-indvars.ll -passes=loop-interchange -loop-interchange-profitabilities=ignore -verify-dom-info -verify-loop-info -verify-scev -verify-loop-lcssa -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable-outerloop-multiple-indvars.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -loop-interchange-profitabilities=ignore -verify-dom-info -verify-loop-info -verify-scev -verify-loop-lcssa -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable-outerloop-multiple-indvars.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable-outerloop-multiple-indvars.ll:23:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_COND2_PREHEADER:.*]]
# | ^
# | <stdin>:17:2: note: 'next' match was here
# | br label %for.body4
# | ^
# | <stdin>:12:21: note: previous match ended here
# | for.cond2.preheader: ; preds = %for.inc7, %entry
# | ^
# | <stdin>:13:1: note: non-matching line after previous match is here
# | %indvar0 = phi i64 [ 0, %entry ], [ %indvar0.next, %for.inc7 ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable-outerloop-multiple-indvars.ll:123:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_COND2_PREHEADER:.*]]
# | ^
# | <stdin>:58:2: note: 'next' match was here
# | br label %for.body4
# | ^
# | <stdin>:53:21: note: previous match ended here
# | for.cond2.preheader: ; preds = %for.inc7, %entry
# | ^
# | <stdin>:54:1: note: non-matching line after previous match is here
# | %indvar0 = phi i64 [ 0, %entry ], [ %indvar0.next, %for.inc7 ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable-outerloop-multiple-indvars.ll:222:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_COND2_PREHEADER:.*]]
# | ^
# | <stdin>:99:2: note: 'next' match was here
# | br label %for.body4
# | ^
# | <stdin>:94:21: note: previous match ended here
# | for.cond2.preheader: ; preds = %for.inc7, %entry
# | ^
# | <stdin>:95:1: note: non-matching line after previous match is here
# | %indvar0 = phi i64 [ 0, %entry ], [ %indvar0.next, %for.inc7 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable-outerloop-multiple-indvars.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 12: for.cond2.preheader: ; preds = %for.inc7, %entry
# | 13: %indvar0 = phi i64 [ 0, %entry ], [ %indvar0.next, %for.inc7 ]
# | 14: %or.reduction = phi i32 [ %a, %entry ], [ %or.lcssa, %for.inc7 ]
# | 15: %indvar1 = phi i32 [ 1, %entry ], [ %indvar1.next, %for.inc7 ]
# | 16: %index = add nsw i64 %indvar0, 9
# | 17: br label %for.body4
# | next:23 !~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 18:
# | 19: for.body4: ; preds = %for.body4, %for.cond2.preheader
# | 20: %indvars.iv = phi i64 [ 5, %for.cond2.preheader ], [ %indvars.iv.next, %for.body4 ]
# | 21: %or13 = phi i32 [ %or.reduction, %for.cond2.preheader ], [ %or, %for.body4 ]
# | 22: %arrayidx6 = getelementptr inbounds [200 x [100 x i32]], ptr @b, i64 0, i64 %indvars.iv, i64 %index
# | .
# | .
# | .
# | 53: for.cond2.preheader: ; preds = %for.inc7, %entry
# | 54: %indvar0 = phi i64 [ 0, %entry ], [ %indvar0.next, %for.inc7 ]
# | 55: %or.reduction = phi i32 [ %a, %entry ], [ %or.lcssa, %for.inc7 ]
# | 56: %indvar1 = phi i64 [ 1, %entry ], [ %indvar1.next, %for.inc7 ]
# | 57: %index0 = add nsw i64 %indvar0, 9
# | 58: br label %for.body4
# | next:123 !~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 59:
# | 60: for.body4: ; preds = %for.body4, %for.cond2.preheader
# | 61: %indvars.iv = phi i64 [ 5, %for.cond2.preheader ], [ %indvars.iv.next, %for.body4 ]
# | 62: %or13 = phi i32 [ %or.reduction, %for.cond2.preheader ], [ %or, %for.body4 ]
# | 63: %index1 = add nsw i64 %indvars.iv, %indvar1
# | .
# | .
# | .
# | 94: for.cond2.preheader: ; preds = %for.inc7, %entry
# | 95: %indvar0 = phi i64 [ 0, %entry ], [ %indvar0.next, %for.inc7 ]
# | 96: %or.reduction = phi i32 [ %a, %entry ], [ %or.lcssa, %for.inc7 ]
# | 97: %indvar1 = phi i64 [ 1, %entry ], [ %indvar1.next, %for.inc7 ]
# | 98: %index0 = add nsw i64 %indvar0, 9
# | 99: br label %for.body4
# | next:222 !~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 100:
# | 101: for.body4: ; preds = %for.body4, %for.cond2.preheader
# | 102: %indvars.iv = phi i64 [ 5, %for.cond2.preheader ], [ %indvars.iv.next, %for.body4 ]
# | 103: %or13 = phi i32 [ %or.reduction, %for.cond2.preheader ], [ %or, %for.body4 ]
# | 104: %index1 = add nsw i64 %indvars.iv, %indvar1
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/interchangeable.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable.ll -passes=loop-interchange -cache-line-size=64 -verify-dom-info -verify-loop-info -verify-scev -verify-loop-lcssa -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -verify-dom-info -verify-loop-info -verify-scev -verify-loop-lcssa -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable.ll:20:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR1_HEADER:.*]]
# | ^
# | <stdin>:14:2: note: 'next' match was here
# | br label %for2
# | ^
# | <stdin>:12:13: note: previous match ended here
# | for1.header: ; preds = %for1.inc10, %entry
# | ^
# | <stdin>:13:1: note: non-matching line after previous match is here
# | %j23 = phi i64 [ 0, %entry ], [ %j.next24, %for1.inc10 ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable.ll:84:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR1_HEADER:.*]]
# | ^
# | <stdin>:41:2: note: 'next' match was here
# | br label %for3
# | ^
# | <stdin>:39:13: note: previous match ended here
# | for1.header: ; preds = %for1.inc10, %entry
# | ^
# | <stdin>:40:1: note: non-matching line after previous match is here
# | %j19 = phi i64 [ 0, %entry ], [ %j.next20, %for1.inc10 ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable.ll:152:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR1_HEADER:.*]]
# | ^
# | <stdin>:69:2: note: 'next' match was here
# | br label %for2
# | ^
# | <stdin>:66:13: note: previous match ended here
# | for1.header: ; preds = %for1.inc10, %entry
# | ^
# | <stdin>:67:1: note: non-matching line after previous match is here
# | %j23 = phi i64 [ 1, %entry ], [ %j.next24, %for1.inc10 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchangeable.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 9: entry:
# | 10: br label %for1.header
# | 11:
# | 12: for1.header: ; preds = %for1.inc10, %entry
# | 13: %j23 = phi i64 [ 0, %entry ], [ %j.next24, %for1.inc10 ]
# | 14: br label %for2
# | next:20 !~~~~~~~~~~~~~ error: match on wrong line
# | 15:
# | 16: for2: ; preds = %for2, %for1.header
# | 17: %j = phi i64 [ %j.next, %for2 ], [ 0, %for1.header ]
# | 18: %arrayidx5 = getelementptr inbounds [100 x [100 x i64]], ptr @A, i64 0, i64 %j, i64 %j23
# | 19: %lv = load i64, ptr %arrayidx5, align 8
# | .
# | .
# | .
# | 36: entry:
# | 37: br label %for1.header
# | 38:
# | 39: for1.header: ; preds = %for1.inc10, %entry
# | 40: %j19 = phi i64 [ 0, %entry ], [ %j.next20, %for1.inc10 ]
# | 41: br label %for3
# | next:84 !~~~~~~~~~~~~~ error: match on wrong line
# | 42:
# | 43: for3: ; preds = %for3, %for1.header
# | 44: %j = phi i64 [ 100, %for1.header ], [ %j.next, %for3 ]
# | 45: %arrayidx5 = getelementptr inbounds [100 x [100 x i64]], ptr @A, i64 0, i64 %j, i64 %j19
# | 46: %0 = load i64, ptr %arrayidx5, align 8
# | .
# | .
# | .
# | 64: br label %for1.header
# | 65:
# | 66: for1.header: ; preds = %for1.inc10, %entry
# | 67: %j23 = phi i64 [ 1, %entry ], [ %j.next24, %for1.inc10 ]
# | 68: %j.next24 = add nuw nsw i64 %j23, 1
# | 69: br label %for2
# | next:152 !~~~~~~~~~~~~~ error: match on wrong line
# | 70:
# | 71: for2: ; preds = %for2, %for1.header
# | 72: %j = phi i64 [ %j.next, %for2 ], [ 1, %for1.header ]
# | 73: %j.next = add nuw nsw i64 %j, 1
# | 74: %arrayidx5 = getelementptr inbounds [100 x [100 x i64]], ptr @A, i64 0, i64 %j, i64 %j23
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/interchanged-loop-nest-3.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchanged-loop-nest-3.ll -passes=loop-interchange -verify-dom-info -verify-loop-info -S 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchanged-loop-nest-3.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -verify-dom-info -verify-loop-info -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchanged-loop-nest-3.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchanged-loop-nest-3.ll:23:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_COND1_PREHEADER:.*]]
# | ^
# | <stdin>:13:2: note: 'next' match was here
# | br label %for.cond4.preheader
# | ^
# | <stdin>:11:21: note: previous match ended here
# | for.cond1.preheader: ; preds = %for.inc15, %entry
# | ^
# | <stdin>:12:1: note: non-matching line after previous match is here
# | %i.028 = phi i64 [ 0, %entry ], [ %inc16, %for.inc15 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\interchanged-loop-nest-3.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 8: entry:
# | 9: br label %for.cond1.preheader
# | 10:
# | 11: for.cond1.preheader: ; preds = %for.inc15, %entry
# | 12: %i.028 = phi i64 [ 0, %entry ], [ %inc16, %for.inc15 ]
# | 13: br label %for.cond4.preheader
# | next:23 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 14:
# | 15: for.cond4.preheader: ; preds = %for.inc12, %for.cond1.preheader
# | 16: %j.027 = phi i64 [ 0, %for.cond1.preheader ], [ %inc13, %for.inc12 ]
# | 17: br label %for.body6
# | 18:
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/lcssa-incoming-value-is-not-instr.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-incoming-value-is-not-instr.ll -passes=loop-interchange -loop-interchange-profitabilities=ignore -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-incoming-value-is-not-instr.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -loop-interchange-profitabilities=ignore -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-incoming-value-is-not-instr.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-incoming-value-is-not-instr.ll:12:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[OUTER_HEADER:.*]]
# | ^
# | <stdin>:10:2: note: 'next' match was here
# | br label %inner
# | ^
# | <stdin>:8:14: note: previous match ended here
# | outer.header: ; preds = %outer.latch, %entry
# | ^
# | <stdin>:9:1: note: non-matching line after previous match is here
# | %i = phi i64 [ 0, %entry ], [ %i.next, %outer.latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-incoming-value-is-not-instr.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 5: entry:
# | 6: br label %outer.header
# | 7:
# | 8: outer.header: ; preds = %outer.latch, %entry
# | 9: %i = phi i64 [ 0, %entry ], [ %i.next, %outer.latch ]
# | 10: br label %inner
# | next:12 !~~~~~~~~~~~~~~ error: match on wrong line
# | 11:
# | 12: inner: ; preds = %inner, %outer.header
# | 13: %j = phi i64 [ 0, %outer.header ], [ %j.next, %inner ]
# | 14: %j.next = add i64 %j, 1
# | 15: %ec.j = icmp eq i64 %j.next, 2
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/lcssa-phi-outer-latch.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-phi-outer-latch.ll -passes=loop-interchange -loop-interchange-profitabilities=ignore -verify-dom-info -verify-loop-info -verify-scev -verify-loop-lcssa -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-phi-outer-latch.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -loop-interchange-profitabilities=ignore -verify-dom-info -verify-loop-info -verify-scev -verify-loop-lcssa -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-phi-outer-latch.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-phi-outer-latch.ll:18:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[OUTER_HEADER:.*]]
# | ^
# | <stdin>:11:2: note: 'next' match was here
# | br label %inner.header
# | ^
# | <stdin>:9:14: note: previous match ended here
# | outer.header: ; preds = %outer.latch, %entry
# | ^
# | <stdin>:10:1: note: non-matching line after previous match is here
# | %i = phi i64 [ 1, %entry ], [ %i.next, %outer.latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-phi-outer-latch.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 6: entry:
# | 7: br label %outer.header
# | 8:
# | 9: outer.header: ; preds = %outer.latch, %entry
# | 10: %i = phi i64 [ 1, %entry ], [ %i.next, %outer.latch ]
# | 11: br label %inner.header
# | next:18 !~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 12:
# | 13: inner.header: ; preds = %inner.latch, %outer.header
# | 14: %j = phi i16 [ 0, %outer.header ], [ %j.next, %inner.latch ]
# | 15: %arrayidx.us.us = getelementptr i16, ptr %a, i16 %j
# | 16: %0 = load i16, ptr %arrayidx.us.us, align 1
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/lcssa-preheader.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-preheader.ll -passes=loop-interchange -cache-line-size=64 -verify-loop-lcssa -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-preheader.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -verify-loop-lcssa -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-preheader.ll'
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-preheader.ll -passes=loop-interchange -cache-line-size=64 -da-disable-delinearization-checks -verify-loop-lcssa -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefix=CHECK-DELIN C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-preheader.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -da-disable-delinearization-checks -verify-loop-lcssa -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefix=CHECK-DELIN 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-preheader.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-preheader.ll:177:21: error: CHECK-DELIN-NEXT: is not on the line after the previous match
# | ; CHECK-DELIN-NEXT: br label %[[OUTER_HEADER:.*]]
# | ^
# | <stdin>:59:2: note: 'next' match was here
# | br label %inner
# | ^
# | <stdin>:56:14: note: previous match ended here
# | outer.header: ; preds = %outer.latch, %bb
# | ^
# | <stdin>:57:1: note: non-matching line after previous match is here
# | %outer.iv = phi i64 [ 0, %bb ], [ %outer.iv.next, %outer.latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\lcssa-preheader.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 54: br label %outer.header
# | 55:
# | 56: outer.header: ; preds = %outer.latch, %bb
# | 57: %outer.iv = phi i64 [ 0, %bb ], [ %outer.iv.next, %outer.latch ]
# | 58: %N.ext = sext i32 %N to i64
# | 59: br label %inner
# | next:177 !~~~~~~~~~~~~~~ error: match on wrong line
# | 60:
# | 61: inner: ; preds = %inner, %outer.header
# | 62: %inner.iv = phi i64 [ 0, %outer.header ], [ %inner.iv.next, %inner ]
# | 63: %gep = getelementptr inbounds [2 x i16], ptr @global, i64 %inner.iv, i64 %outer.iv
# | 64: store i16 0, ptr %gep, align 2
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/legality-check.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\legality-check.ll -passes=loop-interchange -verify-dom-info -verify-loop-info -disable-output -debug -da-enable-dependence-test=all 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\legality-check.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -verify-dom-info -verify-loop-info -disable-output -debug -da-enable-dependence-test=all
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\legality-check.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\legality-check.ll:20:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: Checking if loops 'for.i.header' and 'for.j' are tightly nested
# | ^
# | <stdin>:527:47: note: scanning from here
# | Processing InnerLoopId = 2 and OuterLoopId = 1
# | ^
# | <stdin>:540:10: note: possible intended match here
# | Checking whether loop 'for.i.header' and 'for.j' are perfectly nested.
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\legality-check.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 522: Src: store float %add, ptr %idx.store, align 4
# | 523: Dst: store float %add, ptr %idx.store, align 4
# | 524: Dependency matrix before interchange:
# | 525: * = <
# | 526: * = =
# | 527: Processing InnerLoopId = 2 and OuterLoopId = 1
# | next:20'0 X error: no match found
# | 528: Failed to find inner loop inductions or found unsupported reductions.
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 529: Cannot prove legality, not interchanging loops 'for.i.header' and 'for.j'
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 530: Processing InnerLoopId = 1 and OuterLoopId = 0
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 531: Failed interchange InnerLoopId = 1 and OuterLoopId = 0 due to dependence
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 532: Cannot prove legality, not interchanging loops 'for.n.header' and 'for.i.header'
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 535: Verifying parent property of node %for.n.latch
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 536: Verifying parent property of node %for.i.header
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 537: Verifying parent property of node %for.i.latch
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 538: Verifying parent property of node %for.j
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 539: Get maximum perfect depth of loop nest rooted by loop 'for.i.header'
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 540: Checking whether loop 'for.i.header' and 'for.j' are perfectly nested.
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:20'1 ? possible intended match
# | 541: Outer loop latch compare instruction: %cmp.i = icmp slt i32 %i.inc, 256
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 542: Instruction: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 543: in basic block:
# | next:20'0 ~~~~~~~~~~~~~~~~
# | 544: for.i.header: ; preds = %for.i.latch, %entry
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 545: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/loop-interchange-optimization-remarks.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\loop-interchange-optimization-remarks.ll -passes=loop-interchange -cache-line-size=64 -verify-dom-info -verify-loop-info -pass-remarks-output=C:\_work\llvm-project\llvm-project\build\test\Transforms\LoopInterchange\Output\loop-interchange-optimization-remarks.ll.tmp -pass-remarks-missed='loop-interchange' -pass-remarks='loop-interchange' -S
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -verify-dom-info -verify-loop-info '-pass-remarks-output=C:\_work\llvm-project\llvm-project\build\test\Transforms\LoopInterchange\Output\loop-interchange-optimization-remarks.ll.tmp' -pass-remarks-missed=loop-interchange -pass-remarks=loop-interchange -S
# .---command stdout------------
# | ; ModuleID = '<stdin>'
# | source_filename = "<stdin>"
# |
# | @A = common global [100 x [100 x i32]] zeroinitializer
# | @B = common global [100 x [100 x i32]] zeroinitializer
# | @C = common global [100 x i32] zeroinitializer
# | @A10 = local_unnamed_addr global [3 x [3 x i32]] zeroinitializer, align 16
# |
# | define void @test01(i32 %N) {
# | entry:
# | %cmp31 = icmp sgt i32 %N, 1
# | br i1 %cmp31, label %for.cond1.preheader.lr.ph, label %for.end19
# |
# | for.cond1.preheader.lr.ph: ; preds = %entry
# | %0 = add i32 %N, -1
# | br label %for.body3.lr.ph
# |
# | for.body3.lr.ph: ; preds = %for.inc17, %for.cond1.preheader.lr.ph
# | %indvars.iv34 = phi i64 [ 1, %for.cond1.preheader.lr.ph ], [ %indvars.iv.next35, %for.inc17 ]
# | %1 = add nsw i64 %indvars.iv34, -1
# | br label %for.body3
# |
# | for.body3: ; preds = %for.body3, %for.body3.lr.ph
# | %indvars.iv = phi i64 [ 1, %for.body3.lr.ph ], [ %indvars.iv.next, %for.body3 ]
# | %2 = add nsw i64 %indvars.iv, -1
# | %arrayidx6 = getelementptr inbounds [100 x [100 x i32]], ptr @A, i64 0, i64 %1, i64 %2
# | %3 = load i32, ptr %arrayidx6, align 4
# | %arrayidx10 = getelementptr inbounds [100 x [100 x i32]], ptr @B, i64 0, i64 %indvars.iv34, i64 %indvars.iv
# | %4 = load i32, ptr %arrayidx10, align 4
# | %add = add nsw i32 %4, %3
# | store i32 %add, ptr %arrayidx6, align 4
# | %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
# | %lftr.wideiv = trunc i64 %indvars.iv to i32
# | %exitcond = icmp eq i32 %lftr.wideiv, %0
# | br i1 %exitcond, label %for.inc17, label %for.body3
# |
# | for.inc17: ; preds = %for.body3
# | %indvars.iv.next35 = add nuw nsw i64 %indvars.iv34, 1
# | %lftr.wideiv37 = trunc i64 %indvars.iv34 to i32
# | %exitcond38 = icmp eq i32 %lftr.wideiv37, %0
# | br i1 %exitcond38, label %for.end19.loopexit, label %for.body3.lr.ph
# |
# | for.end19.loopexit: ; preds = %for.inc17
# | br label %for.end19
# |
# | for.end19: ; preds = %for.end19.loopexit, %entry
# | ret void
# | }
# |
# | define void @test02(i32 %k, i32 %N) {
# | entry:
# | %sub = add nsw i32 %N, -1
# | %cmp26 = icmp sgt i32 %N, 1
# | br i1 %cmp26, label %for.cond1.preheader.lr.ph, label %for.end17
# |
# | for.cond1.preheader.lr.ph: ; preds = %entry
# | %cmp324 = icmp sgt i32 %sub, 1
# | %0 = add i32 %N, -2
# | %1 = sext i32 %sub to i64
# | br label %for.cond1.preheader
# |
# | for.cond.loopexit.loopexit: ; preds = %for.body4
# | br label %for.cond.loopexit
# |
# | for.cond.loopexit: ; preds = %for.cond.loopexit.loopexit, %for.cond1.preheader
# | %cmp = icmp slt i64 %indvars.iv.next29, %1
# | br i1 %cmp, label %for.cond1.preheader, label %for.end17.loopexit
# |
# | for.cond1.preheader: ; preds = %for.cond.loopexit, %for.cond1.preheader.lr.ph
# | %indvars.iv28 = phi i64 [ 0, %for.cond1.preheader.lr.ph ], [ %indvars.iv.next29, %for.cond.loopexit ]
# | %indvars.iv.next29 = add nuw nsw i64 %indvars.iv28, 1
# | br i1 %cmp324, label %for.body4.preheader, label %for.cond.loopexit
# |
# | for.body4.preheader: ; preds = %for.cond1.preheader
# | br label %for.body4
# |
# | for.body4: ; preds = %for.body4.preheader, %for.body4
# | %indvars.iv = phi i64 [ %indvars.iv.next, %for.body4 ], [ 1, %for.body4.preheader ]
# | %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
# | %arrayidx7 = getelementptr inbounds [100 x [100 x i32]], ptr @A, i64 0, i64 %indvars.iv.next, i64 %indvars.iv.next29
# | %2 = load i32, ptr %arrayidx7, align 4
# | %add8 = add nsw i32 %2, %k
# | store i32 %add8, ptr %arrayidx7, align 4
# | %lftr.wideiv = trunc i64 %indvars.iv to i32
# | %exitcond = icmp eq i32 %lftr.wideiv, %0
# | br i1 %exitcond, label %for.cond.loopexit.loopexit, label %for.body4
# |
# | for.end17.loopexit: ; preds = %for.cond.loopexit
# | br label %for.end17
# |
# | for.end17: ; preds = %for.end17.loopexit, %entry
# | ret void
# | }
# |
# | define void @test03() {
# | entry:
# | br label %for.cond1.preheader
# |
# | for.cond.loopexit: ; preds = %for.body4
# | %exitcond28 = icmp ne i64 %indvars.iv.next27, 2
# | br i1 %exitcond28, label %for.cond1.preheader, label %for.cond.cleanup
# |
# | for.cond1.preheader: ; preds = %for.cond.loopexit, %entry
# | %indvars.iv26 = phi i64 [ 0, %entry ], [ %indvars.iv.next27, %for.cond.loopexit ]
# | %indvars.iv.next27 = add nuw nsw i64 %indvars.iv26, 1
# | br label %for.body4
# |
# | for.cond.cleanup: ; preds = %for.cond.loopexit
# | ret void
# |
# | for.body4: ; preds = %for.body4, %for.cond1.preheader
# | %indvars.iv = phi i64 [ 0, %for.cond1.preheader ], [ %indvars.iv.next, %for.body4 ]
# | %arrayidx6 = getelementptr inbounds [3 x [3 x i32]], ptr @A10, i64 0, i64 %indvars.iv, i64 %indvars.iv26
# | %tmp = trunc i64 %indvars.iv26 to i32
# | store i32 %tmp, ptr %arrayidx6, align 4
# | %arrayidx10 = getelementptr inbounds [3 x [3 x i32]], ptr @A10, i64 0, i64 %indvars.iv, i64 %indvars.iv.next27
# | %tmp1 = trunc i64 %indvars.iv to i32
# | store i32 %tmp1, ptr %arrayidx10, align 4
# | %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
# | %exitcond = icmp ne i64 %indvars.iv.next, 3
# | br i1 %exitcond, label %for.body4, label %for.cond.loopexit
# | }
# |
# | define void @test04(i32 %k, i32 %N) {
# | entry:
# | %cmp30 = icmp sgt i32 %N, 0
# | br i1 %cmp30, label %for.body.lr.ph, label %for.end17
# |
# | for.body.lr.ph: ; preds = %entry
# | %0 = add i32 %N, -1
# | %1 = zext i32 %k to i64
# | br label %for.body
# |
# | for.body: ; preds = %for.inc15, %for.body.lr.ph
# | %indvars.iv32 = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next33, %for.inc15 ]
# | %2 = add nsw i64 %indvars.iv32, %1
# | %arrayidx = getelementptr inbounds [100 x i32], ptr @C, i64 0, i64 %indvars.iv32
# | %3 = trunc i64 %2 to i32
# | store i32 %3, ptr %arrayidx, align 4
# | br label %for.body3
# |
# | for.body3: ; preds = %for.body3, %for.body
# | %indvars.iv = phi i64 [ 0, %for.body ], [ %indvars.iv.next, %for.body3 ]
# | %arrayidx7 = getelementptr inbounds [100 x [100 x i32]], ptr @A, i64 0, i64 %indvars.iv32, i64 %indvars.iv
# | %4 = load i32, ptr %arrayidx7, align 4
# | %add10 = add nsw i32 %3, %4
# | store i32 %add10, ptr %arrayidx7, align 4
# | %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
# | %lftr.wideiv = trunc i64 %indvars.iv to i32
# | %exitcond = icmp eq i32 %lftr.wideiv, %0
# | br i1 %exitcond, label %for.inc15, label %for.body3
# |
# | for.inc15: ; preds = %for.body3
# | %indvars.iv.next33 = add nuw nsw i64 %indvars.iv32, 1
# | %lftr.wideiv35 = trunc i64 %indvars.iv32 to i32
# | %exitcond36 = icmp eq i32 %lftr.wideiv35, %0
# | br i1 %exitcond36, label %for.end17.loopexit, label %for.body
# |
# | for.end17.loopexit: ; preds = %for.inc15
# | br label %for.end17
# |
# | for.end17: ; preds = %for.end17.loopexit, %entry
# | ret void
# | }
# `-----------------------------
# .---command stderr------------
# | remark: <unknown>:0:0: All loops have dependencies in all directions.
# | remark: <unknown>:0:0: All loops have dependencies in all directions.
# | remark: <unknown>:0:0: All loops have dependencies in all directions.
# `-----------------------------
# RUN: at line 6
cat C:\_work\llvm-project\llvm-project\build\test\Transforms\LoopInterchange\Output\loop-interchange-optimization-remarks.ll.tmp | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\loop-interchange-optimization-remarks.ll
# executed command: cat 'C:\_work\llvm-project\llvm-project\build\test\Transforms\LoopInterchange\Output\loop-interchange-optimization-remarks.ll.tmp'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\loop-interchange-optimization-remarks.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\loop-interchange-optimization-remarks.ll:221:10: error: CHECK: expected string not found in input
# | ; CHECK: --- !Passed
# | ^
# | <stdin>:35:4: note: scanning from here
# | ...
# | ^
# | <stdin>:43:1: note: possible intended match here
# | --- !Missed
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\loop-interchange-optimization-remarks.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 30: Pass: loop-interchange
# | 31: Name: Dependence
# | 32: Function: test03
# | 33: Args:
# | 34: - String: Computed dependence info, invoking the transform.
# | 35: ...
# | check:221'0 X error: no match found
# | 36: --- !Analysis
# | check:221'0 ~~~~~~~~~~~~~~
# | 37: Pass: loop-interchange
# | check:221'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 38: Name: Dependence
# | check:221'0 ~~~~~~~~~~~~~~~~~
# | 39: Function: test04
# | check:221'0 ~~~~~~~~~~~~~~~~~
# | 40: Args:
# | check:221'0 ~~~~~~
# | 41: - String: Computed dependence info, invoking the transform.
# | check:221'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 42: ...
# | check:221'0 ~~~~
# | 43: --- !Missed
# | check:221'0 ~~~~~~~~~~~~
# | check:221'1 ? possible intended match
# | 44: Pass: loop-interchange
# | check:221'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 45: Name: Dependence
# | check:221'0 ~~~~~~~~~~~~~~~~~
# | 46: Function: test04
# | check:221'0 ~~~~~~~~~~~~~~~~~
# | 47: Args:
# | check:221'0 ~~~~~~
# | 48: - String: All loops have dependencies in all directions.
# | check:221'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 49: ...
# | check:221'0 ~~~~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/loopnest-with-outer-btc0.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\loopnest-with-outer-btc0.ll -passes=loop-interchange -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\loopnest-with-outer-btc0.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\loopnest-with-outer-btc0.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\loopnest-with-outer-btc0.ll:26:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[INNER1_HEADER:.*]]
# | ^
# | <stdin>:17:2: note: 'next' match was here
# | br label %inner2.body
# | ^
# | <stdin>:15:15: note: previous match ended here
# | inner1.header: ; preds = %for.inc12, %outer.header
# | ^
# | <stdin>:16:1: note: non-matching line after previous match is here
# | %j = phi i64 [ 0, %outer.header ], [ %inc13, %for.inc12 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\loopnest-with-outer-btc0.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 12: %i = phi i64 [ 0, %entry ], [ %inc16, %for.inc15 ]
# | 13: br label %inner1.header
# | 14:
# | 15: inner1.header: ; preds = %for.inc12, %outer.header
# | 16: %j = phi i64 [ 0, %outer.header ], [ %inc13, %for.inc12 ]
# | 17: br label %inner2.body
# | next:26 !~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 18:
# | 19: inner2.body: ; preds = %inner2.body, %inner1.header
# | 20: %k = phi i64 [ 0, %inner1.header ], [ %inc, %inner2.body ]
# | 21: %arrayidx8 = getelementptr inbounds [100 x [100 x i32]], ptr @D, i64 %i, i64 %k, i64 %j
# | 22: %0 = load i32, ptr %arrayidx8, align 4
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/memory-instr-ratio.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\memory-instr-ratio.ll -passes=loop-interchange -S -loop-interchange-profitabilities=ignore -loop-interchange-max-mem-instr-ratio=1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\memory-instr-ratio.ll --check-prefixes=CHECK,CHECK-RATIO-1
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -S -loop-interchange-profitabilities=ignore -loop-interchange-max-mem-instr-ratio=1
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\memory-instr-ratio.ll' --check-prefixes=CHECK,CHECK-RATIO-1
# note: command had no output on stdout or stderr
# RUN: at line 4
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\memory-instr-ratio.ll -passes=loop-interchange -S -loop-interchange-profitabilities=ignore -loop-interchange-max-mem-instr-ratio=100 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\memory-instr-ratio.ll --check-prefixes=CHECK,CHECK-RATIO-100
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -S -loop-interchange-profitabilities=ignore -loop-interchange-max-mem-instr-ratio=100
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\memory-instr-ratio.ll' --check-prefixes=CHECK,CHECK-RATIO-100
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\memory-instr-ratio.ll:43:25: error: CHECK-RATIO-100-NEXT: is not on the line after the previous match
# | ; CHECK-RATIO-100-NEXT: br label %[[LOOP_I_HEADER:.*]]
# | ^
# | <stdin>:10:2: note: 'next' match was here
# | br label %loop.j
# | ^
# | <stdin>:8:15: note: previous match ended here
# | loop.i.header: ; preds = %loop.i.latch, %entry
# | ^
# | <stdin>:9:1: note: non-matching line after previous match is here
# | %i = phi i64 [ 0, %entry ], [ %i.inc, %loop.i.latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\memory-instr-ratio.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 5: entry:
# | 6: br label %loop.i.header
# | 7:
# | 8: loop.i.header: ; preds = %loop.i.latch, %entry
# | 9: %i = phi i64 [ 0, %entry ], [ %i.inc, %loop.i.latch ]
# | 10: br label %loop.j
# | next:43 !~~~~~~~~~~~~~~~ error: match on wrong line
# | 11:
# | 12: loop.j: ; preds = %loop.j, %loop.i.header
# | 13: %j = phi i64 [ 0, %loop.i.header ], [ %j.inc, %loop.j ]
# | 14: %gep = getelementptr [10 x i8], ptr %A, i64 %j, i64 %i
# | 15: store i8 0, ptr %gep, align 1
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/ninf.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\ninf.ll -passes=loop-interchange -loop-interchange-profitabilities=ignore -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\ninf.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -loop-interchange-profitabilities=ignore -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\ninf.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\ninf.ll:23:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:11:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:8:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:9:1: note: non-matching line after previous match is here
# | %i = phi i64 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\ninf.ll:96:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:40:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:38:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:39:1: note: non-matching line after previous match is here
# | %i = phi i64 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\ninf.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 6: br label %for.i.header
# | 7:
# | 8: for.i.header: ; preds = %for.i.latch, %entry
# | 9: %i = phi i64 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 10: %sum.i = phi float [ 0.000000e+00, %entry ], [ %sum.i.next, %for.i.latch ]
# | 11: br label %for.j
# | next:23 !~~~~~~~~~~~~~~ error: match on wrong line
# | 12:
# | 13: for.j: ; preds = %for.j, %for.i.header
# | 14: %j = phi i64 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 15: %sum.j = phi float [ %sum.i, %for.i.header ], [ %sum.j.next, %for.j ]
# | 16: %gep = getelementptr [2 x float], ptr %A, i64 %i, i64 %j
# | .
# | .
# | .
# | 35: entry:
# | 36: br label %for.i.header
# | 37:
# | 38: for.i.header: ; preds = %for.i.latch, %entry
# | 39: %i = phi i64 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 40: br label %for.j
# | next:96 !~~~~~~~~~~~~~~ error: match on wrong line
# | 41:
# | 42: for.j: ; preds = %for.j, %for.i.header
# | 43: %j = phi i64 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 44: %gep.A = getelementptr [2 x float], ptr %A, i64 %i, i64 %j
# | 45: %val.A = load float, ptr %gep.A, align 4
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/non-phi-uses-lcssa-phi.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\non-phi-uses-lcssa-phi.ll -passes=loop-interchange -loop-interchange-profitabilities=ignore -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\non-phi-uses-lcssa-phi.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -loop-interchange-profitabilities=ignore -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\non-phi-uses-lcssa-phi.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\non-phi-uses-lcssa-phi.ll:15:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[OUTER_HEADER:.*]]
# | ^
# | <stdin>:10:2: note: 'next' match was here
# | br label %inner
# | ^
# | <stdin>:8:14: note: previous match ended here
# | outer.header: ; preds = %outer.latch, %entry
# | ^
# | <stdin>:9:1: note: non-matching line after previous match is here
# | %i = phi i64 [ 0, %entry ], [ %i.next, %outer.latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\non-phi-uses-lcssa-phi.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 5: entry:
# | 6: br label %outer.header
# | 7:
# | 8: outer.header: ; preds = %outer.latch, %entry
# | 9: %i = phi i64 [ 0, %entry ], [ %i.next, %outer.latch ]
# | 10: br label %inner
# | next:15 !~~~~~~~~~~~~~~ error: match on wrong line
# | 11:
# | 12: inner: ; preds = %inner, %outer.header
# | 13: %j = phi i64 [ 0, %outer.header ], [ %j.next, %inner ]
# | 14: %ptr = getelementptr inbounds [100 x i32], ptr %A, i64 %j, i64 %i
# | 15: store i32 0, ptr %ptr, align 4
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/not-interchanged-loop-nest-3.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\not-interchanged-loop-nest-3.ll -passes=loop-interchange -cache-line-size=64 -verify-dom-info -verify-loop-info -S 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\not-interchanged-loop-nest-3.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -verify-dom-info -verify-loop-info -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\not-interchanged-loop-nest-3.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\not-interchanged-loop-nest-3.ll:27:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_COND4_PREHEADER:.*]]
# | ^
# | <stdin>:17:2: note: 'next' match was here
# | br label %for.body6
# | ^
# | <stdin>:15:21: note: previous match ended here
# | for.cond4.preheader: ; preds = %for.inc12, %for.cond1.preheader
# | ^
# | <stdin>:16:1: note: non-matching line after previous match is here
# | %j.027 = phi i64 [ 0, %for.cond1.preheader ], [ %inc13, %for.inc12 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\not-interchanged-loop-nest-3.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 12: %i.028 = phi i64 [ 0, %entry ], [ %inc16, %for.inc15 ]
# | 13: br label %for.cond4.preheader
# | 14:
# | 15: for.cond4.preheader: ; preds = %for.inc12, %for.cond1.preheader
# | 16: %j.027 = phi i64 [ 0, %for.cond1.preheader ], [ %inc13, %for.inc12 ]
# | 17: br label %for.body6
# | next:27 !~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 18:
# | 19: for.body6: ; preds = %for.body6, %for.cond4.preheader
# | 20: %k.026 = phi i64 [ 0, %for.cond4.preheader ], [ %inc, %for.body6 ]
# | 21: %arrayidx8 = getelementptr inbounds [100 x [100 x [100 x i32]]], ptr @D, i32 0, i64 %i.028, i64 %k.026, i64 %j.027
# | 22: %0 = load i32, ptr %arrayidx8, align 4
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/perserve-lcssa.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\perserve-lcssa.ll -passes=loop-interchange -loop-interchange-profitabilities=ignore -loop-interchange-threshold=-100 -verify-loop-lcssa -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\perserve-lcssa.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -loop-interchange-profitabilities=ignore -loop-interchange-threshold=-100 -verify-loop-lcssa -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\perserve-lcssa.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\perserve-lcssa.ll:16:16: error: CHECK-LABEL: expected string not found in input
# | ; CHECK-LABEL: inner.body.split:
# | ^
# | <stdin>:16:12: note: scanning from here
# | inner.body: ; preds = %inner.body, %outer.header
# | ^
# | <stdin>:16:24: note: possible intended match here
# | inner.body: ; preds = %inner.body, %outer.header
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\perserve-lcssa.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 11:
# | 12: outer.header: ; preds = %outer.latch, %entry
# | 13: %iv.outer = phi i64 [ 0, %entry ], [ %iv.outer.next, %outer.latch ]
# | 14: br label %inner.body
# | 15:
# | 16: inner.body: ; preds = %inner.body, %outer.header
# | label:16'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | label:16'1 ? possible intended match
# | 17: %iv.inner = phi i64 [ 5, %outer.header ], [ %iv.inner.next, %inner.body ]
# | label:16'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 18: %v7 = getelementptr inbounds [10 x [10 x i32]], ptr @c, i64 0, i64 %iv.inner, i64 %iv.outer
# | label:16'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 19: store i32 0, ptr %v7, align 4
# | label:16'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 20: %iv.inner.next = add nsw i64 %iv.inner, -1
# | label:16'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 21: %v9 = icmp eq i64 %iv.inner, 0
# | label:16'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/phi-to-phi.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\phi-to-phi.ll -passes=loop-interchange -loop-interchange-profitabilities=ignore -verify-dom-info -verify-loop-info -verify-scev -verify-loop-lcssa -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\phi-to-phi.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -loop-interchange-profitabilities=ignore -verify-dom-info -verify-loop-info -verify-scev -verify-loop-lcssa -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\phi-to-phi.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\phi-to-phi.ll:12:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[OUTER_HEADER:.*]]
# | ^
# | <stdin>:10:2: note: 'next' match was here
# | br label %inner
# | ^
# | <stdin>:8:14: note: previous match ended here
# | outer.header: ; preds = %outer.latch, %entry
# | ^
# | <stdin>:9:1: note: non-matching line after previous match is here
# | %i = phi i64 [ 0, %entry ], [ %i.inc, %outer.latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\phi-to-phi.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 5: entry:
# | 6: br label %outer.header
# | 7:
# | 8: outer.header: ; preds = %outer.latch, %entry
# | 9: %i = phi i64 [ 0, %entry ], [ %i.inc, %outer.latch ]
# | 10: br label %inner
# | next:12 !~~~~~~~~~~~~~~ error: match on wrong line
# | 11:
# | 12: inner: ; preds = %inner, %outer.header
# | 13: %j = phi i64 [ 0, %outer.header ], [ %j.inc, %inner ]
# | 14: %k = phi i64 [ -1, %outer.header ], [ %j, %inner ]
# | 15: %gep = getelementptr [10 x i64], ptr %A, i64 %i, i64 %j
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/pr43326-ideal-access-pattern.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr43326-ideal-access-pattern.ll -passes=loop-interchange -cache-line-size=64 -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr43326-ideal-access-pattern.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr43326-ideal-access-pattern.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr43326-ideal-access-pattern.ll:22:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_OUTERMOST_HEADER:.*]]
# | ^
# | <stdin>:10:2: note: 'next' match was here
# | br label %for.middle.header
# | ^
# | <stdin>:8:22: note: previous match ended here
# | for.outermost.header: ; preds = %for.outermost.latch, %entry
# | ^
# | <stdin>:9:1: note: non-matching line after previous match is here
# | %indvars.outermost = phi i64 [ 0, %entry ], [ %indvars.outermost.next, %for.outermost.latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr43326-ideal-access-pattern.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 5: entry:
# | 6: br label %for.outermost.header
# | 7:
# | 8: for.outermost.header: ; preds = %for.outermost.latch, %entry
# | 9: %indvars.outermost = phi i64 [ 0, %entry ], [ %indvars.outermost.next, %for.outermost.latch ]
# | 10: br label %for.middle.header
# | next:22 !~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 11:
# | 12: for.cond.cleanup: ; preds = %for.outermost.latch
# | 13: ret void
# | 14:
# | 15: for.middle.header: ; preds = %for.middle.latch, %for.outermost.header
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/pr43326.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr43326.ll -passes=loop-interchange -cache-line-size=64 -loop-interchange-profitabilities=ignore -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr43326.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -loop-interchange-profitabilities=ignore -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr43326.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr43326.ll:25:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[INNER1_HEADER:.*]]
# | ^
# | <stdin>:30:2: note: 'next' match was here
# | br label %inner2.header
# | ^
# | <stdin>:26:15: note: previous match ended here
# | inner1.header: ; preds = %for.inc10, %outer.header
# | ^
# | <stdin>:27:1: note: non-matching line after previous match is here
# | %xor.lcssa9 = phi i32 [ %xor.lcssa.lcssa11, %outer.header ], [ %xor.lcssa, %for.inc10 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr43326.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 25:
# | 26: inner1.header: ; preds = %for.inc10, %outer.header
# | 27: %xor.lcssa9 = phi i32 [ %xor.lcssa.lcssa11, %outer.header ], [ %xor.lcssa, %for.inc10 ]
# | 28: %j = phi i8 [ 0, %outer.header ], [ %j.next, %for.inc10 ]
# | 29: %idxprom8 = sext i8 %j to i64
# | 30: br label %inner2.header
# | next:25 !~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 31:
# | 32: inner2.header: ; preds = %for.inc, %inner1.header
# | 33: %xor5 = phi i32 [ %xor.lcssa9, %inner1.header ], [ %xor, %for.inc ]
# | 34: %k = phi i32 [ 0, %inner1.header ], [ %k.next, %for.inc ]
# | 35: %idxprom = sext i32 %k to i64
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/pr45743-move-from-inner-preheader.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-interchange -cache-line-size=64 -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr45743-move-from-inner-preheader.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr45743-move-from-inner-preheader.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr45743-move-from-inner-preheader.ll'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr45743-move-from-inner-preheader.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr45743-move-from-inner-preheader.ll:25:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[OUTER_HEADER:.*]]
# | ^
# | <stdin>:13:2: note: 'next' match was here
# | br label %inner.ph
# | ^
# | <stdin>:10:14: note: previous match ended here
# | outer.header: ; preds = %outer.latch, %bb
# | ^
# | <stdin>:11:1: note: non-matching line after previous match is here
# | %outer.iv = phi i64 [ 0, %bb ], [ %outer.iv.next, %outer.latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr45743-move-from-inner-preheader.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 8: br label %outer.header
# | 9:
# | 10: outer.header: ; preds = %outer.latch, %bb
# | 11: %outer.iv = phi i64 [ 0, %bb ], [ %outer.iv.next, %outer.latch ]
# | 12: %outer.red = phi i32 [ 0, %bb ], [ %red.next.lcssa, %outer.latch ]
# | 13: br label %inner.ph
# | next:25 !~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 14:
# | 15: inner.ph: ; preds = %outer.header
# | 16: %add = add nsw i64 %outer.iv, 9
# | 17: br label %inner
# | 18:
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/pr48212.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr48212.ll -passes=loop-interchange -cache-line-size=64 -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr48212.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr48212.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr48212.ll:12:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[K1_03:%.*]] = phi i32 [ 0, %[[L1]] ], [ [[INC7:%.*]], %[[FOR_INC6:.*]] ]
# | ^
# | <stdin>:13:2: note: 'next' match was here
# | %k1.03 = phi i32 [ 0, %L1 ], [ %inc7, %for.inc6 ]
# | ^
# | <stdin>:11:10: note: previous match ended here
# | for.body: ; preds = %for.inc6, %L1
# | ^
# | <stdin>:12:1: note: non-matching line after previous match is here
# | %temp.04 = phi i32 [ undef, %L1 ], [ %temp.1.lcssa, %for.inc6 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr48212.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 8: L1: ; preds = %entry
# | 9: br label %for.body
# | 10:
# | 11: for.body: ; preds = %for.inc6, %L1
# | 12: %temp.04 = phi i32 [ undef, %L1 ], [ %temp.1.lcssa, %for.inc6 ]
# | 13: %k1.03 = phi i32 [ 0, %L1 ], [ %inc7, %for.inc6 ]
# | next:12 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 14: br label %L2
# | 15:
# | 16: L2: ; preds = %for.body
# | 17: br label %for.body3
# | 18:
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/pr56275.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr56275.ll -aa-pipeline=basic-aa -passes=loop-interchange -cache-line-size=64 -verify-dom-info -verify-loop-info -verify-scev -verify-loop-lcssa -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr56275.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -aa-pipeline=basic-aa -passes=loop-interchange -cache-line-size=64 -verify-dom-info -verify-loop-info -verify-scev -verify-loop-lcssa -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr56275.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr56275.ll:27:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[LOOP1_HEADER:.*]]
# | ^
# | <stdin>:14:2: note: 'next' match was here
# | br label %loop2.header
# | ^
# | <stdin>:10:14: note: previous match ended here
# | loop1.header: ; preds = %loop1.latch, %entry
# | ^
# | <stdin>:11:1: note: non-matching line after previous match is here
# | %i2 = phi i64 [ 1, %entry ], [ %i2.inc, %loop1.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr56275.ll:109:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[LOOP1_HEADER:.*]]
# | ^
# | <stdin>:49:2: note: 'next' match was here
# | br label %loop2.header
# | ^
# | <stdin>:45:14: note: previous match ended here
# | loop1.header: ; preds = %loop1.latch, %entry
# | ^
# | <stdin>:46:1: note: non-matching line after previous match is here
# | %i2 = phi i64 [ 1, %entry ], [ %i2.inc, %loop1.latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr56275.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 9:
# | 10: loop1.header: ; preds = %loop1.latch, %entry
# | 11: %i2 = phi i64 [ 1, %entry ], [ %i2.inc, %loop1.latch ]
# | 12: %i2.st = add i64 %i2, 1
# | 13: %i2.ld = add i64 %i2, 0
# | 14: br label %loop2.header
# | next:27 !~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 15:
# | 16: loop2.header: ; preds = %loop2.header, %loop1.header
# | 17: %i1 = phi i64 [ 1, %loop1.header ], [ %i1.inc, %loop2.header ]
# | 18: %i1.st = add i64 %i1, 0
# | 19: %i1.ld = add i64 %i1, 0
# | .
# | .
# | .
# | 44:
# | 45: loop1.header: ; preds = %loop1.latch, %entry
# | 46: %i2 = phi i64 [ 1, %entry ], [ %i2.inc, %loop1.latch ]
# | 47: %i2.st = add i64 %i2, 1
# | 48: %i2.ld = add i64 %i2, 0
# | 49: br label %loop2.header
# | next:109 !~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 50:
# | 51: loop2.header: ; preds = %loop2.header, %loop1.header
# | 52: %i1 = phi i64 [ 1, %loop1.header ], [ %i1.inc, %loop2.header ]
# | 53: %i1.st = add i64 %i1, 0
# | 54: %i1.ld = add i64 %i1, 0
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/pr57148.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr57148.ll -passes=loop-interchange -loop-interchange-profitabilities=cache -loop-interchange-threshold=-100 -verify-dom-info -verify-loop-info -verify-scev -verify-loop-lcssa -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr57148.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -loop-interchange-profitabilities=cache -loop-interchange-threshold=-100 -verify-dom-info -verify-loop-info -verify-scev -verify-loop-lcssa -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr57148.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr57148.ll:18:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_BODY42:.*]]
# | ^
# | <stdin>:16:2: note: 'next' match was here
# | br label %for.cond37.preheader
# | ^
# | <stdin>:14:22: note: previous match ended here
# | for.cond33.preheader: ; preds = %for.end67, %entry
# | ^
# | <stdin>:15:1: note: non-matching line after previous match is here
# | %i.011 = phi i16 [ 0, %entry ], [ %inc69, %for.end67 ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr57148.ll:102:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_COND33_PREHEADER1:.*]]
# | ^
# | <stdin>:57:2: note: 'next' match was here
# | br label %for.cond37.preheader
# | ^
# | <stdin>:55:22: note: previous match ended here
# | for.cond33.preheader: ; preds = %for.inc68, %entry
# | ^
# | <stdin>:56:1: note: non-matching line after previous match is here
# | %i.166 = phi i16 [ %inc69, %for.inc68 ], [ 0, %entry ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr57148.ll:184:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_BODY42:.*]]
# | ^
# | <stdin>:93:2: note: 'next' match was here
# | br label %for.cond37.preheader
# | ^
# | <stdin>:91:22: note: previous match ended here
# | for.cond33.preheader: ; preds = %for.end67, %entry
# | ^
# | <stdin>:92:1: note: non-matching line after previous match is here
# | %i.011 = phi i16 [ 0, %entry ], [ %inc69, %for.end67 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\pr57148.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 11: entry:
# | 12: br label %for.cond33.preheader
# | 13:
# | 14: for.cond33.preheader: ; preds = %for.end67, %entry
# | 15: %i.011 = phi i16 [ 0, %entry ], [ %inc69, %for.end67 ]
# | 16: br label %for.cond37.preheader
# | next:18 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 17:
# | 18: for.cond37.preheader: ; preds = %for.end64, %for.cond33.preheader
# | 19: %j.010 = phi i16 [ 0, %for.cond33.preheader ], [ %inc66, %for.end64 ]
# | 20: br label %for.body42
# | 21:
# | .
# | .
# | .
# | 52: entry:
# | 53: br label %for.cond33.preheader
# | 54:
# | 55: for.cond33.preheader: ; preds = %for.inc68, %entry
# | 56: %i.166 = phi i16 [ %inc69, %for.inc68 ], [ 0, %entry ]
# | 57: br label %for.cond37.preheader
# | next:102 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 58:
# | 59: for.cond37.preheader: ; preds = %middle.block80, %for.cond33.preheader
# | 60: %j.165 = phi i16 [ 0, %for.cond33.preheader ], [ %inc66, %middle.block80 ]
# | 61: %arrayidx60 = getelementptr inbounds [2 x [4 x i32]], ptr @c, i16 0, i16 %i.166, i16 %j.165
# | 62: br label %vector.body85
# | .
# | .
# | .
# | 88: entry:
# | 89: br label %for.cond33.preheader
# | 90:
# | 91: for.cond33.preheader: ; preds = %for.end67, %entry
# | 92: %i.011 = phi i16 [ 0, %entry ], [ %inc69, %for.end67 ]
# | 93: br label %for.cond37.preheader
# | next:184 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 94:
# | 95: for.cond37.preheader: ; preds = %for.end64, %for.cond33.preheader
# | 96: %j.010 = phi i16 [ 0, %for.cond33.preheader ], [ %inc66, %for.end64 ]
# | 97: br label %for.cond38.preheader
# | 98:
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/profitability-instorder.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-instorder.ll -passes=loop-interchange -loop-interchange-profitabilities=instorder -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-instorder.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -loop-interchange-profitabilities=instorder -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-instorder.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-instorder.ll:16:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[LOOP_I_HEADER_PREHEADER:.*]]
# | ^
# | <stdin>:10:2: note: 'next' match was here
# | br label %loop.j
# | ^
# | <stdin>:8:15: note: previous match ended here
# | loop.i.header: ; preds = %loop.i.latch, %entry
# | ^
# | <stdin>:9:1: note: non-matching line after previous match is here
# | %i = phi i64 [ 0, %entry ], [ %i.inc, %loop.i.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-instorder.ll:82:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[LOOP_I_HEADER_PREHEADER:.*]]
# | ^
# | <stdin>:37:2: note: 'next' match was here
# | br label %loop.j
# | ^
# | <stdin>:35:15: note: previous match ended here
# | loop.i.header: ; preds = %loop.i.latch, %entry
# | ^
# | <stdin>:36:1: note: non-matching line after previous match is here
# | %i = phi i64 [ 0, %entry ], [ %i.inc, %loop.i.latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-instorder.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 5: entry:
# | 6: br label %loop.i.header
# | 7:
# | 8: loop.i.header: ; preds = %loop.i.latch, %entry
# | 9: %i = phi i64 [ 0, %entry ], [ %i.inc, %loop.i.latch ]
# | 10: br label %loop.j
# | next:16 !~~~~~~~~~~~~~~~ error: match on wrong line
# | 11:
# | 12: loop.j: ; preds = %loop.j, %loop.i.header
# | 13: %j = phi i64 [ 0, %loop.i.header ], [ %j.inc, %loop.j ]
# | 14: %mul = mul i64 %j, 100
# | 15: %offset = add i64 %i, %mul
# | .
# | .
# | .
# | 32: entry:
# | 33: br label %loop.i.header
# | 34:
# | 35: loop.i.header: ; preds = %loop.i.latch, %entry
# | 36: %i = phi i64 [ 0, %entry ], [ %i.inc, %loop.i.latch ]
# | 37: br label %loop.j
# | next:82 !~~~~~~~~~~~~~~~ error: match on wrong line
# | 38:
# | 39: loop.j: ; preds = %loop.j, %loop.i.header
# | 40: %j = phi i64 [ 0, %loop.i.header ], [ %j.inc, %loop.j ]
# | 41: %j.rev = sub i64 9, %j
# | 42: %mul = mul i64 %j.rev, 100
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/profitability-redundant-interchange.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-redundant-interchange.ll -passes=loop-interchange -cache-line-size=1 -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-redundant-interchange.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=1 -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-redundant-interchange.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-redundant-interchange.ll:28:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_COND5_PREHEADER:.*]]
# | ^
# | <stdin>:18:2: note: 'next' match was here
# | br label %for.body8
# | ^
# | <stdin>:15:21: note: previous match ended here
# | for.cond5.preheader: ; preds = %for.cond.cleanup7, %for.cond1.preheader
# | ^
# | <stdin>:16:1: note: non-matching line after previous match is here
# | %indvars.iv41 = phi i64 [ 1, %for.cond1.preheader ], [ %indvars.iv.next42, %for.cond.cleanup7 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-redundant-interchange.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 13: br label %for.cond5.preheader
# | 14:
# | 15: for.cond5.preheader: ; preds = %for.cond.cleanup7, %for.cond1.preheader
# | 16: %indvars.iv41 = phi i64 [ 1, %for.cond1.preheader ], [ %indvars.iv.next42, %for.cond.cleanup7 ]
# | 17: %1 = add nsw i64 %indvars.iv41, -1
# | 18: br label %for.body8
# | next:28 !~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 19:
# | 20: for.cond.cleanup3: ; preds = %for.cond.cleanup7
# | 21: %indvars.iv.next47 = add nuw nsw i64 %indvars.iv46, 1
# | 22: %exitcond50 = icmp ne i64 %indvars.iv.next47, 4
# | 23: br i1 %exitcond50, label %for.cond1.preheader, label %for.cond.cleanup
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/profitability-vectorization-heuristic.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-vectorization-heuristic.ll -passes=loop-interchange -cache-line-size=64 -loop-interchange-profitabilities=vectorize -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-vectorization-heuristic.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -loop-interchange-profitabilities=vectorize -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-vectorization-heuristic.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-vectorization-heuristic.ll:25:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:16:2: note: 'next' match was here
# | br label %for.j.body
# | ^
# | <stdin>:14:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.inc, %entry
# | ^
# | <stdin>:15:1: note: non-matching line after previous match is here
# | %i = phi i64 [ 1, %entry ], [ %i.next, %for.i.inc ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-vectorization-heuristic.ll:179:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:83:2: note: 'next' match was here
# | br label %for.j.body
# | ^
# | <stdin>:80:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.inc, %entry
# | ^
# | <stdin>:81:1: note: non-matching line after previous match is here
# | %i = phi i64 [ 1, %entry ], [ %i.next, %for.i.inc ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-vectorization-heuristic.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 11: entry:
# | 12: br label %for.i.header
# | 13:
# | 14: for.i.header: ; preds = %for.i.inc, %entry
# | 15: %i = phi i64 [ 1, %entry ], [ %i.next, %for.i.inc ]
# | 16: br label %for.j.body
# | next:25 !~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 17:
# | 18: for.j.body: ; preds = %for.j.body, %for.i.header
# | 19: %j = phi i64 [ 1, %for.i.header ], [ %j.next, %for.j.body ]
# | 20: %j.dec = add nsw i64 %j, -1
# | 21: %a.load.index = getelementptr inbounds nuw [256 x [256 x float]], ptr @A, i64 0, i64 %i, i64 %j.dec
# | .
# | .
# | .
# | 78: br label %for.i.header
# | 79:
# | 80: for.i.header: ; preds = %for.i.inc, %entry
# | 81: %i = phi i64 [ 1, %entry ], [ %i.next, %for.i.inc ]
# | 82: %i.inc = add nuw nsw i64 %i, 1
# | 83: br label %for.j.body
# | next:179 !~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 84:
# | 85: for.j.body: ; preds = %for.j.body, %for.i.header
# | 86: %j = phi i64 [ 1, %for.i.header ], [ %j.next, %for.j.body ]
# | 87: %j.dec = add nsw i64 %j, -1
# | 88: %a.load.index = getelementptr inbounds [256 x [256 x float]], ptr @A, i64 0, i64 %i, i64 %j.dec
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/profitability-vectorization.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-vectorization.ll -passes=loop-interchange -cache-line-size=64 -loop-interchange-profitabilities=instorder -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe --check-prefix=PROFIT-CACHE C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-vectorization.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -loop-interchange-profitabilities=instorder -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' --check-prefix=PROFIT-CACHE 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-vectorization.ll'
# note: command had no output on stdout or stderr
# RUN: at line 4
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-vectorization.ll -passes=loop-interchange -cache-line-size=64 -loop-interchange-profitabilities=vectorize,cache,instorder -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe --check-prefix=PROFIT-VEC C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-vectorization.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -loop-interchange-profitabilities=vectorize,cache,instorder -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' --check-prefix=PROFIT-VEC 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-vectorization.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-vectorization.ll:66:20: error: PROFIT-VEC-NEXT: is not on the line after the previous match
# | ; PROFIT-VEC-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:17:2: note: 'next' match was here
# | br label %for.j.body
# | ^
# | <stdin>:15:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.inc, %entry
# | ^
# | <stdin>:16:1: note: non-matching line after previous match is here
# | %i = phi i64 [ 0, %entry ], [ %i.next, %for.i.inc ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\profitability-vectorization.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 12: entry:
# | 13: br label %for.i.header
# | 14:
# | 15: for.i.header: ; preds = %for.i.inc, %entry
# | 16: %i = phi i64 [ 0, %entry ], [ %i.next, %for.i.inc ]
# | 17: br label %for.j.body
# | next:66 !~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 18:
# | 19: for.j.body: ; preds = %for.j.body, %for.i.header
# | 20: %j = phi i64 [ 1, %for.i.header ], [ %j.next, %for.j.body ]
# | 21: %j.dec = add nsw i64 %j, -1
# | 22: %a.0.index = getelementptr inbounds nuw [256 x [256 x float]], ptr @A, i64 0, i64 %j.dec, i64 %i
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/reduction-not-involve-innermost.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction-not-involve-innermost.ll -S -passes=loop-interchange -loop-interchange-profitabilities=ignore | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction-not-involve-innermost.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -passes=loop-interchange -loop-interchange-profitabilities=ignore
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction-not-involve-innermost.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction-not-involve-innermost.ll:16:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[LOOP_I_HEADER:.*]]
# | ^
# | <stdin>:11:2: note: 'next' match was here
# | br label %loop.j.header
# | ^
# | <stdin>:8:15: note: previous match ended here
# | loop.i.header: ; preds = %loop.i.latch, %entry
# | ^
# | <stdin>:9:1: note: non-matching line after previous match is here
# | %i = phi i64 [ 0, %entry ], [ %i.inc, %loop.i.latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction-not-involve-innermost.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 6: br label %loop.i.header
# | 7:
# | 8: loop.i.header: ; preds = %loop.i.latch, %entry
# | 9: %i = phi i64 [ 0, %entry ], [ %i.inc, %loop.i.latch ]
# | 10: %red.i = phi i8 [ 0, %entry ], [ %red.j.next.lcssa, %loop.i.latch ]
# | 11: br label %loop.j.header
# | next:16 !~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 12:
# | 13: loop.j.header: ; preds = %loop.j.latch, %loop.i.header
# | 14: %j = phi i64 [ 0, %loop.i.header ], [ %j.inc, %loop.j.latch ]
# | 15: %red.j = phi i8 [ %red.i, %loop.i.header ], [ %red.j.next, %loop.j.latch ]
# | 16: br label %loop.k
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/reduction2mem-extra-lcssa.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 5
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction2mem-extra-lcssa.ll -passes=loop-interchange -loop-interchange-reduction-to-mem -pass-remarks-missed=loop-interchange -pass-remarks-output=C:\_work\llvm-project\llvm-project\build\test\Transforms\LoopInterchange\Output\reduction2mem-extra-lcssa.ll.tmp -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefix=IR C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction2mem-extra-lcssa.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -loop-interchange-reduction-to-mem -pass-remarks-missed=loop-interchange '-pass-remarks-output=C:\_work\llvm-project\llvm-project\build\test\Transforms\LoopInterchange\Output\reduction2mem-extra-lcssa.ll.tmp' -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefix=IR 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction2mem-extra-lcssa.ll'
# note: command had no output on stdout or stderr
# RUN: at line 8
c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe --input-file=C:\_work\llvm-project\llvm-project\build\test\Transforms\LoopInterchange\Output\reduction2mem-extra-lcssa.ll.tmp C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction2mem-extra-lcssa.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' '--input-file=C:\_work\llvm-project\llvm-project\build\test\Transforms\LoopInterchange\Output\reduction2mem-extra-lcssa.ll.tmp' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction2mem-extra-lcssa.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction2mem-extra-lcssa.ll:10:10: error: CHECK: expected string not found in input
# | ; CHECK: --- !Missed
# | ^
# | C:\_work\llvm-project\llvm-project\build\test\Transforms\LoopInterchange\Output\reduction2mem-extra-lcssa.ll.tmp:1:1: note: scanning from here
# | --- !Analysis
# | ^
# |
# | Input file: C:\_work\llvm-project\llvm-project\build\test\Transforms\LoopInterchange\Output\reduction2mem-extra-lcssa.ll.tmp
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction2mem-extra-lcssa.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: --- !Analysis
# | check:10 X~~~~~~~~~~~~~ error: no match found
# | 2: Pass: loop-interchange
# | check:10 ~~~~~~~~~~~~~~~~~~~~~~~
# | 3: Name: Dependence
# | check:10 ~~~~~~~~~~~~~~~~~
# | 4: Function: reduction_lcssa_with_non_phi_user
# | check:10 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 5: Args:
# | check:10 ~~~~~~
# | 6: - String: Computed dependence info, invoking the transform.
# | check:10 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 7: ...
# | check:10 ~~~~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/reduction2mem.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction2mem.ll -passes="loop-interchange" -loop-interchange-reduction-to-mem -loop-interchange-profitabilities=ignore -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction2mem.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -loop-interchange-reduction-to-mem -loop-interchange-profitabilities=ignore -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction2mem.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction2mem.ll:18:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[OUTERLOOP_HEADER:.*]]
# | ^
# | <stdin>:13:2: note: 'next' match was here
# | br label %innerloop
# | ^
# | <stdin>:8:18: note: previous match ended here
# | outerloop_header: ; preds = %outerloop_latch, %entry
# | ^
# | <stdin>:9:1: note: non-matching line after previous match is here
# | %index_i = phi i64 [ 0, %entry ], [ %index_i.next, %outerloop_latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reduction2mem.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 8: outerloop_header: ; preds = %outerloop_latch, %entry
# | 9: %index_i = phi i64 [ 0, %entry ], [ %index_i.next, %outerloop_latch ]
# | 10: %addr_s = getelementptr inbounds nuw double, ptr %s, i64 %index_i
# | 11: %invariant.gep.us = getelementptr inbounds nuw double, ptr %a, i64 %index_i
# | 12: %invariant.gep32.us = getelementptr inbounds nuw double, ptr %b, i64 %index_i
# | 13: br label %innerloop
# | next:18 !~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 14:
# | 15: innerloop: ; preds = %innerloop, %outerloop_header
# | 16: %index_j = phi i64 [ 0, %outerloop_header ], [ %index_j.next, %innerloop ]
# | 17: %reduction = phi double [ 0.000000e+00, %outerloop_header ], [ %add, %innerloop ]
# | 18: %addr_a_j_i = getelementptr inbounds nuw [100 x double], ptr %invariant.gep.us, i64 %index_j
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/reductions-across-inner-and-outer-loop.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-across-inner-and-outer-loop.ll -passes=loop-interchange -cache-line-size=64 -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-across-inner-and-outer-loop.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-across-inner-and-outer-loop.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-across-inner-and-outer-loop.ll:13:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR1_HEADER:.*]]
# | ^
# | <stdin>:12:2: note: 'next' match was here
# | br label %for2
# | ^
# | <stdin>:9:13: note: previous match ended here
# | for1.header: ; preds = %for1.inc, %entry
# | ^
# | <stdin>:10:1: note: non-matching line after previous match is here
# | %indvars.iv23 = phi i64 [ 0, %entry ], [ %indvars.iv.next24, %for1.inc ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-across-inner-and-outer-loop.ll:327:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[OUTER_HEADER:.*]]
# | ^
# | <stdin>:167:2: note: 'next' match was here
# | br label %for.body3
# | ^
# | <stdin>:164:14: note: previous match ended here
# | outer.header: ; preds = %outer.inc, %entry
# | ^
# | <stdin>:165:1: note: non-matching line after previous match is here
# | %iv.outer = phi i64 [ 1, %entry ], [ %iv.outer.next, %outer.inc ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-across-inner-and-outer-loop.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 7: br label %for1.header
# | 8:
# | 9: for1.header: ; preds = %for1.inc, %entry
# | 10: %indvars.iv23 = phi i64 [ 0, %entry ], [ %indvars.iv.next24, %for1.inc ]
# | 11: %sum.outer = phi i64 [ 0, %entry ], [ %sum.inc.lcssa, %for1.inc ]
# | 12: br label %for2
# | next:13 !~~~~~~~~~~~~~ error: match on wrong line
# | 13:
# | 14: for2: ; preds = %for2, %for1.header
# | 15: %indvars.iv = phi i64 [ 0, %for1.header ], [ %indvars.iv.next.3, %for2 ]
# | 16: %sum.inner = phi i64 [ %sum.outer, %for1.header ], [ %sum.inc, %for2 ]
# | 17: %arrayidx = getelementptr inbounds [100 x [100 x i64]], ptr %Arr, i64 0, i64 %indvars.iv, i64 %indvars.iv23
# | .
# | .
# | .
# | 162: br label %outer.header
# | 163:
# | 164: outer.header: ; preds = %outer.inc, %entry
# | 165: %iv.outer = phi i64 [ 1, %entry ], [ %iv.outer.next, %outer.inc ]
# | 166: %float.outer = phi float [ 1.000000e+00, %entry ], [ %float.inner.lcssa, %outer.inc ]
# | 167: br label %for.body3
# | next:327 !~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 168:
# | 169: for.body3: ; preds = %for.body3, %outer.header
# | 170: %float.inner = phi float [ %float.outer, %outer.header ], [ %float.inner.inc.inc, %for.body3 ]
# | 171: %iv.inner = phi i64 [ %iv.inner.next, %for.body3 ], [ 1, %outer.header ]
# | 172: %arrayidx5 = getelementptr inbounds [100 x [100 x float]], ptr %Arr, i64 0, i64 %iv.inner, i64 %iv.outer
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/reductions-non-wrapped-operations.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-non-wrapped-operations.ll -passes=loop-interchange -cache-line-size=64 -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-non-wrapped-operations.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-non-wrapped-operations.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-non-wrapped-operations.ll:17:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:11:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:8:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:9:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-non-wrapped-operations.ll:88:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:40:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:37:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:38:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-non-wrapped-operations.ll:159:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:69:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:66:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:67:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-non-wrapped-operations.ll:230:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:98:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:95:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:96:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-non-wrapped-operations.ll:303:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:128:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:125:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:126:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-non-wrapped-operations.ll:376:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:158:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:155:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:156:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-non-wrapped-operations.ll:449:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:188:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:185:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:186:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-non-wrapped-operations.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 6: br label %for.i.header
# | 7:
# | 8: for.i.header: ; preds = %for.i.latch, %entry
# | 9: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 10: %or.i = phi i32 [ 0, %entry ], [ %or.i.lcssa, %for.i.latch ]
# | 11: br label %for.j
# | next:17 !~~~~~~~~~~~~~~ error: match on wrong line
# | 12:
# | 13: for.j: ; preds = %for.j, %for.i.header
# | 14: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 15: %or.j = phi i32 [ %or.i, %for.i.header ], [ %or.j.next, %for.j ]
# | 16: %idx = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | 35: br label %for.i.header
# | 36:
# | 37: for.i.header: ; preds = %for.i.latch, %entry
# | 38: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 39: %and.i = phi i32 [ -1, %entry ], [ %and.i.lcssa, %for.i.latch ]
# | 40: br label %for.j
# | next:88 !~~~~~~~~~~~~~~ error: match on wrong line
# | 41:
# | 42: for.j: ; preds = %for.j, %for.i.header
# | 43: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 44: %and.j = phi i32 [ %and.i, %for.i.header ], [ %and.j.next, %for.j ]
# | 45: %idx = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | 64: br label %for.i.header
# | 65:
# | 66: for.i.header: ; preds = %for.i.latch, %entry
# | 67: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 68: %xor.i = phi i32 [ 0, %entry ], [ %xor.i.lcssa, %for.i.latch ]
# | 69: br label %for.j
# | next:159 !~~~~~~~~~~~~~~ error: match on wrong line
# | 70:
# | 71: for.j: ; preds = %for.j, %for.i.header
# | 72: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 73: %xor.j = phi i32 [ %xor.i, %for.i.header ], [ %xor.j.next, %for.j ]
# | 74: %idx = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | 93: br label %for.i.header
# | 94:
# | 95: for.i.header: ; preds = %for.i.latch, %entry
# | 96: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 97: %smin.i = phi i32 [ %init, %entry ], [ %smin.i.lcssa, %for.i.latch ]
# | 98: br label %for.j
# | next:230 !~~~~~~~~~~~~~~ error: match on wrong line
# | 99:
# | 100: for.j: ; preds = %for.j, %for.i.header
# | 101: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 102: %smin.j = phi i32 [ %smin.i, %for.i.header ], [ %smin.j.next, %for.j ]
# | 103: %idx = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | 123: br label %for.i.header
# | 124:
# | 125: for.i.header: ; preds = %for.i.latch, %entry
# | 126: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 127: %smax.i = phi i32 [ %init, %entry ], [ %smax.i.lcssa, %for.i.latch ]
# | 128: br label %for.j
# | next:303 !~~~~~~~~~~~~~~ error: match on wrong line
# | 129:
# | 130: for.j: ; preds = %for.j, %for.i.header
# | 131: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 132: %smax.j = phi i32 [ %smax.i, %for.i.header ], [ %smax.j.next, %for.j ]
# | 133: %idx = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | 153: br label %for.i.header
# | 154:
# | 155: for.i.header: ; preds = %for.i.latch, %entry
# | 156: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 157: %umin.i = phi i32 [ %init, %entry ], [ %umin.i.lcssa, %for.i.latch ]
# | 158: br label %for.j
# | next:376 !~~~~~~~~~~~~~~ error: match on wrong line
# | 159:
# | 160: for.j: ; preds = %for.j, %for.i.header
# | 161: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 162: %umin.j = phi i32 [ %umin.i, %for.i.header ], [ %umin.j.next, %for.j ]
# | 163: %idx = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | 183: br label %for.i.header
# | 184:
# | 185: for.i.header: ; preds = %for.i.latch, %entry
# | 186: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 187: %umax.i = phi i32 [ 0, %entry ], [ %umax.i.lcssa, %for.i.latch ]
# | 188: br label %for.j
# | next:449 !~~~~~~~~~~~~~~ error: match on wrong line
# | 189:
# | 190: for.j: ; preds = %for.j, %for.i.header
# | 191: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 192: %umax.j = phi i32 [ %umax.i, %for.i.header ], [ %umax.j.next, %for.j ]
# | 193: %idx = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/reductions-with-nowraps.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-interchange -cache-line-size=64 -S < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-with-nowraps.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-with-nowraps.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-with-nowraps.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-with-nowraps.ll:17:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:11:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:8:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:9:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-with-nowraps.ll:88:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[FOR_I_HEADER:.*]]
# | ^
# | <stdin>:40:2: note: 'next' match was here
# | br label %for.j
# | ^
# | <stdin>:37:14: note: previous match ended here
# | for.i.header: ; preds = %for.i.latch, %entry
# | ^
# | <stdin>:38:1: note: non-matching line after previous match is here
# | %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\reductions-with-nowraps.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 6: br label %for.i.header
# | 7:
# | 8: for.i.header: ; preds = %for.i.latch, %entry
# | 9: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 10: %sum.i = phi i32 [ 0, %entry ], [ %sum.i.lcssa, %for.i.latch ]
# | 11: br label %for.j
# | next:17 !~~~~~~~~~~~~~~ error: match on wrong line
# | 12:
# | 13: for.j: ; preds = %for.j, %for.i.header
# | 14: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 15: %sum.j = phi i32 [ %sum.i, %for.i.header ], [ %sum.j.next, %for.j ]
# | 16: %idx = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | 35: br label %for.i.header
# | 36:
# | 37: for.i.header: ; preds = %for.i.latch, %entry
# | 38: %i = phi i32 [ 0, %entry ], [ %i.inc, %for.i.latch ]
# | 39: %prod.i = phi i32 [ 1, %entry ], [ %prod.i.lcssa, %for.i.latch ]
# | 40: br label %for.j
# | next:88 !~~~~~~~~~~~~~~ error: match on wrong line
# | 41:
# | 42: for.j: ; preds = %for.j, %for.i.header
# | 43: %j = phi i32 [ 0, %for.i.header ], [ %j.inc, %for.j ]
# | 44: %prod.j = phi i32 [ %prod.i, %for.i.header ], [ %prod.j.next, %for.j ]
# | 45: %idx = getelementptr inbounds [2 x [2 x i32]], ptr %A, i32 0, i32 %j, i32 %i
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopInterchange/update-condbranch-duplicate-successors.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-interchange -cache-line-size=64 -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\update-condbranch-duplicate-successors.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\update-condbranch-duplicate-successors.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-interchange -cache-line-size=64 -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\update-condbranch-duplicate-successors.ll'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\update-condbranch-duplicate-successors.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\update-condbranch-duplicate-successors.ll:20:10: error: CHECK: expected string not found in input
# | ; CHECK: [[INNER_HEADER_PREHEADER]]:
# | ^
# | <stdin>:15:24: note: scanning from here
# | br label %inner.header
# | ^
# | <stdin>:15:24: note: with "INNER_HEADER_PREHEADER" equal to "outer.ph"
# | br label %inner.header
# | ^
# | <stdin>:17:13: note: possible intended match here
# | inner.header: ; preds = %inner.header, %outer.header
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\update-condbranch-duplicate-successors.ll:91:10: error: CHECK: expected string not found in input
# | ; CHECK: [[INNER_HEADER_PREHEADER]]:
# | ^
# | <stdin>:51:74: note: scanning from here
# | br i1 %cmp, label %inner.header.preheader, label %inner.header.preheader
# | ^
# | <stdin>:51:74: note: with "INNER_HEADER_PREHEADER" equal to "outer.header.preheader"
# | br i1 %cmp, label %inner.header.preheader, label %inner.header.preheader
# | ^
# | <stdin>:53:23: note: possible intended match here
# | inner.header.preheader: ; preds = %outer.header, %outer.header
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopInterchange\update-condbranch-duplicate-successors.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 10: outer.ph: ; preds = %entry, %entry
# | 11: br label %outer.header
# | 12:
# | 13: outer.header: ; preds = %outer.latch, %outer.ph
# | 14: %outer.iv = phi i64 [ 0, %outer.ph ], [ %outer.iv.next, %outer.latch ]
# | 15: br label %inner.header
# | check:20'0 X error: no match found
# | check:20'1 with "INNER_HEADER_PREHEADER" equal to "outer.ph"
# | 16:
# | check:20'0 ~
# | 17: inner.header: ; preds = %inner.header, %outer.header
# | check:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:20'2 ? possible intended match
# | 18: %inner.iv = phi i64 [ %inner.iv.next, %inner.header ], [ 5, %outer.header ]
# | check:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 19: %ptr = getelementptr inbounds [1000 x [1000 x i32]], ptr @global, i64 0, i64 %inner.iv, i64 %outer.iv
# | check:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 20: %lv = load i32, ptr %ptr, align 4
# | check:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 21: %v = mul i32 %lv, 100
# | check:20'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 22: store i32 %v, ptr %ptr, align 4
# | check:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 46: outer.header.preheader: ; preds = %outer.ph, %outer.ph
# | 47: br label %outer.header
# | 48:
# | 49: outer.header: ; preds = %outer.header.preheader, %outer.latch
# | 50: %outer.iv = phi i64 [ %outer.iv.next, %outer.latch ], [ 0, %outer.header.preheader ]
# | 51: br i1 %cmp, label %inner.header.preheader, label %inner.header.preheader
# | check:91'0 X error: no match found
# | check:91'1 with "INNER_HEADER_PREHEADER" equal to "outer.header.preheader"
# | 52:
# | check:91'0 ~
# | 53: inner.header.preheader: ; preds = %outer.header, %outer.header
# | check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:91'2 ? possible intended match
# | 54: br label %inner.header
# | check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 55:
# | check:91'0 ~
# | 56: inner.header: ; preds = %inner.header.preheader, %inner.header
# | check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 57: %inner.iv = phi i64 [ %inner.iv.next, %inner.header ], [ 5, %inner.header.preheader ]
# | check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 58: %ptr = getelementptr inbounds [1000 x [1000 x i32]], ptr @global, i64 0, i64 %inner.iv, i64 %outer.iv
# | check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.
https://github.com/llvm/llvm-project/pull/202751
More information about the llvm-branch-commits
mailing list