[llvm] [SLP]Keep originals when uniques do not reduce register uses (PR #218294)
via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 23 16:15:18 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 140248 tests passed
* 3729 tests skipped
* 11 tests failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.DebugInfo/Generic/assignment-tracking/slp-vectorizer/merge-scalars.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=slp-vectorizer -S -o - C:\_work\llvm-project\llvm-project\llvm\test\DebugInfo\Generic\assignment-tracking\slp-vectorizer\merge-scalars.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\DebugInfo\Generic\assignment-tracking\slp-vectorizer\merge-scalars.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=slp-vectorizer -S -o - 'C:\_work\llvm-project\llvm-project\llvm\test\DebugInfo\Generic\assignment-tracking\slp-vectorizer\merge-scalars.ll'
# 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\DebugInfo\Generic\assignment-tracking\slp-vectorizer\merge-scalars.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\DebugInfo\Generic\assignment-tracking\slp-vectorizer\merge-scalars.ll:25:10: error: CHECK: expected string not found in input
# | ; CHECK: #dbg_assign(float poison, ![[VAR:[0-9]+]], !DIExpression(DW_OP_LLVM_fragment, 0, 32), ![[ID:[0-9]+]], ptr %arrayidx, !DIExpression(),
# | ^
# | <stdin>:1:1: note: scanning from here
# | ; ModuleID = 'C:\_work\llvm-project\llvm-project\llvm\test\DebugInfo\Generic\assignment-tracking\slp-vectorizer\merge-scalars.ll'
# | ^
# | <stdin>:1:1: note: pattern attempts to capture variables: "ID", "VAR"
# | ; ModuleID = 'C:\_work\llvm-project\llvm-project\llvm\test\DebugInfo\Generic\assignment-tracking\slp-vectorizer\merge-scalars.ll'
# | ^
# | <stdin>:22:2: note: possible intended match here
# | #dbg_assign(float %sub2, !17, !DIExpression(DW_OP_LLVM_fragment, 0, 32), !37, ptr %arrayidx, !DIExpression(), !24)
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\DebugInfo\Generic\assignment-tracking\slp-vectorizer\merge-scalars.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: ; ModuleID = 'C:\_work\llvm-project\llvm-project\llvm\test\DebugInfo\Generic\assignment-tracking\slp-vectorizer\merge-scalars.ll'
# | check:25'0 { search range start (exclusive)
# | check:25'1 error: no match found in search range
# | check:25'2 pattern attempts to capture variables: "ID", "VAR"
# | 2: source_filename = "C:\\_work\\llvm-project\\llvm-project\\llvm\\test\\DebugInfo\\Generic\\assignment-tracking\\slp-vectorizer\\merge-scalars.ll"
# | 3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
# | 4: target triple = "x86_64-unknown-unknown"
# | 5:
# | 6: define dso_local void @_Z3funffff(float %k1, float %k2, float %k3, float %k4) local_unnamed_addr !dbg !8 {
# | .
# | .
# | .
# | 17: #dbg_assign(float %call1, !22, !DIExpression(), !32, ptr undef, !DIExpression(), !24)
# | 18: %sub = fsub float %call, %k1, !dbg !33
# | 19: %sub2 = fsub float %sub, %k3, !dbg !34
# | 20: %arrayidx = getelementptr inbounds [4 x float], ptr %quad, i64 0, i64 0, !dbg !35
# | 21: store float %sub2, ptr %arrayidx, align 16, !dbg !36, !DIAssignID !37
# | 22: #dbg_assign(float %sub2, !17, !DIExpression(DW_OP_LLVM_fragment, 0, 32), !37, ptr %arrayidx, !DIExpression(), !24)
# | check:25'3 ? possible intended match
# | 23: %sub3 = fsub float %call1, %k2, !dbg !38
# | 24: %sub4 = fsub float %sub3, %k4, !dbg !39
# | 25: %arrayidx5 = getelementptr inbounds [4 x float], ptr %quad, i64 0, i64 1, !dbg !40
# | 26: store float %sub4, ptr %arrayidx5, align 4, !dbg !41, !DIAssignID !42
# | 27: #dbg_assign(float %sub4, !17, !DIExpression(DW_OP_LLVM_fragment, 32, 32), !42, ptr %arrayidx5, !DIExpression(), !24)
# | .
# | .
# | .
# | 110: !54 = !DISubroutineType(types: !55)
# | 111: !55 = !{!11}
# | 112: !56 = !DISubprogram(name: "ext", linkageName: "_Z3extPf", scope: !1, file: !1, line: 2, type: !57, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !2)
# | 113: !57 = !DISubroutineType(types: !58)
# | 114: !58 = !{!11, !59}
# | 115: !59 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !11, size: 64)
# | check:25'4 } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/SLPVectorizer/X86/copyable-repeated-operand-partial-commutativity.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\SLPVectorizer\X86\copyable-repeated-operand-partial-commutativity.ll -passes=slp-vectorizer -S -mtriple=x86_64-unknown-linux-gnu | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\copyable-repeated-operand-partial-commutativity.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=slp-vectorizer -S -mtriple=x86_64-unknown-linux-gnu
# 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\SLPVectorizer\X86\copyable-repeated-operand-partial-commutativity.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\copyable-repeated-operand-partial-commutativity.ll:9:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP0:%.*]] = insertelement <4 x float> <float 0.000000e+00, float undef, float 0.000000e+00, float 1.000000e+00>, float [[MUL1]], i64 1
# | ^
# | <stdin>:9:39: note: scanning from here
# | %mul1 = fmul float %add, 0.000000e+00
# | ^
# | <stdin>:9:39: note: with "MUL1" equal to "%mul1"
# | %mul1 = fmul float %add, 0.000000e+00
# | ^
# | <stdin>:9:39: note: pattern attempts to capture variables: "TMP0"
# | %mul1 = fmul float %add, 0.000000e+00
# | ^
# | <stdin>:10:2: note: possible intended match here
# | %0 = insertelement <4 x float> <float 0.000000e+00, float 0.000000e+00, float undef, float 1.000000e+00>, float %mul1, i64 2
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\copyable-repeated-operand-partial-commutativity.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: ; ModuleID = '<stdin>'
# | 2: source_filename = "<stdin>"
# | 3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
# | 4: target triple = "x86_64-unknown-linux-gnu"
# | 5:
# | 6: define float @test() {
# | 7: entry:
# | 8: %add = fadd float 0.000000e+00, 0.000000e+00
# | 9: %mul1 = fmul float %add, 0.000000e+00
# | next:9'0 { search range start (exclusive)
# | next:9'1 error: no match found in search range
# | next:9'2 with "MUL1" equal to "%mul1"
# | next:9'3 pattern attempts to capture variables: "TMP0"
# | 10: %0 = insertelement <4 x float> <float 0.000000e+00, float 0.000000e+00, float undef, float 1.000000e+00>, float %mul1, i64 2
# | next:9'4 ? possible intended match
# | 11: %1 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> <float 0.000000e+00, float 0.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float> zeroinitializer, <4 x float> %0)
# | 12: %2 = extractelement <4 x float> %1, i64 3
# | 13: ret float %2
# | 14: }
# | 15:
# | 16: ; Function Attrs: nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none)
# | 17: declare float @llvm.fmuladd.f32(float, float, float) #0
# | 18:
# | 19: ; Function Attrs: nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none)
# | 20: declare <4 x float> @llvm.fmuladd.v4f32(<4 x float>, <4 x float>, <4 x float>) #0
# | 21:
# | 22: attributes #0 = { nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none) }
# | next:9'5 } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/SLPVectorizer/X86/crash_clear_undefs.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\SLPVectorizer\X86\crash_clear_undefs.ll -passes=slp-vectorizer -S -mtriple=x86_64-- -mcpu=corei7 -pass-remarks-output=C:\_work\llvm-project\llvm-project\build\test\Transforms\SLPVectorizer\X86\Output\crash_clear_undefs.ll.tmp | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\crash_clear_undefs.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=slp-vectorizer -S -mtriple=x86_64-- -mcpu=corei7 '-pass-remarks-output=C:\_work\llvm-project\llvm-project\build\test\Transforms\SLPVectorizer\X86\Output\crash_clear_undefs.ll.tmp'
# 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\SLPVectorizer\X86\crash_clear_undefs.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\crash_clear_undefs.ll:22:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP4:%.*]] = fadd <2 x float> [[TMP3]], zeroinitializer
# | ^
# | <stdin>:11:83: note: scanning from here
# | %3 = insertelement <2 x float> <float undef, float 0.000000e+00>, float %1, i64 0
# | ^
# | <stdin>:11:83: note: with "TMP3" equal to "%3"
# | %3 = insertelement <2 x float> <float undef, float 0.000000e+00>, float %1, i64 0
# | ^
# | <stdin>:11:83: note: pattern attempts to capture variables: "TMP4"
# | %3 = insertelement <2 x float> <float undef, float 0.000000e+00>, float %1, i64 0
# | ^
# | <stdin>:13:2: note: possible intended match here
# | %5 = fadd <4 x float> %4, zeroinitializer
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\crash_clear_undefs.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 6: define i1 @foo() #0 {
# | 7: %1 = load float, ptr null, align 4
# | 8: br i1 false, label %8, label %2
# | 9:
# | 10: 2: ; preds = %0
# | 11: %3 = insertelement <2 x float> <float undef, float 0.000000e+00>, float %1, i64 0
# | next:22'0 { search range start (exclusive)
# | next:22'1 error: no match found in search range
# | next:22'2 with "TMP3" equal to "%3"
# | next:22'3 pattern attempts to capture variables: "TMP4"
# | 12: %4 = shufflevector <2 x float> %3, <2 x float> poison, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
# | 13: %5 = fadd <4 x float> %4, zeroinitializer
# | next:22'4 ? possible intended match
# | 14: %6 = select <4 x i1> zeroinitializer, <4 x float> %5, <4 x float> %4
# | 15: %7 = fadd <4 x float> <float 0.000000e+00, float 0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %6
# | 16: br label %8
# | 17:
# | 18: 8: ; preds = %2, %0
# | 19: %9 = phi <4 x float> [ %7, %2 ], [ zeroinitializer, %0 ]
# | 20: ret i1 false
# | 21: }
# | 22:
# | 23: attributes #0 = { "target-cpu"="corei7" }
# | next:22'5 } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/SLPVectorizer/X86/partail.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=slp-vectorizer -S -mtriple=x86_64-unknown-linux-gnu -mcpu=bdver2 < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\partail.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\partail.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=slp-vectorizer -S -mtriple=x86_64-unknown-linux-gnu -mcpu=bdver2
# 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\SLPVectorizer\X86\partail.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\partail.ll:15:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[SHR15:%.*]] = ashr i32 [[SUB14]], 2
# | ^
# | <stdin>:17:36: note: scanning from here
# | %sub14 = sub nsw i32 %y_pos, undef
# | ^
# | <stdin>:17:36: note: with "SUB14" equal to "%sub14"
# | %sub14 = sub nsw i32 %y_pos, undef
# | ^
# | <stdin>:17:36: note: pattern attempts to capture variables: "SHR15"
# | %sub14 = sub nsw i32 %y_pos, undef
# | ^
# | <stdin>:20:2: note: possible intended match here
# | %2 = ashr <4 x i32> %1, <i32 2, i32 0, i32 0, i32 0>
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\partail.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 12:
# | 13: if.then: ; preds = %land.lhs.true
# | 14: unreachable
# | 15:
# | 16: if.end: ; preds = %land.lhs.true
# | 17: %sub14 = sub nsw i32 %y_pos, undef
# | next:15'0 { search range start (exclusive)
# | next:15'1 error: no match found in search range
# | next:15'2 with "SUB14" equal to "%sub14"
# | next:15'3 pattern attempts to capture variables: "SHR15"
# | 18: %0 = insertelement <4 x i32> poison, i32 %sub14, i64 0
# | 19: %1 = shufflevector <4 x i32> %0, <4 x i32> poison, <4 x i32> zeroinitializer
# | 20: %2 = ashr <4 x i32> %1, <i32 2, i32 0, i32 0, i32 0>
# | next:15'4 ? possible intended match
# | 21: %3 = icmp sgt <4 x i32> %2, <i32 0, i32 -1, i32 -5, i32 -9>
# | 22: %4 = shufflevector <4 x i32> %2, <4 x i32> <i32 poison, i32 undef, i32 undef, i32 undef>, <4 x i32> <i32 0, i32 5, i32 6, i32 7>
# | 23: %5 = select <4 x i1> %3, <4 x i32> %4, <4 x i32> zeroinitializer
# | 24: %6 = icmp slt <4 x i32> %5, undef
# | 25: %7 = select <4 x i1> %6, <4 x i32> %5, <4 x i32> undef
# | .
# | .
# | .
# | 36: %15 = sext i32 %14 to i64
# | 37: %arrayidx31.3 = getelementptr inbounds ptr, ptr undef, i64 %15
# | 38: ret void
# | 39: }
# | 40:
# | 41: attributes #0 = { "target-cpu"="bdver2" }
# | next:15'5 } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/SLPVectorizer/X86/reorder-reused-subvector.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu -slp-threshold=-100 < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\reorder-reused-subvector.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\reorder-reused-subvector.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu -slp-threshold=-100
# 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\SLPVectorizer\X86\reorder-reused-subvector.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\reorder-reused-subvector.ll:21:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP5:%.*]] = shufflevector <8 x i32> [[TMP4]], <8 x i32> <i32 0, i32 poison, i32 1, i32 0, i32 0, i32 poison, i32 0, i32 poison>, <8 x i32> <i32 8, i32 poison, i32 10, i32 11, i32 12, i32 1, i32 14, i32 3>
# | ^
# | <stdin>:22:129: note: scanning from here
# | %4 = shufflevector <4 x i32> %3, <4 x i32> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 poison, i32 1, i32 poison, i32 3>
# | ^
# | <stdin>:22:129: note: with "TMP4" equal to "%4"
# | %4 = shufflevector <4 x i32> %3, <4 x i32> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 poison, i32 1, i32 poison, i32 3>
# | ^
# | <stdin>:22:129: note: pattern attempts to capture variables: "TMP5"
# | %4 = shufflevector <4 x i32> %3, <4 x i32> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 poison, i32 1, i32 poison, i32 3>
# | ^
# | <stdin>:23:2: note: possible intended match here
# | %5 = shufflevector <8 x i32> %4, <8 x i32> <i32 0, i32 1, i32 poison, i32 0, i32 0, i32 poison, i32 0, i32 poison>, <8 x i32> <i32 8, i32 9, i32 2, i32 11, i32 12, i32 1, i32 14, i32 3>
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\reorder-reused-subvector.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 17: %j.0 = phi i32 [ 0, %entry ], [ %j.6, %if.end18 ]
# | 18: %l.0 = phi i8 [ 0, %entry ], [ %l.4, %if.end18 ]
# | 19: %3 = phi <4 x i32> [ zeroinitializer, %entry ], [ %40, %if.end18 ]
# | 20: store i32 %j.0, ptr %a, align 4
# | 21: %cmp.not.not = icmp eq i8 %l.0, 0
# | 22: %4 = shufflevector <4 x i32> %3, <4 x i32> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 poison, i32 1, i32 poison, i32 3>
# | next:21'0 { search range start (exclusive)
# | next:21'1 error: no match found in search range
# | next:21'2 with "TMP4" equal to "%4"
# | next:21'3 pattern attempts to capture variables: "TMP5"
# | 23: %5 = shufflevector <8 x i32> %4, <8 x i32> <i32 0, i32 1, i32 poison, i32 0, i32 0, i32 poison, i32 0, i32 poison>, <8 x i32> <i32 8, i32 9, i32 2, i32 11, i32 12, i32 1, i32 14, i32 3>
# | next:21'4 ? possible intended match
# | 24: br i1 %cmp.not.not, label %o.sink.split, label %p
# | 25:
# | 26: p: ; preds = %if.end18, %n
# | 27: %6 = phi <2 x i8> [ <i8 1, i8 0>, %if.end18 ], [ %0, %n ]
# | 28: %7 = phi <8 x i32> [ %38, %if.end18 ], [ %5, %n ]
# | .
# | .
# | .
# | 86: %39 = shufflevector <8 x i32> %38, <8 x i32> poison, <4 x i32> <i32 4, i32 poison, i32 poison, i32 poison>
# | 87: %40 = shufflevector <4 x i32> %2, <4 x i32> %39, <4 x i32> <i32 4, i32 1, i32 2, i32 3>
# | 88: br i1 %tobool14.not, label %n, label %p
# | 89: }
# | 90:
# | 91: declare i32 @printf(ptr, ...)
# | next:21'5 } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/SLPVectorizer/X86/reused-extract-scalar-lanes.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S -passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\reused-extract-scalar-lanes.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\reused-extract-scalar-lanes.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu
# 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\SLPVectorizer\X86\reused-extract-scalar-lanes.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\reused-extract-scalar-lanes.ll:14:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP5:%.*]] = shufflevector <2 x i32> [[TMP4]], <2 x i32> poison, <4 x i32> <i32 0, i32 0, i32 1, i32 1>
# | ^
# | <stdin>:13:119: note: scanning from here
# | %5 = shufflevector <2 x i32> %4, <2 x i32> poison, <8 x i32> <i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 1, i32 1>
# | ^
# | <stdin>:13:119: note: with "TMP4" equal to "%1"
# | %5 = shufflevector <2 x i32> %4, <2 x i32> poison, <8 x i32> <i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 1, i32 1>
# | ^
# | <stdin>:13:119: note: pattern attempts to capture variables: "TMP5"
# | %5 = shufflevector <2 x i32> %4, <2 x i32> poison, <8 x i32> <i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 1, i32 1>
# | ^
# | <stdin>:14:2: note: possible intended match here
# | %6 = shufflevector <2 x i32> %4, <2 x i32> %1, <4 x i32> <i32 1, i32 1, i32 3, i32 3>
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\reused-extract-scalar-lanes.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 8: %0 = insertelement <2 x i32> <i32 poison, i32 0>, i32 %v4, i64 0
# | 9: %1 = select <2 x i1> zeroinitializer, <2 x i32> %0, <2 x i32> <i32 1, i32 0>
# | 10: %2 = shufflevector <2 x i32> %1, <2 x i32> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 0, i32 0>
# | 11: %3 = shufflevector <2 x i32> %0, <2 x i32> <i32 1, i32 poison>, <2 x i32> <i32 2, i32 0>
# | 12: %4 = select <2 x i1> zeroinitializer, <2 x i32> %3, <2 x i32> <i32 0, i32 1>
# | 13: %5 = shufflevector <2 x i32> %4, <2 x i32> poison, <8 x i32> <i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 1, i32 1>
# | next:14'0 { search range start (exclusive)
# | next:14'1 error: no match found in search range
# | next:14'2 with "TMP4" equal to "%1"
# | next:14'3 pattern attempts to capture variables: "TMP5"
# | 14: %6 = shufflevector <2 x i32> %4, <2 x i32> %1, <4 x i32> <i32 1, i32 1, i32 3, i32 3>
# | next:14'4 ? possible intended match
# | 15: %7 = mul <4 x i32> %6, zeroinitializer
# | 16: %8 = urem <4 x i32> %7, splat (i32 46337)
# | 17: %9 = trunc <4 x i32> %8 to <4 x i16>
# | 18: %10 = shufflevector <4 x i16> %9, <4 x i16> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
# | 19: %11 = shufflevector <8 x i16> %10, <8 x i16> <i16 0, i16 0, i16 poison, i16 poison, i16 21110, i16 poison, i16 poison, i16 0>, <8 x i32> <i32 8, i32 9, i32 0, i32 1, i32 12, i32 2, i32 3, i32 15>
# | .
# | .
# | .
# | 36: %28 = select <8 x i1> <i1 false, i1 false, i1 false, i1 false, i1 true, i1 false, i1 false, i1 false>, <8 x i32> %27, <8 x i32> zeroinitializer
# | 37: %29 = or <8 x i32> %28, <i32 0, i32 0, i32 0, i32 0, i32 39609, i32 0, i32 0, i32 0>
# | 38: %30 = urem <8 x i32> %29, splat (i32 46337)
# | 39: %31 = icmp ult <8 x i32> %30, zeroinitializer
# | 40: ret i32 0
# | 41: }
# | next:14'5 } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/SLPVectorizer/X86/shrink_after_reorder.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=slp-vectorizer -S -o - -mtriple=x86_64-unknown-linux-gnu -mcpu=haswell < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\shrink_after_reorder.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\shrink_after_reorder.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=slp-vectorizer -S -o - -mtriple=x86_64-unknown-linux-gnu -mcpu=haswell
# 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\SLPVectorizer\X86\shrink_after_reorder.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\shrink_after_reorder.ll:10:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP2:%.*]] = add nsw <2 x i32> [[TMP0]], splat (i32 -1)
# | ^
# | <stdin>:10:91: note: scanning from here
# | %1 = shufflevector <2 x i32> %0, <2 x i32> poison, <4 x i32> <i32 1, i32 0, i32 1, i32 0>
# | ^
# | <stdin>:10:91: note: with "TMP0" equal to "%0"
# | %1 = shufflevector <2 x i32> %0, <2 x i32> poison, <4 x i32> <i32 1, i32 0, i32 1, i32 0>
# | ^
# | <stdin>:10:91: note: pattern attempts to capture variables: "TMP2"
# | %1 = shufflevector <2 x i32> %0, <2 x i32> poison, <4 x i32> <i32 1, i32 0, i32 1, i32 0>
# | ^
# | <stdin>:11:2: note: possible intended match here
# | %2 = add nsw <4 x i32> %1, splat (i32 -1)
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\shrink_after_reorder.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 5:
# | 6: define void @wombat(ptr %ptr, ptr %ptr1) #0 {
# | 7: bb:
# | 8: %tmp27 = getelementptr inbounds i32, ptr %ptr1, i32 3
# | 9: %0 = load <2 x i32>, ptr %ptr, align 8
# | 10: %1 = shufflevector <2 x i32> %0, <2 x i32> poison, <4 x i32> <i32 1, i32 0, i32 1, i32 0>
# | next:10'0 { search range start (exclusive)
# | next:10'1 error: no match found in search range
# | next:10'2 with "TMP0" equal to "%0"
# | next:10'3 pattern attempts to capture variables: "TMP2"
# | 11: %2 = add nsw <4 x i32> %1, splat (i32 -1)
# | next:10'4 ? possible intended match
# | 12: %3 = icmp sgt <4 x i32> %1, undef
# | 13: %4 = select <4 x i1> %3, <4 x i32> undef, <4 x i32> %2
# | 14: %5 = select <4 x i1> zeroinitializer, <4 x i32> zeroinitializer, <4 x i32> %4
# | 15: store <4 x i32> %5, ptr %tmp27, align 8
# | 16: ret void
# | 17: }
# | 18:
# | 19: define internal i32 @ipvideo_decode_block_opcode_0xD_16() #0 {
# | next:10'5 } search range end (exclusive)
# | 20: entry:
# | 21: br label %for.body
# | 22:
# | 23: for.body: ; preds = %if.end, %entry
# | 24: %0 = phi <8 x i16> [ undef, %entry ], [ %0, %if.end ]
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/SLPVectorizer/X86/shuffle-mask-emission.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S -passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\shuffle-mask-emission.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\shuffle-mask-emission.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu
# 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\SLPVectorizer\X86\shuffle-mask-emission.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\shuffle-mask-emission.ll:10:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP3:%.*]] = insertelement <2 x i32> <i32 poison, i32 0>, i32 [[H_PROMOTED118_I_FR]], i64 0
# | ^
# | <stdin>:10:40: note: scanning from here
# | %1 = add <4 x i32> zeroinitializer, %0
# | ^
# | <stdin>:10:40: note: with "H_PROMOTED118_I_FR" equal to "%h.promoted118.i.fr"
# | %1 = add <4 x i32> zeroinitializer, %0
# | ^
# | <stdin>:10:40: note: pattern attempts to capture variables: "TMP3"
# | %1 = add <4 x i32> zeroinitializer, %0
# | ^
# | <stdin>:11:2: note: possible intended match here
# | %2 = insertelement <4 x i32> <i32 poison, i32 0, i32 poison, i32 poison>, i32 %h.promoted118.i.fr, i64 0
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\shuffle-mask-emission.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 5:
# | 6: define i1 @test() {
# | 7: entry:
# | 8: %h.promoted118.i.fr = freeze i32 1
# | 9: %0 = insertelement <4 x i32> <i32 0, i32 0, i32 poison, i32 0>, i32 %h.promoted118.i.fr, i64 2
# | 10: %1 = add <4 x i32> zeroinitializer, %0
# | next:10'0 { search range start (exclusive)
# | next:10'1 error: no match found in search range
# | next:10'2 with "H_PROMOTED118_I_FR" equal to "%h.promoted118.i.fr"
# | next:10'3 pattern attempts to capture variables: "TMP3"
# | 11: %2 = insertelement <4 x i32> <i32 poison, i32 0, i32 poison, i32 poison>, i32 %h.promoted118.i.fr, i64 0
# | next:10'4 ? possible intended match
# | 12: %3 = shufflevector <4 x i32> %2, <4 x i32> poison, <4 x i32> <i32 0, i32 0, i32 1, i32 0>
# | 13: %4 = add <4 x i32> zeroinitializer, %3
# | 14: %5 = add <4 x i32> %1, %4
# | 15: %6 = and <4 x i32> %5, <i32 0, i32 1, i32 1, i32 1>
# | 16: %7 = icmp eq <4 x i32> %6, <i32 1, i32 0, i32 0, i32 0>
# | 17: %8 = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> %7)
# | 18: %op.rdx = or i1 %8, false
# | 19: ret i1 %op.rdx
# | 20: }
# | 21:
# | 22: ; Function Attrs: nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none)
# | 23: declare i1 @llvm.vector.reduce.or.v4i1(<4 x i1>) #0
# | 24:
# | 25: attributes #0 = { nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none) }
# | next:10'5 } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/SLPVectorizer/X86/split-node-reorder-node-with-ops.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\split-node-reorder-node-with-ops.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\split-node-reorder-node-with-ops.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu
# 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\SLPVectorizer\X86\split-node-reorder-node-with-ops.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\split-node-reorder-node-with-ops.ll:10:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP8:%.*]] = extractelement <2 x i64> [[TMP7]], i64 0
# | ^
# | <stdin>:9:46: note: scanning from here
# | %7 = and <2 x i64> %6, <i64 -65536, i64 255>
# | ^
# | <stdin>:9:46: note: with "TMP7" equal to "%7"
# | %7 = and <2 x i64> %6, <i64 -65536, i64 255>
# | ^
# | <stdin>:9:46: note: pattern attempts to capture variables: "TMP8"
# | %7 = and <2 x i64> %6, <i64 -65536, i64 255>
# | ^
# | <stdin>:11:2: note: possible intended match here
# | %9 = extractelement <4 x i64> %8, i64 0
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\split-node-reorder-node-with-ops.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: ; ModuleID = '<stdin>'
# | 2: source_filename = "<stdin>"
# | 3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
# | 4: target triple = "x86_64-unknown-linux-gnu"
# | 5:
# | 6: define void @test(i32 %0, i8 %1, i64 %2, float %3) {
# | 7: %5 = insertelement <2 x i64> poison, i64 %2, i64 0
# | 8: %6 = shufflevector <2 x i64> %5, <2 x i64> poison, <2 x i32> zeroinitializer
# | 9: %7 = and <2 x i64> %6, <i64 -65536, i64 255>
# | next:10'0 { search range start (exclusive)
# | next:10'1 error: no match found in search range
# | next:10'2 with "TMP7" equal to "%7"
# | next:10'3 pattern attempts to capture variables: "TMP8"
# | 10: %8 = shufflevector <2 x i64> %7, <2 x i64> poison, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
# | 11: %9 = extractelement <4 x i64> %8, i64 0
# | next:10'4 ? possible intended match
# | 12: %10 = add i64 %2, %9
# | 13: %11 = extractelement <4 x i64> %8, i64 1
# | 14: %12 = add i64 %11, 1
# | 15: %13 = lshr i64 %10, 16
# | 16: %14 = lshr i64 %12, 1
# | .
# | .
# | .
# | 121: declare <2 x i8> @llvm.smax.v2i8(<2 x i8>, <2 x i8>) #0
# | 122:
# | 123: ; Function Attrs: nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none)
# | 124: declare <8 x float> @llvm.fabs.v8f32(<8 x float>) #0
# | 125:
# | 126: attributes #0 = { nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none) }
# | next:10'5 } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/SLPVectorizer/jumbled_store_crash.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu -o - -S < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\jumbled_store_crash.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\jumbled_store_crash.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu -o - -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\SLPVectorizer\jumbled_store_crash.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\jumbled_store_crash.ll:23:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[TMP5:%.*]] = load <2 x i32>, ptr [[ARRAYIDX1]], align 4
# | ^
# | <stdin>:24:2: note: 'next' match was here
# | %4 = load <2 x i32>, ptr %arrayidx1, align 4
# | ^
# | <stdin>:22:45: note: previous match ended here
# | %2 = load <2 x i32>, ptr %arrayidx, align 4
# | ^
# | <stdin>:23:1: note: non-matching line after previous match is here
# | %3 = shufflevector <2 x i32> %2, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\jumbled_store_crash.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 17: %0 = load ptr, ptr @b, align 8
# | 18: %arrayidx = getelementptr inbounds i32, ptr %0, i64 4
# | 19: %arrayidx1 = getelementptr inbounds i32, ptr %0, i64 12
# | 20: %1 = load i32, ptr @a, align 4
# | 21: %conv19 = sitofp i32 %1 to float
# | 22: %2 = load <2 x i32>, ptr %arrayidx, align 4
# | next:23'0 { search range start (exclusive)
# | 23: %3 = shufflevector <2 x i32> %2, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
# | 24: %4 = load <2 x i32>, ptr %arrayidx1, align 4
# | next:23'1 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 25: %5 = shufflevector <2 x i32> %4, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
# | 26: %6 = add nsw <4 x i32> %5, %3
# | 27: %7 = sitofp <4 x i32> %6 to <4 x float>
# | 28: %8 = fmul <4 x float> %7, splat (float 1.000000e+01)
# | 29: %9 = fsub <4 x float> <float 1.000000e+00, float 0.000000e+00, float 1.000000e+00, float 0.000000e+00>, %8
# | .
# | .
# | .
# | 43: %18 = fsub <4 x float> %11, %17
# | 44: %19 = fptosi <4 x float> %18 to <4 x i32>
# | 45: %20 = shufflevector <4 x i32> %19, <4 x i32> poison, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
# | 46: store <4 x i32> %20, ptr %arrayidx1, align 4
# | 47: ret void
# | 48: }
# | next:23'2 } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/SLPVectorizer/shufflebuilder-bug.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S -p slp-vectorizer -mtriple=x86_64-- C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\shufflebuilder-bug.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\shufflebuilder-bug.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -p slp-vectorizer -mtriple=x86_64-- 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\shufflebuilder-bug.ll'
# 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\SLPVectorizer\shufflebuilder-bug.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\shufflebuilder-bug.ll:10:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <4 x float> [[VEC]], <4 x float> poison, <2 x i32> <i32 3, i32 poison>
# | ^
# | <stdin>:14:2: note: 'next' match was here
# | %7 = shufflevector <4 x float> %vec, <4 x float> poison, <2 x i32> <i32 3, i32 poison>
# | ^
# | <stdin>:8:43: note: previous match ended here
# | %1 = load <4 x float>, ptr %gep0, align 8
# | ^
# | <stdin>:9:1: note: non-matching line after previous match is here
# | %2 = shufflevector <4 x float> %vec, <4 x float> poison, <4 x i32> <i32 3, i32 3, i32 poison, i32 poison>
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\shufflebuilder-bug.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: ; ModuleID = 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\shufflebuilder-bug.ll'
# | 2: source_filename = "C:\\_work\\llvm-project\\llvm-project\\llvm\\test\\Transforms\\SLPVectorizer\\shufflebuilder-bug.ll"
# | 3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
# | 4: target triple = "x86_64-unknown-unknown"
# | 5:
# | 6: define void @foo(<4 x float> %vec, float %val, ptr %ptr) {
# | 7: %gep0 = getelementptr inbounds float, ptr %ptr, i64 0
# | 8: %1 = load <4 x float>, ptr %gep0, align 8
# | next:10'0 { search range start (exclusive)
# | 9: %2 = shufflevector <4 x float> %vec, <4 x float> poison, <4 x i32> <i32 3, i32 3, i32 poison, i32 poison>
# | 10: %3 = insertelement <4 x float> poison, float %val, i64 0
# | 11: %4 = shufflevector <4 x float> %3, <4 x float> poison, <4 x i32> <i32 poison, i32 poison, i32 0, i32 0>
# | 12: %5 = shufflevector <4 x float> %2, <4 x float> %4, <4 x i32> <i32 0, i32 1, i32 6, i32 7>
# | 13: %6 = fadd <4 x float> %1, %5
# | 14: %7 = shufflevector <4 x float> %vec, <4 x float> poison, <2 x i32> <i32 3, i32 poison>
# | next:10'1 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 15: %8 = insertelement <2 x float> %7, float %val, i64 1
# | 16: %9 = shufflevector <2 x float> %8, <2 x float> poison, <4 x i32> <i32 0, i32 0, i32 1, i32 1>
# | 17: %10 = fmul <4 x float> %6, %9
# | 18: store <4 x float> %10, ptr %gep0, align 4
# | 19: ret void
# | 20: }
# | next:10'2 } 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/218294
More information about the llvm-commits
mailing list