[llvm] [LV] Reduce register pressure of RISC-V outer loop reduction. (PR #208621)

via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 30 04:09:00 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 154366 tests passed
* 3431 tests skipped
* 1 test failed

## Failed Tests
(click on a test name to see its output)

### LLVM
<details>
<summary>LLVM.Transforms/LoopVectorize/RISCV/tail-folding-complex-mask.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize  -mtriple=riscv64 -mattr=+v -S < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-complex-mask.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-complex-mask.ll --check-prefix=IF-EVL
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -mtriple=riscv64 -mattr=+v -S
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-complex-mask.ll --check-prefix=IF-EVL
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-complex-mask.ll:207:16: error: IF-EVL-NEXT: is not on the line after the previous match
# | ; IF-EVL-NEXT: [[TMP9:%.*]] = add <vscale x 2 x i64> [[VEC_PHI]], [[VEC_IND]]
# |                ^
# | <stdin>:80:2: note: 'next' match was here
# |  %9 = add <vscale x 2 x i64> %vec.phi, %vec.ind
# |  ^
# | <stdin>:78:91: note: previous match ended here
# |  %7 = select <vscale x 2 x i1> %4, <vscale x 2 x i1> %6, <vscale x 2 x i1> zeroinitializer
# |                                                                                           ^
# | <stdin>:79:1: note: non-matching line after previous match is here
# |  %8 = mul <vscale x 2 x i64> %vec.ind, %vec.ind
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-complex-mask.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            73:  %vp.op.load = call <vscale x 2 x i32> @llvm.vp.load.nxv2i32.p0(ptr align 4 %3, <vscale x 2 x i1> splat (i1 true), i32 %1) 
# |            74:  %4 = icmp ne <vscale x 2 x i32> %vp.op.load, zeroinitializer 
# |            75:  %5 = getelementptr i32, ptr %q, i64 %index 
# |            76:  %vp.op.load2 = call <vscale x 2 x i32> @llvm.vp.load.nxv2i32.p0(ptr align 4 %5, <vscale x 2 x i1> %4, i32 %1) 
# |            77:  %6 = icmp sgt <vscale x 2 x i32> %vp.op.load2, zeroinitializer 
# |            78:  %7 = select <vscale x 2 x i1> %4, <vscale x 2 x i1> %6, <vscale x 2 x i1> zeroinitializer 
# | next:207'0                                                                                              {   search range start (exclusive)
# |            79:  %8 = mul <vscale x 2 x i64> %vec.ind, %vec.ind 
# |            80:  %9 = add <vscale x 2 x i64> %vec.phi, %vec.ind 
# | next:207'1      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   error: match on wrong line
# |            81:  %10 = call <vscale x 2 x i64> @llvm.vp.merge.nxv2i64(<vscale x 2 x i1> %7, <vscale x 2 x i64> %9, <vscale x 2 x i64> %vec.phi, i32 %1) 
# |            82:  %11 = add <vscale x 2 x i64> %vec.phi1, %8 
# |            83:  %12 = call <vscale x 2 x i64> @llvm.vp.merge.nxv2i64(<vscale x 2 x i1> %7, <vscale x 2 x i64> %11, <vscale x 2 x i64> %vec.phi1, i32 %1) 
# |            84:  %current.iteration.next = add i64 %2, %index 
# |            85:  %avl.next = sub nuw i64 %avl, %2 
# |             .
# |             .
# |             .
# |           131: attributes #5 = { nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none) } 
# |           132:  
# |           133: !0 = distinct !{!0, !1, !2} 
# |           134: !1 = !{!"llvm.loop.isvectorized", i32 1} 
# |           135: !2 = !{!"llvm.loop.unroll.runtime.disable"} 
# |           136: !3 = distinct !{!3, !1, !2} 
# | next:207'2                                 } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# 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/208621


More information about the llvm-commits mailing list