[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