[llvm] [AArch64][NFC] Refactor SVE tail-folding option interleave test (PR #217560)

via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 20 11:17:02 PDT 2026


github-actions[bot] wrote:

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

* 180960 tests passed
* 3703 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
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt < /home/gha/actions-runner/_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 | /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/sve-tail-folding-option.ll -check-prefix=CHECK-NOTF
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -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: /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/sve-tail-folding-option.ll -check-prefix=CHECK-NOTF
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-option.ll:28:20: error: CHECK-NOTF-NEXT: expected string not found in input
# | ; CHECK-NOTF-NEXT: [[TMP3:%.*]] = shl nuw i64 [[TMP1]], 2
# |                    ^
# | <stdin>:14:11: note: scanning from here
# | vector.ph: ; preds = %entry
# |           ^
# | <stdin>:14:11: note: with "TMP1" equal to "%1"
# | vector.ph: ; preds = %entry
# |           ^
# | <stdin>:14:11: note: pattern attempts to capture variables: "TMP3"
# | vector.ph: ; preds = %entry
# |           ^
# | <stdin>:25:9: note: possible intended match here
# |  %index.next2 = add nuw i64 %index1, %2
# |         ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-option.ll:315:20: error: CHECK-NOTF-NEXT: expected string not found in input
# | ; CHECK-NOTF-NEXT: [[TMP2:%.*]] = shl nuw i64 [[TMP0]], 2
# |                    ^
# | <stdin>:56:11: note: scanning from here
# | vector.ph: ; preds = %entry
# |           ^
# | <stdin>:56:11: note: with "TMP0" equal to "%0"
# | vector.ph: ; preds = %entry
# |           ^
# | <stdin>:56:11: note: pattern attempts to capture variables: "TMP2"
# | vector.ph: ; preds = %entry
# |           ^
# | <stdin>:67:8: note: possible intended match here
# |  %index.next = add nuw i64 %index, %1
# |        ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-option.ll:635:20: error: CHECK-NOTF-NEXT: expected string not found in input
# | ; CHECK-NOTF-NEXT: [[TMP2:%.*]] = shl nuw i64 [[TMP0]], 2
# |                    ^
# | <stdin>:104:11: note: scanning from here
# | vector.ph: ; preds = %entry
# |           ^
# | <stdin>:104:11: note: with "TMP0" equal to "%0"
# | vector.ph: ; preds = %entry
# |           ^
# | <stdin>:104:11: note: pattern attempts to capture variables: "TMP2"
# | vector.ph: ; preds = %entry
# |           ^
# | <stdin>:108:2: note: possible intended match here
# |  %3 = mul nuw i32 %2, 4
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-option.ll:1058:20: error: CHECK-NOTF-NEXT: expected string not found in input
# | ; CHECK-NOTF-NEXT: [[TMP3:%.*]] = shl nuw i64 [[TMP0]], 3
# |                    ^
# | <stdin>:164:24: note: scanning from here
# |  %2 = shl nuw i64 %0, 2
# |                        ^
# | <stdin>:164:24: note: with "TMP0" equal to "%0"
# |  %2 = shl nuw i64 %0, 2
# |                        ^
# | <stdin>:164:24: note: pattern attempts to capture variables: "TMP3"
# |  %2 = shl nuw i64 %0, 2
# |                        ^
# | <stdin>:174:2: note: possible intended match here
# |  %6 = shl nuw nsw i64 %index, 1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-option.ll:1813:20: error: CHECK-NOTF-NEXT: expected string not found in input
# | ; CHECK-NOTF-NEXT: [[TMP3:%.*]] = shl nuw i64 [[TMP0]], 2
# |                    ^
# | <stdin>:242:24: note: scanning from here
# |  %2 = shl nuw i64 %0, 1
# |                        ^
# | <stdin>:242:24: note: with "TMP0" equal to "%0"
# |  %2 = shl nuw i64 %0, 1
# |                        ^
# | <stdin>:242:24: note: pattern attempts to capture variables: "TMP3"
# |  %2 = shl nuw i64 %0, 1
# |                        ^
# | <stdin>:270:8: note: possible intended match here
# |  %index.next = add nuw i64 %index, %1
# |        ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_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:
# | <<<<<<
# |              .
# |              .
# |              .
# |              9:  %1 = call i64 @llvm.vscale.i64() 
# |             10:  %2 = shl nuw i64 %1, 2 
# |             11:  %min.iters.check = icmp ult i64 %0, %2 
# |             12:  br i1 %min.iters.check, label %scalar.ph, label %vector.ph 
# |             13:  
# |             14: vector.ph: ; preds = %entry 
# | next:28'0                {                    search range start (exclusive)
# | next:28'1                                     error: no match found in search range
# | next:28'2                                     with "TMP1" equal to "%1"
# | next:28'3                                     pattern attempts to capture variables: "TMP3"
# |             15:  %n.mod.vf = urem i64 %0, %2 
# |             16:  %n.vec = sub i64 %0, %n.mod.vf 
# |             17:  %broadcast.splatinsert = insertelement <vscale x 4 x i32> poison, i32 %val, i64 0 
# |             18:  %broadcast.splat = shufflevector <vscale x 4 x i32> %broadcast.splatinsert, <vscale x 4 x i32> poison, <vscale x 4 x i32> zeroinitializer 
# |             19:  br label %vector.body 
# |             20:  
# |             21: vector.body: ; preds = %vector.body, %vector.ph 
# |             22:  %index1 = phi i64 [ 0, %vector.ph ], [ %index.next2, %vector.body ] 
# |             23:  %3 = getelementptr i32, ptr %ptr, i64 %index1 
# |             24:  store <vscale x 4 x i32> %broadcast.splat, ptr %3, align 4 
# |             25:  %index.next2 = add nuw i64 %index1, %2 
# | next:28'4               ?                                 possible intended match
# |             26:  %4 = icmp eq i64 %index.next2, %n.vec 
# |             27:  br i1 %4, label %middle.block, label %vector.body, !llvm.loop !0 
# |             28:  
# |             29: middle.block: ; preds = %vector.body 
# |             30:  %cmp.n = icmp eq i64 %0, %n.vec 
# |              .
# |              .
# |              .
# |             44:  
# |             45: while.end.loopexit: ; preds = %middle.block, %while.body 
# |             46:  ret void 
# |             47: } 
# |             48:  
# |             49: define float @fadd_red_fast(ptr noalias readonly captures(none) %a, i64 %n) #0 { 
# | next:28'5                                   }                                                      search range end (exclusive)
# |             50: entry: 
# |             51:  %0 = call i64 @llvm.vscale.i64() 
# |             52:  %1 = shl nuw i64 %0, 2 
# |             53:  %min.iters.check = icmp ult i64 %n, %1 
# |             54:  br i1 %min.iters.check, label %scalar.ph, label %vector.ph 
# |             55:  
# |             56: vector.ph: ; preds = %entry 
# | next:315'0               {                    search range start (exclusive)
# | next:315'1                                    error: no match found in search range
# | next:315'2                                    with "TMP0" equal to "%0"
# | next:315'3                                    pattern attempts to capture variables: "TMP2"
# |             57:  %n.mod.vf = urem i64 %n, %1 
# |             58:  %n.vec = sub i64 %n, %n.mod.vf 
# |             59:  br label %vector.body 
# |             60:  
# |             61: vector.body: ; preds = %vector.body, %vector.ph 
# |             62:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] 
# |             63:  %vec.phi = phi <vscale x 4 x float> [ zeroinitializer, %vector.ph ], [ %3, %vector.body ] 
# |             64:  %2 = getelementptr inbounds float, ptr %a, i64 %index 
# |             65:  %wide.load = load <vscale x 4 x float>, ptr %2, align 4 
# |             66:  %3 = fadd fast <vscale x 4 x float> %wide.load, %vec.phi 
# |             67:  %index.next = add nuw i64 %index, %1 
# | next:315'4             ?                                possible intended match
# |             68:  %4 = icmp eq i64 %index.next, %n.vec 
# |             69:  br i1 %4, label %middle.block, label %vector.body, !llvm.loop !4 
# |             70:  
# |             71: middle.block: ; preds = %vector.body 
# |             72:  %5 = call fast float @llvm.vector.reduce.fadd.nxv4f32(float 0.000000e+00, <vscale x 4 x float> %3) 
# |              .
# |              .
# |              .
# |             91: for.end: ; preds = %middle.block, %for.body 
# |             92:  %add.lcssa = phi float [ %add, %for.body ], [ %5, %middle.block ] 
# |             93:  ret float %add.lcssa 
# |             94: } 
# |             95:  
# |             96: define void @add_recur(ptr noalias %dst, ptr noalias %src, i64 %n) #0 { 
# | next:315'5                             }                                                  search range end (exclusive)
# |             97: entry: 
# |             98:  %.pre = load i32, ptr %src, align 4 
# |             99:  %0 = call i64 @llvm.vscale.i64() 
# |            100:  %1 = shl nuw i64 %0, 2 
# |            101:  %min.iters.check = icmp ult i64 %n, %1 
# |            102:  br i1 %min.iters.check, label %scalar.ph, label %vector.ph 
# |            103:  
# |            104: vector.ph: ; preds = %entry 
# | next:635'0               {                    search range start (exclusive)
# | next:635'1                                    error: no match found in search range
# | next:635'2                                    with "TMP0" equal to "%0"
# | next:635'3                                    pattern attempts to capture variables: "TMP2"
# |            105:  %n.mod.vf = urem i64 %n, %1 
# |            106:  %n.vec = sub i64 %n, %n.mod.vf 
# |            107:  %2 = call i32 @llvm.vscale.i32() 
# |            108:  %3 = mul nuw i32 %2, 4 
# | next:635'4       ?                        possible intended match
# |            109:  %4 = sub i32 %3, 1 
# |            110:  %vector.recur.init = insertelement <vscale x 4 x i32> poison, i32 %.pre, i32 %4 
# |            111:  br label %vector.body 
# |            112:  
# |            113: vector.body: ; preds = %vector.body, %vector.ph 
# |              .
# |              .
# |              .
# |            151:  
# |            152: for.end: ; preds = %middle.block, %for.body 
# |            153:  ret void 
# |            154: } 
# |            155:  
# |            156: define void @interleave(ptr noalias %dst, ptr noalias %src, i64 %n) #0 { 
# | next:635'5                              }                                                  search range end (exclusive)
# |            157: entry: 
# |            158:  %0 = call i64 @llvm.vscale.i64() 
# |            159:  %1 = shl nuw i64 %0, 3 
# |            160:  %min.iters.check = icmp ult i64 %n, %1 
# |            161:  br i1 %min.iters.check, label %scalar.ph, label %vector.ph 
# |            162:  
# |            163: vector.ph: ; preds = %entry 
# |            164:  %2 = shl nuw i64 %0, 2 
# | next:1058'0                           {   search range start (exclusive)
# | next:1058'1                               error: no match found in search range
# | next:1058'2                               with "TMP0" equal to "%0"
# | next:1058'3                               pattern attempts to capture variables: "TMP3"
# |            165:  %n.mod.vf = urem i64 %n, %1 
# |            166:  %n.vec = sub i64 %n, %n.mod.vf 
# |     
# | ...
# `---data was truncated (10240/13669) (change limit with -D output_limit=N)
# 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/217560


More information about the llvm-commits mailing list