[llvm] [LV] Convert scatter w/uniform addr and mask being header mask to scalar store. (PR #172799)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 13 22:10:15 PST 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 129461 tests passed
* 2865 tests skipped
* 2 tests failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.Transforms/LoopVectorize/RISCV/cse.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\cse.ll -S -p loop-vectorize -mtriple riscv32 -mattr=+v | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\cse.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -p loop-vectorize -mtriple riscv32 -mattr=+v
# 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\RISCV\cse.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\cse.ll:13:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[BROADCAST_SPLATINSERT:%.*]] = insertelement <vscale x 4 x ptr> poison, ptr [[P0]], i64 0
# | ^
# | <stdin>:10:11: note: scanning from here
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:10:11: note: with "P0" equal to "%p0"
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:27:2: note: possible intended match here
# | %8 = extractelement <vscale x 4 x ptr> %vector.gep2, i64 %4
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\cse.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 5:
# | 6: define i32 @widenpointerinduction_evl_cse(ptr noalias %p0, ptr noalias %p1) #0 {
# | 7: entry:
# | 8: br label %vector.ph
# | 9:
# | 10: vector.ph: ; preds = %entry
# | next:13'0 X~~~~~~~~~~~~~~~~~ error: no match found
# | next:13'1 with "P0" equal to "%p0"
# | 11: br label %vector.body
# | next:13'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 12:
# | next:13'0 ~
# | 13: vector.body: ; preds = %vector.body, %vector.ph
# | next:13'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 14: %pointer.phi = phi ptr [ %p0, %vector.ph ], [ %ptr.ind, %vector.body ]
# | next:13'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 15: %pointer.phi1 = phi ptr [ %p1, %vector.ph ], [ %ptr.ind3, %vector.body ]
# | next:13'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 22: %3 = zext i32 %2 to i64
# | next:13'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | 23: %4 = sub i64 %3, 1
# | next:13'0 ~~~~~~~~~~~~~~~~~~~~
# | 24: %5 = call i64 @llvm.vscale.i64()
# | next:13'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 25: %6 = mul nuw i64 %5, 4
# | next:13'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 26: %7 = mul i64 %6, 0
# | next:13'0 ~~~~~~~~~~~~~~~~~~~~
# | 27: %8 = extractelement <vscale x 4 x ptr> %vector.gep2, i64 %4
# | next:13'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:13'2 ? possible intended match
# | 28: store ptr %8, ptr %p0, align 4
# | next:13'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 29: %9 = call i64 @llvm.vscale.i64()
# | next:13'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 30: %10 = mul nuw i64 %9, 4
# | next:13'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | 31: %11 = mul i64 %10, 0
# | next:13'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 32: %12 = extractelement <vscale x 4 x ptr> %vector.gep, i64 %4
# | next:13'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/RISCV/pointer-induction-rv32.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\pointer-induction-rv32.ll -S -p loop-vectorize -mtriple riscv32 -mattr=+v | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\pointer-induction-rv32.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -p loop-vectorize -mtriple riscv32 -mattr=+v
# 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\RISCV\pointer-induction-rv32.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\pointer-induction-rv32.ll:12:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[BROADCAST_SPLATINSERT:%.*]] = insertelement <vscale x 4 x ptr> poison, ptr [[P]], i64 0
# | ^
# | <stdin>:10:11: note: scanning from here
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:10:11: note: with "P" equal to "%p"
# | vector.ph: ; preds = %entry
# | ^
# | <stdin>:24:2: note: possible intended match here
# | %7 = extractelement <vscale x 4 x ptr> %vector.gep, i64 %3
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\pointer-induction-rv32.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 5:
# | 6: define i32 @widenpointerinduction_evl(ptr noalias %p) #0 {
# | 7: entry:
# | 8: br label %vector.ph
# | 9:
# | 10: vector.ph: ; preds = %entry
# | next:12'0 X~~~~~~~~~~~~~~~~~ error: no match found
# | next:12'1 with "P" equal to "%p"
# | 11: br label %vector.body
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 12:
# | next:12'0 ~
# | 13: vector.body: ; preds = %vector.body, %vector.ph
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 14: %pointer.phi = phi ptr [ %p, %vector.ph ], [ %ptr.ind, %vector.body ]
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 15: %avl = phi i32 [ 1024, %vector.ph ], [ %avl.next, %vector.body ]
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 19: %2 = zext i32 %1 to i64
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | 20: %3 = sub i64 %2, 1
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~
# | 21: %4 = call i64 @llvm.vscale.i64()
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 22: %5 = mul nuw i64 %4, 4
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 23: %6 = mul i64 %5, 0
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~
# | 24: %7 = extractelement <vscale x 4 x ptr> %vector.gep, i64 %3
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:12'2 ? possible intended match
# | 25: store ptr %7, ptr %p, align 4
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 26: %avl.next = sub nuw i32 %avl, %1
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 27: %ptr.ind = getelementptr i8, ptr %pointer.phi, i32 %1
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 28: %8 = icmp eq i32 %avl.next, 0
# | next:12'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 29: br i1 %8, label %middle.block, label %vector.body, !llvm.loop !0
# | next:12'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/172799
More information about the llvm-commits
mailing list