[llvm] [VPlan] Pull out reverses from elementwise operations (PR #199234)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 10 05:58:04 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 135702 tests passed
* 3397 tests skipped
* 5 tests failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/sve-tail-folding-option.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-tail-folding-option.ll -passes=loop-vectorize -sve-tail-folding-insn-threshold=0 -sve-tail-folding=disabled -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-tail-folding-option.ll -check-prefix=CHECK-NOTF
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -sve-tail-folding-insn-threshold=0 -sve-tail-folding=disabled -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\sve-tail-folding-option.ll' -check-prefix=CHECK-NOTF
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-tail-folding-option.ll:353:15: error: CHECK-NOTF: expected string not found in input
# | ; CHECK-NOTF: %{{.*}} = call <vscale x 2 x double> @llvm.vector.reverse.nxv2f64(<vscale x 2 x double> %[[LOAD]])
# | ^
# | <stdin>:255:46: note: scanning from here
# | %wide.load = load <vscale x 2 x double>, ptr %9, align 8
# | ^
# | <stdin>:255:46: note: with "LOAD" equal to "wide.load"
# | %wide.load = load <vscale x 2 x double>, ptr %9, align 8
# | ^
# | <stdin>:304:1: note: possible intended match here
# | declare <vscale x 4 x i32> @llvm.vector.splice.right.nxv4i32(<vscale x 4 x i32>, <vscale x 4 x i32>, i32) #2
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-tail-folding-option.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 250: %7 = sub nuw nsw i64 %2, 1
# | 251: %8 = sub i64 0, %7
# | 252: %9 = getelementptr inbounds double, ptr %6, i64 %8
# | 253: %10 = sub i64 %8, %2
# | 254: %11 = getelementptr inbounds double, ptr %6, i64 %10
# | 255: %wide.load = load <vscale x 2 x double>, ptr %9, align 8
# | check:353'0 X~~~~~~~~~~~~ error: no match found
# | check:353'1 with "LOAD" equal to "wide.load"
# | 256: %wide.load1 = load <vscale x 2 x double>, ptr %11, align 8
# | check:353'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 257: %12 = fadd <vscale x 2 x double> %wide.load, splat (double 1.000000e+00)
# | check:353'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 258: %13 = fadd <vscale x 2 x double> %wide.load1, splat (double 1.000000e+00)
# | check:353'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 259: %14 = getelementptr inbounds double, ptr %dst, i64 %5
# | check:353'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 260: %15 = getelementptr inbounds double, ptr %14, i64 %8
# | check:353'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 299:
# | check:353'0 ~
# | 300: ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
# | check:353'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 301: declare i32 @llvm.vscale.i32() #2
# | check:353'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 302:
# | check:353'0 ~
# | 303: ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
# | check:353'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 304: declare <vscale x 4 x i32> @llvm.vector.splice.right.nxv4i32(<vscale x 4 x i32>, <vscale x 4 x i32>, i32) #2
# | check:353'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:353'2 ? possible intended match
# | 305:
# | check:353'0 ~
# | 306: attributes #0 = { "target-features"="+sve" }
# | check:353'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 307: attributes #1 = { nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none) }
# | check:353'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 308: attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
# | check:353'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 309:
# | check:353'0 ~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/ARM/tail-folding-counting-down.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\ARM\tail-folding-counting-down.ll -passes=loop-vectorize -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\ARM\tail-folding-counting-down.ll --check-prefixes=COMMON,DEFAULT
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\ARM\tail-folding-counting-down.ll' --check-prefixes=COMMON,DEFAULT
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\ARM\tail-folding-counting-down.ll:394:16: error: DEFAULT-NOT: excluded string found in input
# | ; DEFAULT-NOT: vector.body:
# | ^
# | <stdin>:461:1: note: found here
# | vector.body: ; preds = %vector.body, %vector.ph
# | ^~~~~~~~~~~~
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\ARM\tail-folding-counting-down.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 456: %n.mod.vf = urem i32 %add, 16
# | 457: %n.vec = sub i32 %add, %n.mod.vf
# | 458: %0 = sub i32 %add, %n.vec
# | 459: br label %vector.body
# | 460:
# | 461: vector.body: ; preds = %vector.body, %vector.ph
# | not:394 !~~~~~~~~~~~ error: no match expected
# | 462: %index = phi i32 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# | 463: %1 = sub i32 %add, %index
# | 464: %2 = getelementptr inbounds i8, ptr %a, i32 %1
# | 465: %3 = getelementptr inbounds i8, ptr %2, i32 -15
# | 466: %wide.load = load <16 x i8>, ptr %3, align 1
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/PowerPC/reg-usage.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\PowerPC\reg-usage.ll -debug-only=loop-vectorize,vplan -passes='function(loop-vectorize),default<O2>' -vectorizer-maximize-bandwidth -mtriple=powerpc64-unknown-linux -S -mcpu=pwr8 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\PowerPC\reg-usage.ll --check-prefixes=CHECK,CHECK-PWR8
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -debug-only=loop-vectorize,vplan '-passes=function(loop-vectorize),default<O2>' -vectorizer-maximize-bandwidth -mtriple=powerpc64-unknown-linux -S -mcpu=pwr8
# 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\PowerPC\reg-usage.ll' --check-prefixes=CHECK,CHECK-PWR8
# note: command had no output on stdout or stderr
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\PowerPC\reg-usage.ll -debug-only=loop-vectorize,vplan -passes='function(loop-vectorize),default<O2>' -vectorizer-maximize-bandwidth -mtriple=powerpc64le-unknown-linux -S -mcpu=pwr9 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\PowerPC\reg-usage.ll --check-prefixes=CHECK,CHECK-PWR9
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -debug-only=loop-vectorize,vplan '-passes=function(loop-vectorize),default<O2>' -vectorizer-maximize-bandwidth -mtriple=powerpc64le-unknown-linux -S -mcpu=pwr9
# 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\PowerPC\reg-usage.ll' --check-prefixes=CHECK,CHECK-PWR9
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\PowerPC\reg-usage.ll:180:14: error: CHECK-PWR9: expected string not found in input
# | ;CHECK-PWR9: LV(REG): VF = 1
# | ^
# | <stdin>:2929:32: note: scanning from here
# | LV: Checking a loop in 'double_' from <stdin>
# | ^
# | <stdin>:3006:23: note: possible intended match here
# | LV: Found uniform instruction: %3 = getelementptr inbounds double, ptr %A, i64 %indvars.iv
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\PowerPC\reg-usage.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 2924: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 32
# | 2925: %cmp1 = icmp slt i64 %indvars.iv.next, %t0
# | 2926: br i1 %cmp1, label %for, label %loopexit
# | 2927: LV: draw edge from scalar.ph
# | 2928:
# | 2929: LV: Checking a loop in 'double_' from <stdin>
# | check:180'0 X~~~~~~~~~~~~~~ error: no match found
# | 2930: LV: Loop hints: force=? width=0 interleave=0
# | check:180'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 2931: LV: Found a loop:
# | check:180'0 ~~~~~~~~~~~~~~~~~~~
# | 2932: LV: Found an induction variable.
# | check:180'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 2933: LV: Found FP op with unsafe algebra.
# | check:180'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 2934: LV: Found FP op with unsafe algebra.
# | check:180'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 3001:
# | check:180'0 ~
# | 3002: ir-bb<>:
# | check:180'0 ~~~~~~~~~
# | 3003: No successors
# | check:180'0 ~~~~~~~~~~~~~~
# | 3004: }
# | check:180'0 ~~
# | 3005: LV: Found uniform instruction: %25 = icmp eq i32 %24, 0
# | check:180'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 3006: LV: Found uniform instruction: %3 = getelementptr inbounds double, ptr %A, i64 %indvars.iv
# | check:180'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:180'1 ? possible intended match
# | 3007: LV: Found uniform instruction: %24 = trunc i64 %indvars.iv to i32
# | check:180'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 3008: LV: Found uniform instruction: %indvars.iv = phi i64 [ %indvars.iv.next, %2 ], [ %1, %0 ]
# | check:180'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 3009: LV: Found uniform instruction: %indvars.iv.next = add i64 %indvars.iv, -1
# | check:180'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 3010: LV: Found scalar instruction: %indvars.iv = phi i64 [ %indvars.iv.next, %2 ], [ %1, %0 ]
# | check:180'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 3011: LV: Found scalar instruction: %indvars.iv.next = add i64 %indvars.iv, -1
# | check:180'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/VPlan/RISCV/vplan-riscv-vector-reverse.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 7
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-vectorize -mtriple=riscv64 -mattr=+v -debug-only=loop-vectorize -scalable-vectorization=on -disable-output < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\VPlan\RISCV\vplan-riscv-vector-reverse.ll 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\VPlan\RISCV\vplan-riscv-vector-reverse.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -mtriple=riscv64 -mattr=+v -debug-only=loop-vectorize -scalable-vectorization=on -disable-output
# 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\VPlan\RISCV\vplan-riscv-vector-reverse.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\VPlan\RISCV\vplan-riscv-vector-reverse.ll:38:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: WIDEN-INTRINSIC vp<[[VAL_B:%.+]]> = call llvm.experimental.vp.reverse(ir<[[LOAD_B]]>, ir<true>, vp<[[EVL]]>)
# | ^
# | <stdin>:164:41: note: scanning from here
# | WIDEN ir<%0> = vp.load vp<%8>, vp<%evl>
# | ^
# | <stdin>:164:41: note: with "LOAD_B" equal to "%0"
# | WIDEN ir<%0> = vp.load vp<%8>, vp<%evl>
# | ^
# | <stdin>:164:41: note: with "EVL" equal to "%evl"
# | WIDEN ir<%0> = vp.load vp<%8>, vp<%evl>
# | ^
# | <stdin>:165:2: note: possible intended match here
# | WIDEN-INTRINSIC vp<%9> = call llvm.vector.splice.left(ir<poison>, ir<%0>, vp<%evl>)
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\VPlan\RISCV\vplan-riscv-vector-reverse.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 159: vp<%7> = SCALAR-STEPS vp<%6>, ir<-1>, vp<%evl>
# | 160: CLONE ir<%i.0> = add nsw vp<%7>, ir<-1>
# | 161: CLONE ir<%idxprom> = zext ir<%i.0>
# | 162: CLONE ir<%arrayidx> = getelementptr inbounds ir<%B>, ir<%idxprom>
# | 163: vp<%8> = vector-end-pointer ir<%arrayidx>, vp<%evl>
# | 164: WIDEN ir<%0> = vp.load vp<%8>, vp<%evl>
# | next:38'0 X error: no match found
# | next:38'1 with "LOAD_B" equal to "%0"
# | next:38'2 with "EVL" equal to "%evl"
# | 165: WIDEN-INTRINSIC vp<%9> = call llvm.vector.splice.left(ir<poison>, ir<%0>, vp<%evl>)
# | next:38'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:38'3 ? possible intended match
# | 166: WIDEN ir<%add9> = add ir<%0>, ir<1>
# | next:38'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 167: CLONE ir<%arrayidx3> = getelementptr inbounds ir<%A>, ir<%idxprom>
# | next:38'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 168: vp<%10> = vector-end-pointer ir<%arrayidx3>, vp<%evl>
# | next:38'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 169: WIDEN vp.store vp<%10>, ir<%add9>, vp<%evl>
# | next:38'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 170: EMIT vp<%current.iteration.next> = add vp<%evl>, vp<%5>
# | next:38'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/bzip_reverse_loops.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\bzip_reverse_loops.ll -passes=loop-vectorize -force-vector-interleave=1 -force-vector-width=4 -S -enable-if-conversion | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\bzip_reverse_loops.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -force-vector-interleave=1 -force-vector-width=4 -S -enable-if-conversion
# 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\bzip_reverse_loops.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\bzip_reverse_loops.ll:42:14: error: CHECK-NEXT: expected string not found in input
# | ;CHECK-NEXT: shufflevector <4 x i32>
# | ^
# | <stdin>:102:29: note: scanning from here
# | %wide.load = load <4 x i32>, ptr %9, align 4
# | ^
# | <stdin>:103:3: note: possible intended match here
# | %10 = icmp slt <4 x i32> %wide.load, %broadcast.splat
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\bzip_reverse_loops.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 97: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# | 98: %7 = mul i64 %index, -4
# | 99: %next.gep = getelementptr i8, ptr %a, i64 %7
# | 100: %8 = getelementptr inbounds i32, ptr %next.gep, i64 -1
# | 101: %9 = getelementptr inbounds i32, ptr %8, i64 -3
# | 102: %wide.load = load <4 x i32>, ptr %9, align 4
# | next:42'0 X~~~~~~~~~~~~~~~~~ error: no match found
# | 103: %10 = icmp slt <4 x i32> %wide.load, %broadcast.splat
# | next:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:42'1 ? possible intended match
# | 104: %11 = sub nsw <4 x i32> %wide.load, %broadcast.splat
# | next:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 105: %12 = select <4 x i1> %10, <4 x i32> zeroinitializer, <4 x i32> %11
# | next:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 106: store <4 x i32> %12, ptr %9, align 4
# | next:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 107: %index.next = add nuw i64 %index, 4
# | next:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 108: %13 = icmp eq i64 %index.next, %n.vec
# | next:42'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/199234
More information about the llvm-commits
mailing list