[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