[llvm] Reduced neon non-const strided load cost (PR #169731)

via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 26 23:43:23 PST 2025


github-actions[bot] wrote:

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

* 166399 tests passed
* 2870 tests skipped
* 3 tests failed

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

### LLVM
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/gather-cost.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -mtriple=arm64-apple-ios -S -mcpu=cyclone -enable-interleaved-mem-accesses=false < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/gather-cost.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/AArch64/gather-cost.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -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: /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/AArch64/gather-cost.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/gather-cost.ll:16:14: error: CHECK-NOT: excluded string found in input
# | ; CHECK-NOT: x float>
# |              ^
# | <stdin>:31:20: note: found here
# |  %vec.phi = phi <4 x float> [ zeroinitializer, %vector.ph ], [ %64, %vector.body ]
# |                    ^~~~~~~~
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/gather-cost.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |         .
# |         .
# |         .
# |        26:  %n.vec = sub i64 %size, %n.mod.vf 
# |        27:  br label %vector.body 
# |        28:  
# |        29: vector.body: ; preds = %vector.body, %vector.ph 
# |        30:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] 
# |        31:  %vec.phi = phi <4 x float> [ zeroinitializer, %vector.ph ], [ %64, %vector.body ] 
# | not:16                        !~~~~~~~                                                         error: no match expected
# |        32:  %vec.phi1 = phi <4 x float> [ zeroinitializer, %vector.ph ], [ %65, %vector.body ] 
# |        33:  %vec.phi2 = phi <4 x float> [ zeroinitializer, %vector.ph ], [ %106, %vector.body ] 
# |        34:  %vec.phi3 = phi <4 x float> [ zeroinitializer, %vector.ph ], [ %107, %vector.body ] 
# |        35:  %vec.phi4 = phi <4 x float> [ zeroinitializer, %vector.ph ], [ %148, %vector.body ] 
# |        36:  %vec.phi5 = phi <4 x float> [ zeroinitializer, %vector.ph ], [ %149, %vector.body ] 
# |         .
# |         .
# |         .
# | >>>>>>
# `-----------------------------
# 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
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -p loop-vectorize -S /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/reduction-recurrence-costs-sve.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefixes=DEFAULT /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/reduction-recurrence-costs-sve.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -p loop-vectorize -S /home/gha/actions-runner/_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: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefixes=DEFAULT /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/reduction-recurrence-costs-sve.ll
# .---command stderr------------
# | /home/gha/actions-runner/_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>:36: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: /home/gha/actions-runner/_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:
# | <<<<<<
# |          .
# |          .
# |          .
# |         31:  %13 = getelementptr i32, ptr %src.2, i64 %12 
# |         32:  %14 = extractelement <4 x i64> %9, i32 2 
# |         33:  %15 = getelementptr i32, ptr %src.2, i64 %14 
# |         34:  %16 = extractelement <4 x i64> %9, i32 3 
# |         35:  %17 = getelementptr i32, ptr %src.2, i64 %16 
# |         36:  br label %vector.body 
# | next:13      !~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |         37:  
# |         38: vector.body: ; preds = %vector.body, %vector.ph 
# |         39:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] 
# |         40:  %vector.recur = phi <4 x i32> [ <i32 poison, i32 poison, i32 poison, i32 0>, %vector.ph ], [ %broadcast.splat6, %vector.body ] 
# |         41:  %vector.recur3 = phi <4 x i32> [ <i32 poison, i32 poison, i32 poison, i32 0>, %vector.ph ], [ %20, %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
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -p loop-vectorize -S /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/replicating-load-store-costs.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/AArch64/replicating-load-store-costs.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -p loop-vectorize -S /home/gha/actions-runner/_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: /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/AArch64/replicating-load-store-costs.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/replicating-load-store-costs.ll:63:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP4:%.*]] = add i32 [[TMP3]], 123
# |               ^
# | <stdin>:65:32: note: scanning from here
# |  %3 = load i32, ptr %2, align 4
# |                                ^
# | <stdin>:65:32: note: with "TMP3" equal to "%3"
# |  %3 = load i32, ptr %2, align 4
# |                                ^
# | <stdin>:66:2: note: possible intended match here
# |  %4 = load i32, ptr %2, align 4
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/replicating-load-store-costs.ll:106:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[TMP4:%.*]] = zext i8 [[TMP3]] to i32
# |               ^
# | <stdin>:115:2: note: 'next' match was here
# |  %19 = zext i8 %3 to i32
# |  ^
# | <stdin>:99:31: note: previous match ended here
# |  %3 = load i8, ptr %2, align 1
# |                               ^
# | <stdin>:100:1: note: non-matching line after previous match is here
# |  %4 = load i8, ptr %2, align 1
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_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:
# | <<<<<<
# |            .
# |            .
# |            .
# |           60: vector.body: ; preds = %vector.body, %vector.ph 
# |           61:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] 
# |           62:  %0 = load i32, ptr %invar.src, align 4 
# |           63:  %1 = sext i32 %0 to i64 
# |           64:  %2 = getelementptr i128, ptr %src, i64 %1 
# |           65:  %3 = load i32, ptr %2, align 4 
# | next:63'0                                    X error: no match found
# | next:63'1                                      with "TMP3" equal to "%3"
# |           66:  %4 = load i32, ptr %2, align 4 
# | next:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:63'2      ?                               possible intended match
# |           67:  %5 = load i32, ptr %2, align 4 
# | next:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           68:  %6 = load i32, ptr %2, align 4 
# | next:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           69:  %7 = insertelement <4 x i32> poison, i32 %3, i32 0 
# | next:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           70:  %8 = insertelement <4 x i32> %7, i32 %4, i32 1 
# | next:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           71:  %9 = insertelement <4 x i32> %8, i32 %5, i32 2 
# | next:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# |          110:  %14 = load i8, ptr %2, align 1 
# |          111:  %15 = load i8, ptr %2, align 1 
# |          112:  %16 = load i8, ptr %2, align 1 
# |          113:  %17 = load i8, ptr %2, align 1 
# |          114:  %18 = load i8, ptr %2, align 1 
# |          115:  %19 = zext i8 %3 to i32 
# | next:106       !~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |          116:  %20 = zext i8 %4 to i32 
# |          117:  %21 = zext i8 %5 to i32 
# |          118:  %22 = zext i8 %6 to i32 
# |          119:  %23 = zext i8 %7 to i32 
# |          120:  %24 = zext i8 %8 to i32 
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# 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/169731


More information about the llvm-commits mailing list