[llvm] [AArch64]Enable aggressive interleaving for A320 (PR #169825)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 9 05:38:05 PST 2025
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 128452 tests passed
* 2793 tests skipped
* 24 tests failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.CodeGen/AArch64/aggressive-interleaving.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\CodeGen\AArch64\aggressive-interleaving.ll -passes=loop-vectorize -S -mtriple=aarch64-unknown-linux-gnu -mcpu=cortex-a320 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\aggressive-interleaving.ll --check-prefix=A320
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -S -mtriple=aarch64-unknown-linux-gnu -mcpu=cortex-a320
# 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\CodeGen\AArch64\aggressive-interleaving.ll' --check-prefix=A320
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\aggressive-interleaving.ll:46:14: error: A320-NEXT: expected string not found in input
# | ; A320-NEXT: [[TMP6:%.*]] = add i64 [[OFFSET_IDX]], 0
# | ^
# | <stdin>:42:33: note: scanning from here
# | %offset.idx = mul i64 %index, 4
# | ^
# | <stdin>:42:33: note: with "OFFSET_IDX" equal to "%offset.idx"
# | %offset.idx = mul i64 %index, 4
# | ^
# | <stdin>:43:2: note: possible intended match here
# | %8 = add i64 %offset.idx, 4
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\aggressive-interleaving.ll:151:14: error: A320-SAME: expected string not found in input
# | ; A320-SAME: ptr nocapture readonly [[A:%.*]], i64 [[N:%.*]]) #[[ATTR0]] {
# | ^
# | <stdin>:103:30: note: scanning from here
# | define double @sum_reduction(ptr readonly captures(none) %a, i64 %n) #0 {
# | ^
# | <stdin>:103:30: note: with "ATTR0" equal to "0"
# | define double @sum_reduction(ptr readonly captures(none) %a, i64 %n) #0 {
# | ^
# | <stdin>:103:39: note: possible intended match here
# | define double @sum_reduction(ptr readonly captures(none) %a, i64 %n) #0 {
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\aggressive-interleaving.ll:233:14: error: A320-SAME: expected string not found in input
# | ; A320-SAME: ptr nocapture readonly [[A:%.*]], ptr nocapture readonly [[B:%.*]], i64 [[N:%.*]]) #[[ATTR0]] {
# | ^
# | <stdin>:161:28: note: scanning from here
# | define double @dot_product(ptr readonly captures(none) %a, ptr readonly captures(none) %b, i64 %n) #0 {
# | ^
# | <stdin>:161:28: note: with "ATTR0" equal to "0"
# | define double @dot_product(ptr readonly captures(none) %a, ptr readonly captures(none) %b, i64 %n) #0 {
# | ^
# | <stdin>:161:52: note: possible intended match here
# | define double @dot_product(ptr readonly captures(none) %a, ptr readonly captures(none) %b, i64 %n) #0 {
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\aggressive-interleaving.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 37:
# | 38: vector.body: ; preds = %vector.body, %vector.ph
# | 39: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# | 40: %vec.phi = phi double [ 0.000000e+00, %vector.ph ], [ %22, %vector.body ]
# | 41: %vec.phi3 = phi double [ 0.000000e+00, %vector.ph ], [ %23, %vector.body ]
# | 42: %offset.idx = mul i64 %index, 4
# | next:46'0 X error: no match found
# | next:46'1 with "OFFSET_IDX" equal to "%offset.idx"
# | 43: %8 = add i64 %offset.idx, 4
# | next:46'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:46'2 ? possible intended match
# | 44: %next.gep = getelementptr i8, ptr %tpm27, i64 %offset.idx
# | next:46'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 45: %next.gep4 = getelementptr i8, ptr %tpm27, i64 %8
# | next:46'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 46: %offset.idx5 = mul i64 %index, 8
# | next:46'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 47: %9 = add i64 %offset.idx5, 8
# | next:46'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 48: %next.gep6 = getelementptr i8, ptr %tpm32, i64 %offset.idx5
# | next:46'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 98: %tpm37 = fsub fast double 0.000000e+00, %tpm50.lcssa
# | next:46'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 99: store double %tpm37, ptr %tpm35, align 8
# | next:46'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 100: br label %outer
# | next:46'0 ~~~~~~~~~~~~~~~~~
# | 101: }
# | next:46'0 ~~
# | 102:
# | next:46'0 ~
# | 103: define double @sum_reduction(ptr readonly captures(none) %a, i64 %n) #0 {
# | next:46'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | same:151'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | same:151'1 with "ATTR0" equal to "0"
# | same:151'2 ? possible intended match
# | 104: entry:
# | same:151'0 ~~~~~~~
# | 105: %cmp0 = icmp eq i64 %n, 0
# | same:151'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 106: br i1 %cmp0, label %exit, label %loop.preheader
# | same:151'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 107:
# | same:151'0 ~
# | 108: loop.preheader: ; preds = %entry
# | same:151'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 156: exit: ; preds = %exit.loopexit, %entry
# | same:151'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 157: %res = phi double [ 0.000000e+00, %entry ], [ %sum.next.lcssa, %exit.loopexit ]
# | same:151'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 158: ret double %res
# | same:151'0 ~~~~~~~~~~~~~~~~~
# | 159: }
# | same:151'0 ~~
# | 160:
# | same:151'0 ~
# | 161: define double @dot_product(ptr readonly captures(none) %a, ptr readonly captures(none) %b, i64 %n) #0 {
# | same:151'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | same:233'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | same:233'1 with "ATTR0" equal to "0"
# | same:233'2 ? possible intended match
# | 162: entry:
# | same:233'0 ~~~~~~~
# | 163: %cmp0 = icmp eq i64 %n, 0
# | same:233'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 164: br i1 %cmp0, label %exit, label %loop.preheader
# | same:233'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 165:
# | same:233'0 ~
# | 166: loop.preheader: ; preds = %entry
# | same:233'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/blend-costs.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -p loop-vectorize -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\blend-costs.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\blend-costs.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -p loop-vectorize -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\blend-costs.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\LoopVectorize\AArch64\blend-costs.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\blend-costs.ll:12:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[MIN_ITERS_CHECK:%.*]] = icmp ule i64 [[TMP43]], 16
# | ^
# | <stdin>:8:20: note: scanning from here
# | %0 = add i64 %N, 1
# | ^
# | <stdin>:8:20: note: with "TMP43" equal to "%0"
# | %0 = add i64 %N, 1
# | ^
# | <stdin>:9:13: note: possible intended match here
# | %min.iters.check = icmp ule i64 %0, 32
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\blend-costs.ll:193:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <16 x i8>, ptr [[GEP_SRC]], align 1
# | ^
# | <stdin>:335:2: note: 'next' match was here
# | %wide.load = load <16 x i8>, ptr %1, align 1
# | ^
# | <stdin>:333:54: note: previous match ended here
# | %1 = getelementptr inbounds i8, ptr %src, i32 %index
# | ^
# | <stdin>:334:1: note: non-matching line after previous match is here
# | %2 = getelementptr inbounds i8, ptr %1, i64 16
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\blend-costs.ll:402:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[LOOP_HEADER:.*]]
# | ^
# | <stdin>:744:2: note: 'next' match was here
# | br label %vector.body
# | ^
# | <stdin>:735:7: note: previous match ended here
# | entry:
# | ^
# | <stdin>:736:1: note: non-matching line after previous match is here
# | %0 = add i64 %N, 1
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\blend-costs.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: ; ModuleID = 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\blend-costs.ll'
# | 2: source_filename = "C:\\_work\\llvm-project\\llvm-project\\llvm\\test\\Transforms\\LoopVectorize\\AArch64\\blend-costs.ll"
# | 3: target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128-Fn32"
# | 4: target triple = "arm64-apple-macosx14.0.0"
# | 5:
# | 6: define void @test_blend_feeding_replicated_store_1(i64 %N, ptr noalias %src, ptr %dst) {
# | 7: entry:
# | 8: %0 = add i64 %N, 1
# | next:12'0 X error: no match found
# | next:12'1 with "TMP43" equal to "%0"
# | 9: %min.iters.check = icmp ule i64 %0, 32
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:12'2 ? possible intended match
# | 10: br i1 %min.iters.check, label %scalar.ph, label %vector.ph
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 11:
# | next:12'0 ~
# | 12: vector.ph: ; preds = %entry
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 13: %n.mod.vf = urem i64 %0, 32
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 14: %1 = icmp eq i64 %n.mod.vf, 0
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 330:
# | 331: vector.body: ; preds = %pred.store.continue64, %vector.ph
# | 332: %index = phi i32 [ 0, %vector.ph ], [ %index.next, %pred.store.continue64 ]
# | 333: %1 = getelementptr inbounds i8, ptr %src, i32 %index
# | 334: %2 = getelementptr inbounds i8, ptr %1, i64 16
# | 335: %wide.load = load <16 x i8>, ptr %1, align 1
# | next:193 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 336: %wide.load1 = load <16 x i8>, ptr %2, align 1
# | 337: %3 = icmp eq <16 x i8> %wide.load, zeroinitializer
# | 338: %4 = icmp eq <16 x i8> %wide.load1, zeroinitializer
# | 339: %5 = xor <16 x i1> %3, splat (i1 true)
# | 340: %6 = xor <16 x i1> %4, splat (i1 true)
# | .
# | .
# | .
# | 739:
# | 740: vector.ph: ; preds = %entry
# | 741: %n.mod.vf = urem i64 %0, 2
# | 742: %n.vec = sub i64 %0, %n.mod.vf
# | 743: %1 = xor i1 %c.2, true
# | 744: br label %vector.body
# | next:402 !~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 745:
# | 746: vector.body: ; preds = %pred.store.continue2, %vector.ph
# | 747: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue2 ]
# | 748: %2 = load i8, ptr %src.1, align 1
# | 749: %3 = zext i8 %2 to i32
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/call-costs.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -p loop-vectorize -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\call-costs.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\call-costs.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -p loop-vectorize -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\call-costs.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\LoopVectorize\AArch64\call-costs.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\call-costs.ll:110:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 100, %[[ENTRY]] ], [ [[IV_NEXT:%.*]], %[[LOOP_LATCH:.*]] ]
# | ^
# | <stdin>:79:11: note: scanning from here
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:79:11: note: with "ENTRY" equal to "entry"
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:83:2: note: possible intended match here
# | %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue2 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\call-costs.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 74:
# | 75: define void @call_scalarized(ptr noalias %src, ptr noalias %dst) {
# | 76: entry:
# | 77: br label %vector.ph
# | 78:
# | 79: vector.ph: ; preds = %entry
# | next:110'0 X~~~~~~~~~~~~~~~~~ error: no match found
# | next:110'1 with "ENTRY" equal to "entry"
# | 80: br label %vector.body
# | next:110'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 81:
# | next:110'0 ~
# | 82: vector.body: ; preds = %pred.store.continue2, %vector.ph
# | next:110'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 83: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue2 ]
# | next:110'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:110'2 ? possible intended match
# | 84: %offset.idx = sub i64 100, %index
# | next:110'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 85: %0 = add i64 %offset.idx, -1
# | next:110'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 86: %1 = add i64 %offset.idx, -1
# | next:110'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 87: %2 = add i64 %0, -1
# | next:110'0 ~~~~~~~~~~~~~~~~~~~~~
# | 88: %3 = getelementptr double, ptr %src, i64 %1
# | next:110'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -p loop-vectorize -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\conditional-branches-cost.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe --check-prefixes=COMMON,DEFAULT C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\conditional-branches-cost.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -p loop-vectorize -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\conditional-branches-cost.ll'
# .---command stderr------------
# | remark: <unknown>:0:0: Scalable vectorization is explicitly disabled
# `-----------------------------
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' --check-prefixes=COMMON,DEFAULT 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\conditional-branches-cost.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\conditional-branches-cost.ll:14:16: error: COMMON-NEXT: expected string not found in input
# | ; COMMON-NEXT: [[IV:%.*]] = phi i64 [ 1, %[[ENTRY]] ], [ [[IV_NEXT:%.*]], %[[LOOP_LATCH:.*]] ]
# | ^
# | <stdin>:10:11: note: scanning from here
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:10:11: note: with "ENTRY" equal to "entry"
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:15:2: note: possible intended match here
# | %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue2 ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\conditional-branches-cost.ll:154:16: error: COMMON-NEXT: is not on the line after the previous match
# | ; COMMON-NEXT: br label %[[LOOP_HEADER:.*]]
# | ^
# | <stdin>:151:2: note: 'next' match was here
# | br label %vector.body
# | ^
# | <stdin>:137:7: note: previous match ended here
# | entry:
# | ^
# | <stdin>:138:1: note: non-matching line after previous match is here
# | %src2 = ptrtoint ptr %src to i64
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\conditional-branches-cost.ll:209:16: error: COMMON-NEXT: is not on the line after the previous match
# | ; COMMON-NEXT: br label %[[LOOP_HEADER:.*]]
# | ^
# | <stdin>:230:2: note: 'next' match was here
# | br label %vector.body
# | ^
# | <stdin>:215:7: note: previous match ended here
# | entry:
# | ^
# | <stdin>:216:1: note: non-matching line after previous match is here
# | %src2 = ptrtoint ptr %src to i64
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\conditional-branches-cost.ll:428:17: error: DEFAULT-NEXT: expected string not found in input
# | ; DEFAULT-NEXT: [[N_MOD_VF:%.*]] = urem i64 [[TMP0]], 4
# | ^
# | <stdin>:381:11: note: scanning from here
# | vector.ph: ; preds = %vector.memcheck
# | ^
# | <stdin>:381:11: note: with "TMP0" equal to "%0"
# | vector.ph: ; preds = %vector.memcheck
# | ^
# | <stdin>:382:6: note: possible intended match here
# | %n.mod.vf = urem i64 %0, 8
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\conditional-branches-cost.ll:660:17: error: DEFAULT-NEXT: expected string not found in input
# | ; DEFAULT-NEXT: [[MIN_ITERS_CHECK:%.*]] = icmp ult i64 [[TMP0]], 8
# | ^
# | <stdin>:580:20: note: scanning from here
# | %0 = add i64 %N, 1
# | ^
# | <stdin>:580:20: note: with "TMP0" equal to "%0"
# | %0 = add i64 %N, 1
# | ^
# | <stdin>:581:13: note: possible intended match here
# | %min.iters.check = icmp ult i64 %0, 32
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\conditional-branches-cost.ll:1160:16: error: COMMON-NEXT: expected string not found in input
# | ; COMMON-NEXT: [[IV:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[IV_NEXT:%.*]], %[[LOOP_LATCH:.*]] ]
# | ^
# | <stdin>:1277:11: note: scanning from here
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:1277:11: note: with "ENTRY" equal to "entry"
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:1281:2: note: possible intended match here
# | %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue4 ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\conditional-branches-cost.ll:1210:17: error: DEFAULT-NEXT: expected string not found in input
# | ; DEFAULT-NEXT: [[TMP2:%.*]] = shl nuw i64 [[TMP1]], 2
# | ^
# | <stdin>:1355:34: note: scanning from here
# | %1 = call i64 @llvm.vscale.i64()
# | ^
# | <stdin>:1355:34: note: with "TMP1" equal to "%1"
# | %1 = call i64 @llvm.vscale.i64()
# | ^
# | <stdin>:1356:2: note: possible intended match here
# | %2 = shl nuw i64 %1, 1
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\conditional-branches-cost.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 5:
# | 6: define void @invar_cond_gep_store(ptr %dst, i32 %0) {
# | 7: entry:
# | 8: br label %vector.ph
# | 9:
# | 10: vector.ph: ; preds = %entry
# | next:14'0 X~~~~~~~~~~~~~~~~~ error: no match found
# | next:14'1 with "ENTRY" equal to "entry"
# | 11: %1 = icmp eq i32 %0, 0
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 12: br label %vector.body
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 13:
# | next:14'0 ~
# | 14: vector.body: ; preds = %pred.store.continue2, %vector.ph
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 15: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue2 ]
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:14'2 ? possible intended match
# | 16: %offset.idx = add i64 1, %index
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 17: br i1 %1, label %pred.store.if, label %pred.store.continue
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 18:
# | next:14'0 ~
# | 19: pred.store.if: ; preds = %vector.body
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 20: %2 = add i64 %offset.idx, 1
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 146: vector.ph: ; preds = %entry
# | 147: %n.mod.vf = urem i64 %2, 2
# | 148: %n.vec = sub i64 %2, %n.mod.vf
# | 149: %3 = mul i64 %n.vec, 4
# | 150: %4 = getelementptr i8, ptr %src, i64 %3
# | 151: br label %vector.body
# | next:154 !~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 152:
# | 153: vector.body: ; preds = %pred.store.continue5, %vector.ph
# | 154: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue5 ]
# | 155: %offset.idx = mul i64 %index, 4
# | 156: %5 = add i64 %offset.idx, 4
# | .
# | .
# | .
# | 225: %n.mod.vf = urem i64 %2, 2
# | 226: %n.vec = sub i64 %2, %n.mod.vf
# | 227: %3 = mul i64 %n.vec, 4
# | 228: %4 = getelementptr i8, ptr %src, i64 %3
# | 229: %5 = icmp sle i32 %a, 0
# | 230: br label %vector.body
# | next:209 !~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 231:
# | 232: vector.body: ; preds = %pred.store.continue4, %vector.ph
# | 233: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue4 ]
# | 234: br i1 %5, label %pred.store.if, label %pred.store.continue
# | 235:
# | .
# | .
# | .
# | 376: %bound125 = icmp ult ptr %C, %scevgep1
# | 377: %found.conflict26 = and i1 %bound024, %bound125
# | 378: %conflict.rdx27 = or i1 %conflict.rdx23, %found.conflict26
# | 379: br i1 %conflict.rdx27, label %scalar.ph, label %vector.ph
# | 380:
# | 381: vector.ph: ; preds = %vector.memcheck
# | next:428'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | next:428'1 with "TMP0" equal to "%0"
# | 382: %n.mod.vf = urem i64 %0, 8
# | next:428'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:428'2 ? possible intended match
# | 383: %n.vec = sub i64 %0, %n.mod.vf
# | next:428'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 384: %3 = load i32, ptr %C, align 4, !alias.scope !13
# | next:428'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 385: %4 = load i32, ptr %B, align 4, !alias.scope !16
# | next:428'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 386: %5 = load i32, ptr %A, align 4, !alias.scope !18
# | next:428'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 387: %6 = or i32 %4, %5
# | next:428'0 ~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 575: }
# | 576:
# | 577: ; Function Attrs: vscale_range(2,2)
# | 578: define void @test_conditional_interleave_group(ptr noalias %src.1, ptr noalias %src.2, ptr noalias %src.3, ptr noalias %src.4, ptr noalias %dst, i64 %N) #3 {
# | 579: entry:
# | 580: %0 = add i64 %N, 1
# | next:660'0 X error: no match found
# | next:660'1 with "TMP0" equal to "%0"
# | 581: %min.iters.check = icmp ult i64 %0, 32
# | next:660'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:660'2 ? possible intended match
# | 582: br i1 %min.iters.check, label %scalar.ph, label %vector.scevcheck
# | next:660'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 583:
# | next:660'0 ~
# | 584: vector.scevcheck: ; preds = %entry
# | next:660'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 585: %mul = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 16, i64 %N)
# | next:660'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 586: %mul.result = extractvalue { i64, i1 } %mul, 0
# | next:660'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 1272:
# | 1273: define double @test_cond_intrinsics(ptr %A, i1 %c) {
# | 1274: entry:
# | 1275: br label %vector.ph
# | 1276:
# | 1277: vector.ph: ; preds = %entry
# | next:1160'0 X~~~~~~~~~~~~~~~~~ error: no match found
# | next:1160'1 with "ENTRY" equal to "entry"
# | 1278: br label %vector.body
# | next:1160'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 1279:
# | next:1160'0 ~
# | 1280: vector.body: ; preds = %pred.store.continue4, %vector.ph
# | next:1160'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1281: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue4 ]
# | next:1160'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1160'2 ? possible intended match
# | 1282: %0 = add i64 %index, 1
# | next:1160'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 1283: %1 = getelementptr inbounds double, ptr %A, i64 %index
# | next:1160'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1284: %2 = getelementptr inbounds double, ptr %A, i64 %0
# | next:1160'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1285: br i1 %c, label %pred.load.if, label %pred.load.continue
# | next:1160'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1286:
# | next:1160'0 ~
# | .
# | .
# | .
# | 1350: iter.check:
# | 1351: %B3 = ptrtoint ptr %B to i64
# | 1352: %A2 = ptrtoint ptr %A to i64
# | 1353: %C1 = ptrtoint ptr %C to i64
# | 1354: %0 = add i64 %n, 1
# | 1355: %1 = call i64 @llvm.vscale.i64()
# | next:1210'0 X error: no match found
# | next:1210'1 with "TMP1" equal to "%1"
# | 1356: %2 = shl nuw i64 %1, 1
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1210'2 ? possible intended match
# | 1357: %min.iters.check = icmp ult i64 %0, %2
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1358: br i1 %min.iters.check, label %vec.epilog.scalar.ph, label %vector.memcheck
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1359:
# | next:1210'0 ~
# | 1360: vector.memcheck: ; preds = %iter.check
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1361: %3 = call i64 @llvm.vscale.i64()
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/deterministic-type-shrinkage.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-vectorize -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\deterministic-type-shrinkage.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\deterministic-type-shrinkage.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\deterministic-type-shrinkage.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\LoopVectorize\AArch64\deterministic-type-shrinkage.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\deterministic-type-shrinkage.ll:350:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[IV_NEXT:%.*]], %[[LOOP_LATCH:.*]] ]
# | ^
# | <stdin>:363:11: note: scanning from here
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:363:11: note: with "ENTRY" equal to "entry"
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:367:2: note: possible intended match here
# | %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue2 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\deterministic-type-shrinkage.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 358: define void @replicate_operands_in_with_operands_in_minbws(ptr %dst, ptr noalias %src.1, ptr noalias %src.2, i32 %x) {
# | 359: entry:
# | 360: %sub = sub i32 %x, 10
# | 361: br label %vector.ph
# | 362:
# | 363: vector.ph: ; preds = %entry
# | next:350'0 X~~~~~~~~~~~~~~~~~ error: no match found
# | next:350'1 with "ENTRY" equal to "entry"
# | 364: br label %vector.body
# | next:350'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 365:
# | next:350'0 ~
# | 366: vector.body: ; preds = %pred.store.continue2, %vector.ph
# | next:350'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 367: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue2 ]
# | next:350'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:350'2 ? possible intended match
# | 368: %0 = add i64 %index, 1
# | next:350'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 369: %1 = getelementptr inbounds i32, ptr %src.1, i64 %index
# | next:350'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 370: %2 = getelementptr inbounds i32, ptr %src.1, i64 %0
# | next:350'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 371: %3 = load i32, ptr %1, align 4
# | next:350'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 372: %4 = load i32, ptr %2, align 4
# | next:350'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/drop-poison-generating-flags.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -p loop-vectorize -mcpu=neoverse-v2 -force-vector-width=4 -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\drop-poison-generating-flags.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\drop-poison-generating-flags.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -p loop-vectorize -mcpu=neoverse-v2 -force-vector-width=4 -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\drop-poison-generating-flags.ll'
# .---command stderr------------
# | remark: <unknown>:0:0: Scalable vectorization is explicitly disabled
# `-----------------------------
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\drop-poison-generating-flags.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\drop-poison-generating-flags.ll:18:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x double>, ptr [[TMP1]], align 8
# | ^
# | <stdin>:19:2: note: 'next' match was here
# | %wide.load = load <4 x double>, ptr %0, align 8
# | ^
# | <stdin>:15:60: note: previous match ended here
# | %0 = getelementptr inbounds double, ptr %src.1, i64 %index
# | ^
# | <stdin>:16:1: note: non-matching line after previous match is here
# | %1 = getelementptr inbounds double, ptr %0, i64 4
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\drop-poison-generating-flags.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 14: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.load.continue33 ]
# | 15: %0 = getelementptr inbounds double, ptr %src.1, i64 %index
# | 16: %1 = getelementptr inbounds double, ptr %0, i64 4
# | 17: %2 = getelementptr inbounds double, ptr %0, i64 8
# | 18: %3 = getelementptr inbounds double, ptr %0, i64 12
# | 19: %wide.load = load <4 x double>, ptr %0, align 8
# | next:18 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 20: %wide.load1 = load <4 x double>, ptr %1, align 8
# | 21: %wide.load2 = load <4 x double>, ptr %2, align 8
# | 22: %wide.load3 = load <4 x double>, ptr %3, align 8
# | 23: %4 = call <4 x double> @llvm.fabs.v4f64(<4 x double> %wide.load)
# | 24: %5 = call <4 x double> @llvm.fabs.v4f64(<4 x double> %wide.load1)
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -p loop-vectorize -force-target-instruction-cost=1 -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\force-target-instruction-cost.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe --check-prefixes=COMMON,COST1 C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\force-target-instruction-cost.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -p loop-vectorize -force-target-instruction-cost=1 -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\force-target-instruction-cost.ll'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' --check-prefixes=COMMON,COST1 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\force-target-instruction-cost.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\force-target-instruction-cost.ll:194:16: error: COMMON-NEXT: is not on the line after the previous match
# | ; COMMON-NEXT: [[WIDE_LOAD:%.*]] = load <2 x i64>, ptr [[TMP5]], align 8
# | ^
# | <stdin>:137:2: note: 'next' match was here
# | %wide.load = load <2 x i64>, ptr %5, align 8
# | ^
# | <stdin>:135:48: note: previous match ended here
# | %5 = getelementptr i64, ptr %x.ptr, i64 %index
# | ^
# | <stdin>:136:1: note: non-matching line after previous match is here
# | %6 = getelementptr i64, ptr %5, i64 2
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\force-target-instruction-cost.ll:389:16: error: COMMON-NEXT: expected string not found in input
# | ; COMMON-NEXT: [[INDEX_NEXT:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[IV_NEXT:%.*]], %[[LOOP_LATCH:.*]] ]
# | ^
# | <stdin>:401:17: note: scanning from here
# | vector.memcheck: ; preds = %entry
# | ^
# | <stdin>:401:17: note: with "ENTRY" equal to "entry"
# | vector.memcheck: ; preds = %entry
# | ^
# | <stdin>:426:2: note: possible intended match here
# | %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue15 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\force-target-instruction-cost.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 132:
# | 133: vector.body: ; preds = %pred.store.continue35, %vector.ph
# | 134: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue35 ]
# | 135: %5 = getelementptr i64, ptr %x.ptr, i64 %index
# | 136: %6 = getelementptr i64, ptr %5, i64 2
# | 137: %wide.load = load <2 x i64>, ptr %5, align 8
# | next:194 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 138: %wide.load4 = load <2 x i64>, ptr %6, align 8
# | 139: %7 = icmp eq <2 x i64> %wide.load, zeroinitializer
# | 140: %8 = icmp eq <2 x i64> %wide.load4, zeroinitializer
# | 141: %9 = xor <2 x i1> %7, splat (i1 true)
# | 142: %10 = xor <2 x i1> %8, splat (i1 true)
# | .
# | .
# | .
# | 396:
# | 397: define void @loop_with_freeze_and_conditional_srem(ptr %dst, ptr %keyinfo, ptr %invariant.ptr, i32 %divisor) {
# | 398: entry:
# | 399: br label %vector.memcheck
# | 400:
# | 401: vector.memcheck: ; preds = %entry
# | next:389'0 X~~~~~~~~~~~~~~~~~ error: no match found
# | next:389'1 with "ENTRY" equal to "entry"
# | 402: %scevgep = getelementptr i8, ptr %dst, i64 4
# | next:389'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 403: %scevgep1 = getelementptr i8, ptr %keyinfo, i64 4
# | next:389'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 404: %scevgep2 = getelementptr i8, ptr %invariant.ptr, i64 4
# | next:389'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 405: %bound0 = icmp ult ptr %dst, %scevgep1
# | next:389'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 406: %bound1 = icmp ult ptr %keyinfo, %scevgep
# | next:389'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 421: %2 = icmp eq i32 %1, 0
# | next:389'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 422: %3 = xor i1 %2, true
# | next:389'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 423: br label %vector.body
# | next:389'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 424:
# | next:389'0 ~
# | 425: vector.body: ; preds = %pred.store.continue15, %vector.ph
# | next:389'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 426: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue15 ]
# | next:389'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:389'2 ? possible intended match
# | 427: br i1 %3, label %pred.store.if, label %pred.store.continue
# | next:389'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 428:
# | next:389'0 ~
# | 429: pred.store.if: ; preds = %vector.body
# | next:389'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 430: %4 = srem i32 1, %divisor
# | next:389'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 431: store i32 %4, ptr %dst, align 4, !alias.scope !19, !noalias !21
# | next:389'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/gather-cost.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-vectorize -mtriple=arm64-apple-ios -S -mcpu=cyclone -enable-interleaved-mem-accesses=false < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\gather-cost.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\gather-cost.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -mtriple=arm64-apple-ios -S -mcpu=cyclone -enable-interleaved-mem-accesses=false
# 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\LoopVectorize\AArch64\gather-cost.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\gather-cost.ll:19:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[LOOP:.*]]
# | ^
# | <stdin>:20:2: note: 'next' match was here
# | br label %vector.body
# | ^
# | <stdin>:13:7: note: previous match ended here
# | entry:
# | ^
# | <stdin>:14:1: note: non-matching line after previous match is here
# | %min.iters.check = icmp ult i64 %size, 2
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\gather-cost.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 15: br i1 %min.iters.check, label %scalar.ph, label %vector.ph
# | 16:
# | 17: vector.ph: ; preds = %entry
# | 18: %n.mod.vf = urem i64 %size, 2
# | 19: %n.vec = sub i64 %size, %n.mod.vf
# | 20: br label %vector.body
# | next:19 !~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 21:
# | 22: vector.body: ; preds = %vector.body, %vector.ph
# | 23: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# | 24: %vec.phi = phi float [ 0.000000e+00, %vector.ph ], [ %33, %vector.body ]
# | 25: %vec.phi1 = phi float [ 0.000000e+00, %vector.ph ], [ %34, %vector.body ]
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/interleave-allocsize-not-equal-typesize.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-vectorize -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\interleave-allocsize-not-equal-typesize.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\interleave-allocsize-not-equal-typesize.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\interleave-allocsize-not-equal-typesize.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\LoopVectorize\AArch64\interleave-allocsize-not-equal-typesize.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\interleave-allocsize-not-equal-typesize.ll:28:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[TMP4:%.*]] = getelementptr inbounds i64, ptr [[SRC]], i64 [[TMP0]]
# | ^
# | <stdin>:31:2: note: 'next' match was here
# | %8 = getelementptr inbounds i64, ptr %src, i64 %0
# | ^
# | <stdin>:26:24: note: previous match ended here
# | %3 = add i64 %index, 3
# | ^
# | <stdin>:27:1: note: non-matching line after previous match is here
# | %4 = add i64 %index, 4
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\interleave-allocsize-not-equal-typesize.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 26: %3 = add i64 %index, 3
# | 27: %4 = add i64 %index, 4
# | 28: %5 = add i64 %index, 5
# | 29: %6 = add i64 %index, 6
# | 30: %7 = add i64 %index, 7
# | 31: %8 = getelementptr inbounds i64, ptr %src, i64 %0
# | next:28 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 32: %9 = getelementptr inbounds i64, ptr %src, i64 %1
# | 33: %10 = getelementptr inbounds i64, ptr %src, i64 %2
# | 34: %11 = getelementptr inbounds i64, ptr %src, i64 %3
# | 35: %12 = getelementptr inbounds i64, ptr %src, i64 %4
# | 36: %13 = getelementptr inbounds i64, ptr %src, i64 %5
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/invalid-costs.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes="loop-vectorize" -pass-remarks-output=C:\_work\llvm-project\llvm-project\build\test\Transforms\LoopVectorize\AArch64\Output\invalid-costs.ll.tmp.yaml -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\invalid-costs.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\invalid-costs.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize '-pass-remarks-output=C:\_work\llvm-project\llvm-project\build\test\Transforms\LoopVectorize\AArch64\Output\invalid-costs.ll.tmp.yaml' -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\invalid-costs.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\LoopVectorize\AArch64\invalid-costs.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\invalid-costs.ll:14:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shl nuw i64 [[TMP0]], 2
# | ^
# | <stdin>:8:34: note: scanning from here
# | %0 = call i64 @llvm.vscale.i64()
# | ^
# | <stdin>:8:34: note: with "TMP0" equal to "%0"
# | %0 = call i64 @llvm.vscale.i64()
# | ^
# | <stdin>:24:2: note: possible intended match here
# | %6 = shl nuw i64 %5, 2
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\invalid-costs.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: ; ModuleID = 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\invalid-costs.ll'
# | 2: source_filename = "C:\\_work\\llvm-project\\llvm-project\\llvm\\test\\Transforms\\LoopVectorize\\AArch64\\invalid-costs.ll"
# | 3: target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
# | 4: target triple = "arm64-apple-macosx"
# | 5:
# | 6: define void @replicate_sdiv_conditional(ptr noalias %a, ptr noalias %b, ptr noalias %c) #0 {
# | 7: entry:
# | 8: %0 = call i64 @llvm.vscale.i64()
# | next:14'0 X error: no match found
# | next:14'1 with "TMP0" equal to "%0"
# | 9: %1 = shl nuw i64 %0, 4
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 10: %min.iters.check = icmp ult i64 64, %1
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 11: br i1 %min.iters.check, label %scalar.ph, label %vector.ph
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 12:
# | next:14'0 ~
# | 13: vector.ph: ; preds = %entry
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 19:
# | next:14'0 ~
# | 20: vector.body: ; preds = %vector.body, %vector.ph
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 21: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 22: %4 = getelementptr inbounds i32, ptr %c, i64 %index
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 23: %5 = call i64 @llvm.vscale.i64()
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 24: %6 = shl nuw i64 %5, 2
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | next:14'2 ? possible intended match
# | 25: %7 = getelementptr inbounds i32, ptr %4, i64 %6
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 26: %8 = call i64 @llvm.vscale.i64()
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 27: %9 = shl nuw i64 %8, 3
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 28: %10 = getelementptr inbounds i32, ptr %4, i64 %9
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 29: %11 = call i64 @llvm.vscale.i64()
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/invariant-replicate-region.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -p loop-vectorize -force-vector-width=4 -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\invariant-replicate-region.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\invariant-replicate-region.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -p loop-vectorize -force-vector-width=4 -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\invariant-replicate-region.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\LoopVectorize\AArch64\invariant-replicate-region.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\invariant-replicate-region.ll:19:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[TMP1:%.*]] = urem i32 10, [[X]]
# | ^
# | <stdin>:78:2: note: 'next' match was here
# | %rem.1 = urem i32 10, %x
# | ^
# | <stdin>:17:14: note: previous match ended here
# | pred.urem.if: ; preds = %vector.body
# | ^
# | <stdin>:18:1: note: non-matching line after previous match is here
# | br label %pred.urem.continue
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\invariant-replicate-region.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 73: loop.header: ; preds = %scalar.ph, %loop.latch
# | 74: %iv = phi i32 [ 96, %scalar.ph ], [ %iv.next, %loop.latch ]
# | 75: br i1 %c, label %then, label %loop.latch
# | 76:
# | 77: then: ; preds = %loop.header
# | 78: %rem.1 = urem i32 10, %x
# | next:19 !~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 79: br label %loop.latch
# | 80:
# | 81: loop.latch: ; preds = %then, %loop.header
# | 82: %res = phi i32 [ 0, %loop.header ], [ %rem.1, %then ]
# | 83: %iv.next = add i32 %iv, 1
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-neon.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-vectorize -enable-epilogue-vectorization=false -mattr=+neon,+dotprod -force-vector-interleave=1 -S < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\partial-reduce-dot-product-neon.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\partial-reduce-dot-product-neon.ll --check-prefixes=CHECK-INTERLEAVE1
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -enable-epilogue-vectorization=false -mattr=+neon,+dotprod -force-vector-interleave=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\LoopVectorize\AArch64\partial-reduce-dot-product-neon.ll' --check-prefixes=CHECK-INTERLEAVE1
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-vectorize -enable-epilogue-vectorization=false -mattr=+neon,+dotprod -S < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\partial-reduce-dot-product-neon.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\partial-reduce-dot-product-neon.ll --check-prefixes=CHECK-INTERLEAVED
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -enable-epilogue-vectorization=false -mattr=+neon,+dotprod -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\LoopVectorize\AArch64\partial-reduce-dot-product-neon.ll' --check-prefixes=CHECK-INTERLEAVED
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\partial-reduce-dot-product-neon.ll:629:27: error: CHECK-INTERLEAVED-NEXT: is not on the line after the previous match
# | ; CHECK-INTERLEAVED-NEXT: [[WIDE_LOAD:%.*]] = load <16 x i8>, ptr [[TMP1]], align 1
# | ^
# | <stdin>:259:2: note: 'next' match was here
# | %wide.load = load <16 x i8>, ptr %0, align 1
# | ^
# | <stdin>:257:43: note: previous match ended here
# | %0 = getelementptr i8, ptr %a, i64 %index
# | ^
# | <stdin>:258:1: note: non-matching line after previous match is here
# | %1 = getelementptr i8, ptr %0, i64 16
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\partial-reduce-dot-product-neon.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 254: vector.body: ; preds = %vector.body, %vector.ph
# | 255: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# | 256: %vector.recur = phi <16 x i32> [ <i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 0>, %vector.ph ], [ %11, %vector.body ]
# | 257: %0 = getelementptr i8, ptr %a, i64 %index
# | 258: %1 = getelementptr i8, ptr %0, i64 16
# | 259: %wide.load = load <16 x i8>, ptr %0, align 1
# | next:629 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 260: %wide.load1 = load <16 x i8>, ptr %1, align 1
# | 261: %2 = zext <16 x i8> %wide.load to <16 x i32>
# | 262: %3 = zext <16 x i8> %wide.load1 to <16 x i32>
# | 263: %4 = getelementptr i8, ptr %b, i64 %index
# | 264: %5 = getelementptr i8, ptr %4, i64 16
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/pr60831-sve-inv-store-crash.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-vectorize -S -prefer-predicate-over-epilogue=scalar-epilogue < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\pr60831-sve-inv-store-crash.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\pr60831-sve-inv-store-crash.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -S -prefer-predicate-over-epilogue=scalar-epilogue
# 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\LoopVectorize\AArch64\pr60831-sve-inv-store-crash.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\pr60831-sve-inv-store-crash.ll:379:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[TMP16:%.*]] = sub nsw i64 [[N:%.*]], [[TMP0]]
# | ^
# | <stdin>:217:2: note: 'next' match was here
# | %32 = sub nsw i64 %n, %0
# | ^
# | <stdin>:200:26: note: previous match ended here
# | %15 = add i64 %index, 15
# | ^
# | <stdin>:201:1: note: non-matching line after previous match is here
# | %16 = add i64 %index, 16
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\pr60831-sve-inv-store-crash.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 212: %27 = add i64 %index, 27
# | 213: %28 = add i64 %index, 28
# | 214: %29 = add i64 %index, 29
# | 215: %30 = add i64 %index, 30
# | 216: %31 = add i64 %index, 31
# | 217: %32 = sub nsw i64 %n, %0
# | next:379 !~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 218: %33 = sub nsw i64 %n, %1
# | 219: %34 = sub nsw i64 %n, %2
# | 220: %35 = sub nsw i64 %n, %3
# | 221: %36 = sub nsw i64 %n, %4
# | 222: %37 = sub nsw i64 %n, %5
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/predicated-costs.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -p loop-vectorize -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\predicated-costs.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\predicated-costs.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -p loop-vectorize -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\predicated-costs.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\LoopVectorize\AArch64\predicated-costs.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\predicated-costs.ll:236:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[N_MOD_VF:%.*]] = urem i32 [[END]], 4
# | ^
# | <stdin>:603:2: note: 'next' match was here
# | %n.mod.vf62 = urem i32 %end, 4
# | ^
# | <stdin>:195:29: note: previous match ended here
# | vector.main.loop.iter.check: ; preds = %iter.check
# | ^
# | <stdin>:196:1: note: non-matching line after previous match is here
# | %min.iters.check1 = icmp ult i32 %end, 16
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\predicated-costs.ll:397:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[IV_NEXT:%.*]], %[[LATCH:.*]] ]
# | ^
# | <stdin>:751:11: note: scanning from here
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:751:11: note: with "ENTRY" equal to "entry"
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:756:2: note: possible intended match here
# | %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\predicated-costs.ll:449:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[LOOP:.*]]
# | ^
# | <stdin>:807:2: note: 'next' match was here
# | br label %vector.body
# | ^
# | <stdin>:798:7: note: previous match ended here
# | entry:
# | ^
# | <stdin>:799:1: note: non-matching line after previous match is here
# | %1 = sub i32 1, %0
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\predicated-costs.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 598: %min.epilog.iters.check = icmp ult i32 %n.mod.vf, 4
# | 599: br i1 %min.epilog.iters.check, label %vec.epilog.scalar.ph, label %vec.epilog.ph, !prof !14
# | 600:
# | 601: vec.epilog.ph: ; preds = %vector.main.loop.iter.check, %vec.epilog.iter.check
# | 602: %bc.resume.val = phi i32 [ %n.vec, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ]
# | 603: %n.mod.vf62 = urem i32 %end, 4
# | next:236 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 604: %n.vec63 = sub i32 %end, %n.mod.vf62
# | 605: %broadcast.splatinsert64 = insertelement <4 x i32> poison, i32 %d.0, i64 0
# | 606: %broadcast.splat65 = shufflevector <4 x i32> %broadcast.splatinsert64, <4 x i32> poison, <4 x i32> zeroinitializer
# | 607: %broadcast.splatinsert66 = insertelement <4 x i32> poison, i32 %bc.resume.val, i64 0
# | 608: %broadcast.splat67 = shufflevector <4 x i32> %broadcast.splatinsert66, <4 x i32> poison, <4 x i32> zeroinitializer
# | .
# | .
# | .
# | 746:
# | 747: define void @round_scalar_pred_divisor(ptr %dst, double %x) {
# | 748: entry:
# | 749: br label %vector.ph
# | 750:
# | 751: vector.ph: ; preds = %entry
# | next:397'0 X~~~~~~~~~~~~~~~~~ error: no match found
# | next:397'1 with "ENTRY" equal to "entry"
# | 752: %0 = fcmp une double %x, 0.000000e+00
# | next:397'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 753: br label %vector.body
# | next:397'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 754:
# | next:397'0 ~
# | 755: vector.body: ; preds = %vector.body, %vector.ph
# | next:397'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 756: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# | next:397'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:397'2 ? possible intended match
# | 757: %1 = trunc i64 %index to i32
# | next:397'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 758: %2 = add i32 %1, 1
# | next:397'0 ~~~~~~~~~~~~~~~~~~~~
# | 759: %3 = uitofp i32 %2 to double
# | next:397'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 760: %4 = tail call double @llvm.sin.f64(double %3)
# | next:397'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 761: %5 = fptrunc double %4 to float
# | next:397'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 802:
# | 803: vector.ph: ; preds = %entry
# | 804: %n.mod.vf = urem i32 %1, 2
# | 805: %n.vec = sub i32 %1, %n.mod.vf
# | 806: %2 = add i32 %0, %n.vec
# | 807: br label %vector.body
# | next:449 !~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 808:
# | 809: vector.body: ; preds = %vector.body, %vector.ph
# | 810: %index = phi i32 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# | 811: %index.next = add nuw i32 %index, 2
# | 812: %3 = icmp eq i32 %index.next, %n.vec
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/reduction-recurrence-costs-sve.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -p loop-vectorize -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\reduction-recurrence-costs-sve.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe --check-prefixes=DEFAULT C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\reduction-recurrence-costs-sve.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -p loop-vectorize -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\reduction-recurrence-costs-sve.ll'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' --check-prefixes=DEFAULT 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\reduction-recurrence-costs-sve.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\reduction-recurrence-costs-sve.ll:13:17: error: DEFAULT-NEXT: is not on the line after the previous match
# | ; DEFAULT-NEXT: br label %[[LOOP:.*]]
# | ^
# | <stdin>:25:2: note: 'next' match was here
# | br label %vector.body
# | ^
# | <stdin>:7:7: note: previous match ended here
# | entry:
# | ^
# | <stdin>:8:1: note: non-matching line after previous match is here
# | %0 = add i64 %y, 1
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\reduction-recurrence-costs-sve.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 20: %6 = or i32 %z, %x
# | 21: %7 = and i32 %6, 1
# | 22: %8 = xor i32 %7, 1
# | 23: %9 = zext i32 %8 to i64
# | 24: %10 = getelementptr i32, ptr %src.2, i64 %9
# | 25: br label %vector.body
# | next:13 !~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 26:
# | 27: vector.body: ; preds = %vector.body, %vector.ph
# | 28: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# | 29: %vector.recur = phi i32 [ 0, %vector.ph ], [ %11, %vector.body ]
# | 30: %vector.recur1 = phi i32 [ 0, %vector.ph ], [ %11, %vector.body ]
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/replicating-load-store-costs.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -p loop-vectorize -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\replicating-load-store-costs.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\replicating-load-store-costs.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -p loop-vectorize -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\replicating-load-store-costs.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\LoopVectorize\AArch64\replicating-load-store-costs.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\replicating-load-store-costs.ll:340:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP21:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[IV_NEXT:%.*]], %[[LOOP]] ]
# | ^
# | <stdin>:305:11: note: scanning from here
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:305:11: note: with "ENTRY" equal to "entry"
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:305:11: note: with "LOOP" equal to "vector.ph"
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:323:2: note: possible intended match here
# | %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\replicating-load-store-costs.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 300: entry:
# | 301: %temp1 = alloca [64 x i32], align 4
# | 302: call void @init(ptr %temp1)
# | 303: br label %vector.ph
# | 304:
# | 305: vector.ph: ; preds = %entry
# | next:340'0 X~~~~~~~~~~~~~~~~~ error: no match found
# | next:340'1 with "ENTRY" equal to "entry"
# | next:340'2 with "LOOP" equal to "vector.ph"
# | 306: %0 = lshr i32 %x, 1
# | next:340'0 ~~~~~~~~~~~~~~~~~~~~~
# | 307: %1 = mul i32 %x, -171254
# | next:340'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 308: %2 = lshr i32 %1, 1
# | next:340'0 ~~~~~~~~~~~~~~~~~~~~~
# | 309: %3 = add i32 %0, %2
# | next:340'0 ~~~~~~~~~~~~~~~~~~~~~
# | 310: %4 = add i32 %3, 1
# | next:340'0 ~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 318: %12 = lshr i32 %11, 1
# | next:340'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 319: %13 = trunc i32 %12 to i16
# | next:340'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 320: br label %vector.body
# | next:340'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 321:
# | next:340'0 ~
# | 322: vector.body: ; preds = %vector.body, %vector.ph
# | next:340'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 323: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# | next:340'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:340'3 ? possible intended match
# | 324: %offset.idx = mul i64 %index, 8
# | next:340'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 325: %14 = add i64 %offset.idx, 8
# | next:340'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 326: %15 = load i32, ptr %temp1, align 4
# | next:340'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 327: %16 = getelementptr i16, ptr %dst, i64 %offset.idx
# | next:340'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 328: %17 = getelementptr i16, ptr %dst, i64 %14
# | next:340'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/scalar_interleave.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-vectorize -S -o - < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\scalar_interleave.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\scalar_interleave.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -S -o -
# 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\LoopVectorize\AArch64\scalar_interleave.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\scalar_interleave.ll:51:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label [[FOR_BODY16:%.*]]
# | ^
# | <stdin>:59:2: note: 'next' match was here
# | br label %vector.body
# | ^
# | <stdin>:48:82: note: previous match ended here
# | %pDst.addr.176 = phi ptr [ %pDst.addr.0, %if.end12 ], [ %pDst.addr.2, %for.end ]
# | ^
# | <stdin>:49:1: note: non-matching line after previous match is here
# | %min.iters.check = icmp ult i32 %indvars.iv, 2
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\scalar_interleave.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 54: br i1 %2, label %scalar.ph, label %vector.ph
# | 55:
# | 56: vector.ph: ; preds = %vector.scevcheck
# | 57: %n.mod.vf = urem i32 %indvars.iv, 2
# | 58: %n.vec = sub i32 %indvars.iv, %n.mod.vf
# | 59: br label %vector.body
# | next:51 !~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 60:
# | 61: vector.body: ; preds = %pred.load.continue4, %vector.ph
# | 62: %index = phi i32 [ 0, %vector.ph ], [ %index.next, %pred.load.continue4 ]
# | 63: %vec.phi = phi half [ 0xH0000, %vector.ph ], [ %predphi, %pred.load.continue4 ]
# | 64: %vec.phi2 = phi half [ 0xH0000, %vector.ph ], [ %predphi5, %pred.load.continue4 ]
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/sve-interleaved-accesses-cost.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -p loop-vectorize -mtriple=aarch64-none-linux-gnu -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-interleaved-accesses-cost.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-interleaved-accesses-cost.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -p loop-vectorize -mtriple=aarch64-none-linux-gnu -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-interleaved-accesses-cost.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\LoopVectorize\AArch64\sve-interleaved-accesses-cost.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-interleaved-accesses-cost.ll:15:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ [[IV_NEXT:%.*]], %[[LOOP_LATCH:.*]] ], [ 0, %[[ENTRY]] ]
# | ^
# | <stdin>:11:11: note: scanning from here
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:11:11: note: with "ENTRY" equal to "entry"
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:15:2: note: possible intended match here
# | %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue6 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-interleaved-accesses-cost.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 6: ; Function Attrs: vscale_range(2,2)
# | 7: define void @test_masked_interleave(ptr noalias %A, ptr noalias %B, ptr noalias %C) #0 {
# | 8: entry:
# | 9: br label %vector.ph
# | 10:
# | 11: vector.ph: ; preds = %entry
# | next:15'0 X~~~~~~~~~~~~~~~~~ error: no match found
# | next:15'1 with "ENTRY" equal to "entry"
# | 12: br label %vector.body
# | next:15'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 13:
# | next:15'0 ~
# | 14: vector.body: ; preds = %pred.store.continue6, %vector.ph
# | next:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 15: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue6 ]
# | next:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:15'2 ? possible intended match
# | 16: %offset.idx = mul i64 %index, 4
# | next:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 17: %0 = add i64 %offset.idx, 4
# | next:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 18: %1 = add i64 %offset.idx, 8
# | next:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 19: %2 = add i64 %offset.idx, 12
# | next:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 20: %3 = or disjoint i64 %offset.idx, 1
# | next:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/sve-predicated-costs.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -p loop-vectorize -mtriple=aarch64 -mattr=+sve -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-predicated-costs.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-predicated-costs.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -p loop-vectorize -mtriple=aarch64 -mattr=+sve -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-predicated-costs.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\LoopVectorize\AArch64\sve-predicated-costs.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-predicated-costs.ll:14:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[X:%.*]] = phi i32 [ 0, %[[ENTRY]] ], [ [[IV_NEXT:%.*]], %[[LATCH:.*]] ]
# | ^
# | <stdin>:10:11: note: scanning from here
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:10:11: note: with "ENTRY" equal to "entry"
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:15:2: note: possible intended match here
# | %index = phi i32 [ 0, %vector.ph ], [ %index.next, %pred.store.continue2 ]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-predicated-costs.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 5:
# | 6: define void @nested(ptr noalias %p0, ptr noalias %p1, i1 %c0, i1 %c1) #0 {
# | 7: entry:
# | 8: br label %vector.ph
# | 9:
# | 10: vector.ph: ; preds = %entry
# | next:14'0 X~~~~~~~~~~~~~~~~~ error: no match found
# | next:14'1 with "ENTRY" equal to "entry"
# | 11: %0 = select i1 %c0, i1 %c1, i1 false
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 12: br label %vector.body
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 13:
# | next:14'0 ~
# | 14: vector.body: ; preds = %pred.store.continue2, %vector.ph
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 15: %index = phi i32 [ 0, %vector.ph ], [ %index.next, %pred.store.continue2 ]
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:14'2 ? possible intended match
# | 16: br i1 %0, label %pred.store.if, label %pred.store.continue
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 17:
# | next:14'0 ~
# | 18: pred.store.if: ; preds = %vector.body
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 19: %1 = getelementptr i64, ptr %p0, i32 %index
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 20: %2 = load i64, ptr %1, align 8
# | next:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/type-shrinkage-insertelt.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\type-shrinkage-insertelt.ll -passes=loop-vectorize -force-vector-width=4 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\type-shrinkage-insertelt.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -passes=loop-vectorize -force-vector-width=4
# 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\LoopVectorize\AArch64\type-shrinkage-insertelt.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\type-shrinkage-insertelt.ll:20:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[TMP4:%.*]] = getelementptr inbounds i16, ptr [[A]], i64 [[TMP0]]
# | ^
# | <stdin>:23:2: note: 'next' match was here
# | %8 = getelementptr inbounds i16, ptr %A, i64 %0
# | ^
# | <stdin>:18:24: note: previous match ended here
# | %3 = add i64 %index, 3
# | ^
# | <stdin>:19:1: note: non-matching line after previous match is here
# | %4 = add i64 %index, 4
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\type-shrinkage-insertelt.ll:91:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr [[C]], align 4
# | ^
# | <stdin>:105:2: note: 'next' match was here
# | %8 = load i32, ptr %C, align 4
# | ^
# | <stdin>:100:24: note: previous match ended here
# | %3 = add i64 %index, 3
# | ^
# | <stdin>:101:1: note: non-matching line after previous match is here
# | %4 = add i64 %index, 4
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\type-shrinkage-insertelt.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 18: %3 = add i64 %index, 3
# | 19: %4 = add i64 %index, 4
# | 20: %5 = add i64 %index, 5
# | 21: %6 = add i64 %index, 6
# | 22: %7 = add i64 %index, 7
# | 23: %8 = getelementptr inbounds i16, ptr %A, i64 %0
# | next:20 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 24: %9 = getelementptr inbounds i16, ptr %8, i64 4
# | 25: %wide.load = load <4 x i16>, ptr %8, align 2
# | 26: %wide.load1 = load <4 x i16>, ptr %9, align 2
# | 27: %10 = add <4 x i16> %wide.load, splat (i16 10)
# | 28: %11 = extractelement <4 x i16> %10, i32 0
# | .
# | .
# | .
# | 100: %3 = add i64 %index, 3
# | 101: %4 = add i64 %index, 4
# | 102: %5 = add i64 %index, 5
# | 103: %6 = add i64 %index, 6
# | 104: %7 = add i64 %index, 7
# | 105: %8 = load i32, ptr %C, align 4
# | next:91 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 106: %broadcast.splatinsert = insertelement <4 x i32> poison, i32 %8, i64 0
# | 107: %broadcast.splat = shufflevector <4 x i32> %broadcast.splatinsert, <4 x i32> poison, <4 x i32> zeroinitializer
# | 108: %9 = getelementptr inbounds i16, ptr %A, i64 %0
# | 109: %10 = getelementptr inbounds i16, ptr %9, i64 4
# | 110: %wide.load = load <4 x i16>, ptr %9, align 2
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/vector-reverse.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 8
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-vectorize,dce -mtriple aarch64-linux-gnu -S -prefer-predicate-over-epilogue=scalar-epilogue < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\vector-reverse.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\vector-reverse.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize,dce -mtriple aarch64-linux-gnu -S -prefer-predicate-over-epilogue=scalar-epilogue
# .---command stderr------------
# | remark: <unknown>:0:0: Scalable vectorization is explicitly disabled
# | remark: <unknown>:0:0: Scalable vectorization is explicitly disabled
# `-----------------------------
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\vector-reverse.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\vector-reverse.ll:16:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: %[[WIDE:.*]] = load <8 x double>, ptr %[[GEP1]], align 8
# | ^
# | <stdin>:37:2: note: 'next' match was here
# | %wide.load = load <8 x double>, ptr %5, align 8
# | ^
# | <stdin>:34:52: note: previous match ended here
# | %5 = getelementptr inbounds double, ptr %4, i64 -7
# | ^
# | <stdin>:35:1: note: non-matching line after previous match is here
# | %6 = getelementptr inbounds double, ptr %3, i64 -8
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\vector-reverse.ll:49:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: %[[WIDE:.*]] = load <8 x i64>, ptr %[[GEP1]], align 8
# | ^
# | <stdin>:113:2: note: 'next' match was here
# | %wide.load = load <8 x i64>, ptr %5, align 8
# | ^
# | <stdin>:110:49: note: previous match ended here
# | %5 = getelementptr inbounds i64, ptr %4, i64 -7
# | ^
# | <stdin>:111:1: note: non-matching line after previous match is here
# | %6 = getelementptr inbounds i64, ptr %3, i64 -8
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\vector-reverse.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 32: %3 = getelementptr inbounds double, ptr %b, i64 %2
# | 33: %4 = getelementptr inbounds double, ptr %3, i64 0
# | 34: %5 = getelementptr inbounds double, ptr %4, i64 -7
# | 35: %6 = getelementptr inbounds double, ptr %3, i64 -8
# | 36: %7 = getelementptr inbounds double, ptr %6, i64 -7
# | 37: %wide.load = load <8 x double>, ptr %5, align 8
# | next:16 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 38: %reverse = shufflevector <8 x double> %wide.load, <8 x double> poison, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
# | 39: %wide.load3 = load <8 x double>, ptr %7, align 8
# | 40: %reverse4 = shufflevector <8 x double> %wide.load3, <8 x double> poison, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
# | 41: %8 = fadd <8 x double> %reverse, splat (double 1.000000e+00)
# | 42: %9 = fadd <8 x double> %reverse4, splat (double 1.000000e+00)
# | .
# | .
# | .
# | 108: %3 = getelementptr inbounds i64, ptr %b, i64 %2
# | 109: %4 = getelementptr inbounds i64, ptr %3, i64 0
# | 110: %5 = getelementptr inbounds i64, ptr %4, i64 -7
# | 111: %6 = getelementptr inbounds i64, ptr %3, i64 -8
# | 112: %7 = getelementptr inbounds i64, ptr %6, i64 -7
# | 113: %wide.load = load <8 x i64>, ptr %5, align 8
# | next:49 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 114: %reverse = shufflevector <8 x i64> %wide.load, <8 x i64> poison, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
# | 115: %wide.load3 = load <8 x i64>, ptr %7, align 8
# | 116: %reverse4 = shufflevector <8 x i64> %wide.load3, <8 x i64> poison, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
# | 117: %8 = add <8 x i64> %reverse, splat (i64 1)
# | 118: %9 = add <8 x i64> %reverse4, splat (i64 1)
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/PhaseOrdering/AArch64/interleave_vec.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes="default<O3>" -mcpu=neoverse-v2 -S < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleave_vec.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleave_vec.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' '-passes=default<O3>' -mcpu=neoverse-v2 -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\PhaseOrdering\AArch64\interleave_vec.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleave_vec.ll:227:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[TMP0:%.*]] = getelementptr inbounds nuw float, ptr [[C]], i64 [[OFFSET_IDX]]
# | ^
# | <stdin>:87:2: note: 'next' match was here
# | %3 = getelementptr inbounds nuw float, ptr %c, i64 %offset.idx
# | ^
# | <stdin>:83:33: note: previous match ended here
# | %offset.idx = mul i64 %index, 3
# | ^
# | <stdin>:84:1: note: non-matching line after previous match is here
# | %0 = or disjoint i64 %offset.idx, 12
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleave_vec.ll:324:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
# | ^
# | <stdin>:140:2: note: 'next' match was here
# | br label %vector.body
# | ^
# | <stdin>:136:103: note: previous match ended here
# | %1 = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <12 x i32> zeroinitializer
# | ^
# | <stdin>:137:1: note: non-matching line after previous match is here
# | %2 = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <12 x i32> zeroinitializer
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleave_vec.ll:420:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[TMP0:%.*]] = getelementptr inbounds nuw float, ptr [[C]], i64 [[OFFSET_IDX]]
# | ^
# | <stdin>:193:2: note: 'next' match was here
# | %1 = getelementptr inbounds nuw float, ptr %c, i64 %offset.idx
# | ^
# | <stdin>:191:33: note: previous match ended here
# | %offset.idx = shl i64 %index, 2
# | ^
# | <stdin>:192:1: note: non-matching line after previous match is here
# | %0 = or disjoint i64 %offset.idx, 16
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleave_vec.ll:517:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
# | ^
# | <stdin>:228:2: note: 'next' match was here
# | br label %vector.body
# | ^
# | <stdin>:224:103: note: previous match ended here
# | %1 = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <16 x i32> zeroinitializer
# | ^
# | <stdin>:225:1: note: non-matching line after previous match is here
# | %2 = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <16 x i32> zeroinitializer
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleave_vec.ll:612:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds nuw float, ptr [[C]], i64 [[INDVARS_IV]]
# | ^
# | <stdin>:278:63: note: scanning from here
# | %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | ^
# | <stdin>:278:63: note: with "C" equal to "%c"
# | %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | ^
# | <stdin>:278:63: note: with "INDVARS_IV" equal to "%index"
# | %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | ^
# | <stdin>:290:2: note: possible intended match here
# | %10 = getelementptr inbounds nuw float, ptr %c, i64 %8
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleave_vec.ll:719:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP3:%.*]] = insertelement <2 x float> poison, float [[TMP0]], i64 0
# | ^
# | <stdin>:352:82: note: scanning from here
# | %2 = shufflevector <4 x float> %1, <4 x float> poison, <4 x i32> zeroinitializer
# | ^
# | <stdin>:352:82: note: with "TMP0" equal to "%0"
# | %2 = shufflevector <4 x float> %1, <4 x float> poison, <4 x i32> zeroinitializer
# | ^
# | <stdin>:369:2: note: possible intended match here
# | %14 = load <4 x float>, ptr %4, align 4
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleave_vec.ll:823:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds nuw float, ptr [[C]], i64 [[INDVARS_IV]]
# | ^
# | <stdin>:419:63: note: scanning from here
# | %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | ^
# | <stdin>:419:63: note: with "C" equal to "%c"
# | %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | ^
# | <stdin>:419:63: note: with "INDVARS_IV" equal to "%index"
# | %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | ^
# | <stdin>:431:2: note: possible intended match here
# | %10 = getelementptr inbounds nuw float, ptr %b, i64 %2
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleave_vec.ll:930:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
# | ^
# | <stdin>:515:2: note: 'next' match was here
# | br label %vector.body
# | ^
# | <stdin>:513:103: note: previous match ended here
# | %1 = shufflevector <2 x float> %broadcast.splatinsert, <2 x float> poison, <16 x i32> zeroinitializer
# | ^
# | <stdin>:514:1: note: non-matching line after previous match is here
# | %2 = shufflevector <2 x float> %broadcast.splatinsert, <2 x float> poison, <16 x i32> zeroinitializer
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleave_vec.ll:1039:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[MIN_ITERS_CHECK:%.*]] = icmp ult i64 [[N]], 6
# | ^
# | <stdin>:552:28: note: scanning from here
# | %3 = add nuw nsw i64 %2, 1
# | ^
# | <stdin>:552:28: note: with "N" equal to "%n"
# | %3 = add nuw nsw i64 %2, 1
# | ^
# | <stdin>:553:13: note: possible intended match here
# | %min.iters.check = icmp ult i64 %n, 16
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleave_vec.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 82: %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | 83: %offset.idx = mul i64 %index, 3
# | 84: %0 = or disjoint i64 %offset.idx, 12
# | 85: %1 = add i64 %offset.idx, 24
# | 86: %2 = add i64 %offset.idx, 36
# | 87: %3 = getelementptr inbounds nuw float, ptr %c, i64 %offset.idx
# | next:227 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 88: %4 = getelementptr inbounds nuw float, ptr %c, i64 %0
# | 89: %5 = getelementptr inbounds nuw float, ptr %c, i64 %1
# | 90: %6 = getelementptr inbounds nuw float, ptr %c, i64 %2
# | 91: %wide.vec = load <12 x float>, ptr %3, align 4
# | 92: %wide.vec16 = load <12 x float>, ptr %4, align 4
# | .
# | .
# | .
# | 135: %broadcast.splatinsert = insertelement <4 x float> poison, float %0, i64 0
# | 136: %1 = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <12 x i32> zeroinitializer
# | 137: %2 = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <12 x i32> zeroinitializer
# | 138: %3 = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <12 x i32> zeroinitializer
# | 139: %4 = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <12 x i32> zeroinitializer
# | 140: br label %vector.body
# | next:324 !~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 141:
# | 142: vector.body: ; preds = %vector.body, %entry
# | 143: %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | 144: %offset.idx = mul i64 %index, 3
# | 145: %5 = or disjoint i64 %offset.idx, 12
# | .
# | .
# | .
# | 188:
# | 189: vector.body: ; preds = %vector.body, %entry
# | 190: %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | 191: %offset.idx = shl i64 %index, 2
# | 192: %0 = or disjoint i64 %offset.idx, 16
# | 193: %1 = getelementptr inbounds nuw float, ptr %c, i64 %offset.idx
# | next:420 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 194: %2 = getelementptr inbounds nuw float, ptr %c, i64 %0
# | 195: %wide.vec = load <16 x float>, ptr %1, align 4
# | 196: %wide.vec17 = load <16 x float>, ptr %2, align 4
# | 197: %3 = getelementptr inbounds nuw float, ptr %b, i64 %offset.idx
# | 198: %4 = getelementptr inbounds nuw float, ptr %b, i64 %0
# | .
# | .
# | .
# | 223: %broadcast.splatinsert = insertelement <4 x float> poison, float %0, i64 0
# | 224: %1 = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <16 x i32> zeroinitializer
# | 225: %2 = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <16 x i32> zeroinitializer
# | 226: %3 = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <16 x i32> zeroinitializer
# | 227: %4 = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <16 x i32> zeroinitializer
# | 228: br label %vector.body
# | next:517 !~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 229:
# | 230: vector.body: ; preds = %vector.body, %entry
# | 231: %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | 232: %offset.idx = shl i64 %index, 2
# | 233: %5 = or disjoint i64 %offset.idx, 16
# | .
# | .
# | .
# | 273: define void @same_op6(ptr noalias noundef captures(none) %a, ptr noundef readonly captures(none) %b, ptr noundef readonly captures(none) %c) local_unnamed_addr #0 {
# | 274: entry:
# | 275: br label %vector.body
# | 276:
# | 277: vector.body: ; preds = %vector.body, %entry
# | 278: %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | next:612'0 X error: no match found
# | next:612'1 with "C" equal to "%c"
# | next:612'2 with "INDVARS_IV" equal to "%index"
# | 279: %offset.idx = mul i64 %index, 6
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 280: %0 = add i64 %offset.idx, 12
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 281: %1 = getelementptr inbounds nuw float, ptr %c, i64 %offset.idx
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 282: %2 = getelementptr inbounds nuw float, ptr %c, i64 %0
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 283: %3 = getelementptr inbounds nuw float, ptr %b, i64 %offset.idx
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 284: %4 = getelementptr inbounds nuw float, ptr %b, i64 %0
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 285: %5 = getelementptr inbounds nuw float, ptr %a, i64 %offset.idx
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 286: %6 = getelementptr inbounds nuw float, ptr %a, i64 %0
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 287: %7 = add nuw nsw i64 %offset.idx, 8
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 288: %8 = add i64 %offset.idx, 20
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 289: %9 = getelementptr inbounds nuw float, ptr %c, i64 %7
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 290: %10 = getelementptr inbounds nuw float, ptr %c, i64 %8
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:612'3 ? possible intended match
# | 291: %11 = getelementptr inbounds nuw float, ptr %b, i64 %7
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 292: %12 = getelementptr inbounds nuw float, ptr %b, i64 %8
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 293: %13 = getelementptr inbounds nuw float, ptr %a, i64 %7
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 294: %14 = getelementptr inbounds nuw float, ptr %a, i64 %8
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 295: %15 = load <4 x float>, ptr %1, align 4
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 347: ; Function Attrs: nofree norecurse nosync nounwind memory(argmem: readwrite)
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 348: define void @same_op6_splat(ptr noalias noundef captures(none) %a, ptr noundef readonly captures(none) %b, ptr noundef readonly captures(none) %c) local_unnamed_addr #0 {
# | next:612'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 349: entry:
# | 350: %0 = load float, ptr %c, align 4
# | 351: %1 = insertelement <4 x float> poison, float %0, i64 0
# | 352: %2 = shufflevector <4 x float> %1, <4 x float> poison, <4 x i32> zeroinitializer
# | next:719'0 X error: no match found
# | next:719'1 with "TMP0" equal to "%0"
# | 353: br label %vector.body
# | next:719'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 354:
# | next:719'0 ~
# | 355: vector.body: ; preds = %vector.body, %entry
# | next:719'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 356: %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | next:719'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 357: %offset.idx = mul i64 %index, 6
# | next:719'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 364: %9 = add i64 %offset.idx, 20
# | next:719'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 365: %10 = getelementptr inbounds nuw float, ptr %b, i64 %8
# | next:719'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 366: %11 = getelementptr inbounds nuw float, ptr %b, i64 %9
# | next:719'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 367: %12 = getelementptr inbounds nuw float, ptr %a, i64 %8
# | next:719'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 368: %13 = getelementptr inbounds nuw float, ptr %a, i64 %9
# | next:719'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 369: %14 = load <4 x float>, ptr %4, align 4
# | next:719'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:719'2 ? possible intended match
# | 370: %15 = fmul fast <4 x float> %14, %2
# | next:719'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 371: %16 = load <4 x float>, ptr %6, align 4
# | next:719'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 372: %17 = fadd fast <4 x float> %16, %15
# | next:719'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 373: store <4 x float> %17, ptr %6, align 4
# | next:719'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 374: %18 = load <4 x float>, ptr %5, align 4
# | next:719'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 414: define void @same_op8(ptr noalias noundef captures(none) %a, ptr noundef readonly captures(none) %b, ptr noundef readonly captures(none) %c) local_unnamed_addr #0 {
# | next:719'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 415: entry:
# | 416: br label %vector.body
# | 417:
# | 418: vector.body: ; preds = %vector.body, %entry
# | 419: %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | next:823'0 X error: no match found
# | next:823'1 with "C" equal to "%c"
# | next:823'2 with "INDVARS_IV" equal to "%index"
# | 420: %offset.idx = shl i64 %index, 3
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 421: %0 = or disjoint i64 %offset.idx, 8
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 422: %1 = or disjoint i64 %offset.idx, 16
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 423: %2 = or disjoint i64 %offset.idx, 24
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 424: %3 = getelementptr inbounds nuw float, ptr %c, i64 %offset.idx
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 425: %4 = getelementptr inbounds nuw float, ptr %c, i64 %0
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 426: %5 = getelementptr inbounds nuw float, ptr %c, i64 %1
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 427: %6 = getelementptr inbounds nuw float, ptr %c, i64 %2
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 428: %7 = getelementptr inbounds nuw float, ptr %b, i64 %offset.idx
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 429: %8 = getelementptr inbounds nuw float, ptr %b, i64 %0
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 430: %9 = getelementptr inbounds nuw float, ptr %b, i64 %1
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 431: %10 = getelementptr inbounds nuw float, ptr %b, i64 %2
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:823'3 ? possible intended match
# | 432: %11 = getelementptr inbounds nuw float, ptr %a, i64 %offset.idx
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 433: %12 = getelementptr inbounds nuw float, ptr %a, i64 %0
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 434: %13 = getelementptr inbounds nuw float, ptr %a, i64 %1
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 435: %14 = getelementptr inbounds nuw float, ptr %a, i64 %2
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 436: %15 = load <4 x float>, ptr %3, align 4
# | next:823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 510: entry:
# | 511: %0 = load float, ptr %c, align 4
# | 512: %broadcast.splatinsert = insertelement <2 x float> poison, float %0, i64 0
# | 513: %1 = shufflevector <2 x float> %broadcast.splatinsert, <2 x float> poison, <16 x i32> zeroinitializer
# | 514: %2 = shufflevector <2 x float> %broadcast.splatinsert, <2 x float> poison, <16 x i32> zeroinitializer
# | 515: br label %vector.body
# | next:930 !~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 516:
# | 517: vector.body: ; preds = %vector.body, %entry
# | 518: %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | 519: %offset.idx = shl i64 %index, 3
# | 520: %3 = or disjoint i64 %offset.idx, 16
# | .
# | .
# | .
# | 547: br i1 %0, label %loop.preheader, label %exit
# | 548:
# | 549: loop.preheader: ; preds = %entry
# | 550: %1 = add nsw i64 %n, -1
# | 551: %2 = udiv i64 %1, 5
# | 552: %3 = add nuw nsw i64 %2, 1
# | next:1039'0 X error: no match found
# | next:1039'1 with "N" equal to "%n"
# | 553: %min.iters.check = icmp ult i64 %n, 16
# | next:1039'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1039'2 ? possible intended match
# | 554: br i1 %min.iters.check, label %loop.preheader24, label %vector.ph
# | next:1039'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 555:
# | next:1039'0 ~
# | 556: vector.ph: ; preds = %loop.preheader
# | next:1039'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 557: %n.vec = and i64 %3, 9223372036854775804
# | next:1039'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 558: %4 = mul i64 %n.vec, 5
# | next:1039'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/PhaseOrdering/AArch64/interleavevectorization.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes="default<O3>" -S -o - C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleavevectorization.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleavevectorization.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' '-passes=default<O3>' -S -o - 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleavevectorization.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\PhaseOrdering\AArch64\interleavevectorization.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleavevectorization.ll:392:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[TMP0:%.*]] = getelementptr inbounds nuw i16, ptr [[Y:%.*]], i64 [[OFFSET_IDX]]
# | ^
# | <stdin>:93:2: note: 'next' match was here
# | %1 = getelementptr inbounds nuw i16, ptr %y, i64 %offset.idx
# | ^
# | <stdin>:91:33: note: previous match ended here
# | %offset.idx = shl i64 %index, 2
# | ^
# | <stdin>:92:1: note: non-matching line after previous match is here
# | %0 = or disjoint i64 %offset.idx, 32
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleavevectorization.ll:548:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[TMP0:%.*]] = getelementptr inbounds nuw i16, ptr [[Y:%.*]], i64 [[OFFSET_IDX]]
# | ^
# | <stdin>:128:2: note: 'next' match was here
# | %1 = getelementptr inbounds nuw i16, ptr %y, i64 %offset.idx
# | ^
# | <stdin>:126:33: note: previous match ended here
# | %offset.idx = shl i64 %index, 2
# | ^
# | <stdin>:127:1: note: non-matching line after previous match is here
# | %0 = or disjoint i64 %offset.idx, 32
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleavevectorization.ll:713:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[TMP0:%.*]] = getelementptr inbounds nuw i16, ptr [[Y:%.*]], i64 [[OFFSET_IDX]]
# | ^
# | <stdin>:181:2: note: 'next' match was here
# | %1 = getelementptr inbounds nuw i16, ptr %y, i64 %offset.idx
# | ^
# | <stdin>:179:33: note: previous match ended here
# | %offset.idx = shl i64 %index, 2
# | ^
# | <stdin>:180:1: note: non-matching line after previous match is here
# | %0 = or disjoint i64 %offset.idx, 32
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\interleavevectorization.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 88:
# | 89: vector.body: ; preds = %vector.body, %entry
# | 90: %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | 91: %offset.idx = shl i64 %index, 2
# | 92: %0 = or disjoint i64 %offset.idx, 32
# | 93: %1 = getelementptr inbounds nuw i16, ptr %y, i64 %offset.idx
# | next:392 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 94: %2 = getelementptr inbounds nuw i16, ptr %y, i64 %0
# | 95: %wide.vec = load <32 x i16>, ptr %1, align 2
# | 96: %wide.vec31 = load <32 x i16>, ptr %2, align 2
# | 97: %3 = getelementptr inbounds nuw i16, ptr %z, i64 %offset.idx
# | 98: %4 = getelementptr inbounds nuw i16, ptr %z, i64 %0
# | .
# | .
# | .
# | 123:
# | 124: vector.body: ; preds = %vector.body, %entry
# | 125: %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | 126: %offset.idx = shl i64 %index, 2
# | 127: %0 = or disjoint i64 %offset.idx, 32
# | 128: %1 = getelementptr inbounds nuw i16, ptr %y, i64 %offset.idx
# | next:548 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 129: %2 = getelementptr inbounds nuw i16, ptr %y, i64 %0
# | 130: %wide.vec = load <32 x i16>, ptr %1, align 2
# | 131: %wide.vec31 = load <32 x i16>, ptr %2, align 2
# | 132: %3 = getelementptr inbounds nuw i16, ptr %z, i64 %offset.idx
# | 133: %4 = getelementptr inbounds nuw i16, ptr %z, i64 %0
# | .
# | .
# | .
# | 176:
# | 177: vector.body: ; preds = %vector.body, %entry
# | 178: %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ]
# | 179: %offset.idx = shl i64 %index, 2
# | 180: %0 = or disjoint i64 %offset.idx, 32
# | 181: %1 = getelementptr inbounds nuw i16, ptr %y, i64 %offset.idx
# | next:713 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 182: %2 = getelementptr inbounds nuw i16, ptr %y, i64 %0
# | 183: %wide.vec = load <32 x i16>, ptr %1, align 2
# | 184: %wide.vec31 = load <32 x i16>, ptr %2, align 2
# | 185: %3 = getelementptr inbounds nuw i16, ptr %z, i64 %offset.idx
# | 186: %4 = getelementptr inbounds nuw i16, ptr %z, i64 %0
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/PhaseOrdering/AArch64/sinking-vs-if-conversion.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes='default<O2>' -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\sinking-vs-if-conversion.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\sinking-vs-if-conversion.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' '-passes=default<O2>' -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\sinking-vs-if-conversion.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\PhaseOrdering\AArch64\sinking-vs-if-conversion.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\sinking-vs-if-conversion.ll:144:10: error: CHECK: expected string not found in input
# | ; CHECK: for.body:
# | ^
# | <stdin>:53:23: note: scanning from here
# | br label %vector.body
# | ^
# | <stdin>:55:4: note: possible intended match here
# | vector.body: ; preds = %pred.load.continue9, %entry
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\AArch64\sinking-vs-if-conversion.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 48: }
# | 49:
# | 50: ; Function Attrs: nofree norecurse nosync nounwind memory(argmem: readwrite)
# | 51: define void @cond_select_loop(ptr noalias noundef readonly captures(none) %a, ptr noalias noundef readonly captures(none) %b, ptr noalias noundef writeonly captures(none) %c) local_unnamed_addr #1 {
# | 52: entry:
# | 53: br label %vector.body
# | check:144'0 X error: no match found
# | 54:
# | check:144'0 ~
# | 55: vector.body: ; preds = %pred.load.continue9, %entry
# | check:144'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:144'1 ? possible intended match
# | 56: %index = phi i64 [ 0, %entry ], [ %index.next, %pred.load.continue9 ]
# | check:144'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 57: %0 = or disjoint i64 %index, 1
# | check:144'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 58: %1 = getelementptr inbounds nuw float, ptr %a, i64 %index
# | check:144'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 59: %2 = getelementptr inbounds nuw float, ptr %a, i64 %0
# | check:144'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 60: %3 = load float, ptr %1, align 4
# | check:144'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/169825
More information about the llvm-commits
mailing list