[llvm] [AArch64][SVE] Allow scalable factor-3 interleaved accesses (PR #200424)

via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 15 03:05:36 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

* 138499 tests passed
* 3541 tests skipped
* 1 test 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 2
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
# note: command had no output on stdout or stderr
# RUN: at line 3
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=default -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=default -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
# note: command had no output on stdout or stderr
# RUN: at line 4
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 -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 -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
# note: command had no output on stdout or stderr
# RUN: at line 5
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=all -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-TF-ALL
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -sve-tail-folding-insn-threshold=0 -sve-tail-folding=all -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-TF-ALL
# note: command had no output on stdout or stderr
# RUN: at line 6
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=simple+reductions+recurrences+reverse -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-TF
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -sve-tail-folding-insn-threshold=0 -sve-tail-folding=simple+reductions+recurrences+reverse -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-TF
# note: command had no output on stdout or stderr
# RUN: at line 7
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 -S -mcpu=neoverse-v1 -sve-tail-folding=default+reductions+recurrences+reverse | 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-TF-DEFAULT
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -sve-tail-folding-insn-threshold=0 -S -mcpu=neoverse-v1 -sve-tail-folding=default+reductions+recurrences+reverse
# 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-TF-DEFAULT
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-tail-folding-option.ll:1262:26: error: CHECK-TF-DEFAULT-NEXT: expected string not found in input
# | ; CHECK-TF-DEFAULT-NEXT: [[MIN_ITERS_CHECK:%.*]] = icmp ult i64 [[N]], 4
# |                          ^
# | <stdin>:109:12: note: scanning from here
# | iter.check:
# |            ^
# | <stdin>:109:12: note: with "N" equal to "%n"
# | iter.check:
# |            ^
# | <stdin>:109:12: note: pattern attempts to capture variables: "MIN_ITERS_CHECK"
# | iter.check:
# |            ^
# | <stdin>:112:13: note: possible intended match here
# |  %min.iters.check = icmp ult i64 %n, %1
# |             ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-tail-folding-option.ll:2252:23: error: undefined variable: LOOP5
# | ; CHECK-TF-DEFAULT: [[LOOP5]] = distinct !{[[LOOP5]], [[META1]], [[META2]]}
# |                       ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-tail-folding-option.ll:2252:46: error: undefined variable: LOOP5
# | ; CHECK-TF-DEFAULT: [[LOOP5]] = distinct !{[[LOOP5]], [[META1]], [[META2]]}
# |                                              ^
# | <stdin>:319:28: note: with "META1" equal to "!1"
# | !4 = distinct !{!4, !1, !2}
# |                            ^
# | <stdin>:319:28: note: with "META2" equal to "!2"
# | !4 = distinct !{!4, !1, !2}
# |                            ^
# | <stdin>:320:2: note: possible intended match here
# | !5 = distinct !{!5, !1, !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:
# | <<<<<<
# |               .
# |               .
# |               .
# |             104: for.end: ; preds = %middle.block 
# |             105:  ret void 
# |             106: } 
# |             107:  
# |             108: define void @interleave(ptr noalias %dst, ptr noalias %src, i64 %n) #0 { 
# |             109: iter.check: 
# | next:1262'0                {   search range start (exclusive)
# | next:1262'1                    error: no match found in search range
# | next:1262'2                    with "N" equal to "%n"
# | next:1262'3                    pattern attempts to capture variables: "MIN_ITERS_CHECK"
# |             110:  %0 = call i64 @llvm.vscale.i64() 
# |             111:  %1 = shl nuw i64 %0, 2 
# |             112:  %min.iters.check = icmp ult i64 %n, %1 
# | next:1262'4                  ?                             possible intended match
# |             113:  %2 = call i64 @llvm.vscale.i64() 
# |             114:  %3 = shl nuw i64 %2, 2 
# |             115:  br i1 %min.iters.check, label %vec.epilog.scalar.ph, label %vector.main.loop.iter.check 
# |             116:  
# |             117: vector.main.loop.iter.check: ; preds = %iter.check 
# |               .
# |               .
# |               .
# |             218:  
# |             219: for.end: ; preds = %vec.epilog.middle.block, %middle.block, %for.body 
# |             220:  ret void 
# |             221: } 
# |             222:  
# |             223: define void @reverse(ptr noalias %dst, ptr noalias %src) #0 { 
# | next:1262'5                           }                                          search range end (exclusive)
# |             224: entry: 
# |             225:  br label %vector.ph 
# |             226:  
# |             227: vector.ph: ; preds = %entry 
# |             228:  %0 = call i64 @llvm.vscale.i64() 
# |               .
# |               .
# |               .
# |             314:  
# |             315: !0 = distinct !{!0, !1, !2} 
# |             316: !1 = !{!"llvm.loop.isvectorized", i32 1} 
# |             317: !2 = !{!"llvm.loop.unroll.runtime.disable"} 
# |             318: !3 = distinct !{!3, !1, !2} 
# |             319: !4 = distinct !{!4, !1, !2} 
# | check:2252'0                               {   search range start (exclusive)
# | check:2252'1                                   error: match failed for invalid pattern
# | check:2252'2                                   undefined variable: LOOP5
# | check:2252'3                                   undefined variable: LOOP5
# | check:2252'4                                   with "META1" equal to "!1"
# | check:2252'5                                   with "META2" equal to "!2"
# |             320: !5 = distinct !{!5, !1, !2} 
# | check:2252'6      ?                            possible intended match
# |             321: !6 = !{!"branch_weights", i32 8, i32 8} 
# |             322: !7 = distinct !{!7, !1, !2} 
# |             323: !8 = distinct !{!8, !2, !1} 
# |             324: !9 = distinct !{!9, !1, !2} 
# | check:2252'7                                 } 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/200424


More information about the llvm-commits mailing list