[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