[llvm] [VectorCombine] foldShuffleChainsToReduce - add support for partial v… (PR #195119)

via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 30 09:45:55 PDT 2026


github-actions[bot] wrote:

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

* 134078 tests passed
* 3189 tests skipped
* 4 tests failed

## Failed Tests
(click on a test name to see its output)

### LLVM
<details>
<summary>LLVM.Transforms/PhaseOrdering/X86/horizontal-reduce-smax.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\PhaseOrdering\X86\horizontal-reduce-smax.ll -passes="default<O2>" -S -mtriple=i686--   -mcpu=x86-64    | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-smax.ll --check-prefixes=CHECK,SSE
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' '-passes=default<O2>' -S -mtriple=i686-- -mcpu=x86-64
# 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\PhaseOrdering\X86\horizontal-reduce-smax.ll' --check-prefixes=CHECK,SSE
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-smax.ll:317:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <16 x i16> [[A0:%.*]], <16 x i16> poison, <16 x i32> <i32 4, i32 5, i32 6, i32 7, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
# |               ^
# | <stdin>:85:38: note: scanning from here
# | define i16 @test_reduce_v16i16_v8i16(<16 x i16> %a0) local_unnamed_addr #0 {
# |                                      ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-smax.ll:341:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <32 x i16> [[A0:%.*]], <32 x i16> poison, <32 x i32> <i32 4, i32 5, i32 6, i32 7, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
# |               ^
# | <stdin>:92:38: note: scanning from here
# | define i16 @test_reduce_v32i16_v8i16(<32 x i16> %a0) local_unnamed_addr #0 {
# |                                      ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-smax.ll:365:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <32 x i8> [[A0:%.*]], <32 x i8> poison, <32 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
# |               ^
# | <stdin>:99:36: note: scanning from here
# | define i8 @test_reduce_v32i8_v16i8(<32 x i8> %a0) local_unnamed_addr #0 {
# |                                    ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-smax.ll:394:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <64 x i8> [[A0:%.*]], <64 x i8> poison, <64 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
# |               ^
# | <stdin>:106:36: note: scanning from here
# | define i8 @test_reduce_v64i8_v16i8(<64 x i8> %a0) local_unnamed_addr #0 {
# |                                    ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-smax.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |           .
# |           .
# |           .
# |          80:  %1 = tail call i8 @llvm.vector.reduce.smax.v64i8(<64 x i8> %a0) 
# |          81:  ret i8 %1 
# |          82: } 
# |          83:  
# |          84: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
# |          85: define i16 @test_reduce_v16i16_v8i16(<16 x i16> %a0) local_unnamed_addr #0 { 
# | next:317                                          X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |          86:  %1 = shufflevector <16 x i16> %a0, <16 x i16> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7> 
# | next:317     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          87:  %2 = tail call i16 @llvm.vector.reduce.smax.v8i16(<8 x i16> %1) 
# | next:317     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          88:  ret i16 %2 
# | next:317     ~~~~~~~~~~~~
# |          89: } 
# | next:317     ~~
# |          90:  
# | next:317     ~
# |          91: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
# | next:317     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          92: define i16 @test_reduce_v32i16_v8i16(<32 x i16> %a0) local_unnamed_addr #0 { 
# | next:317     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:341                                          X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |          93:  %1 = shufflevector <32 x i16> %a0, <32 x i16> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7> 
# | next:341     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          94:  %2 = tail call i16 @llvm.vector.reduce.smax.v8i16(<8 x i16> %1) 
# | next:341     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          95:  ret i16 %2 
# | next:341     ~~~~~~~~~~~~
# |          96: } 
# | next:341     ~~
# |          97:  
# | next:341     ~
# |          98: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
# | next:341     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          99: define i8 @test_reduce_v32i8_v16i8(<32 x i8> %a0) local_unnamed_addr #0 { 
# | next:341     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:365                                        X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |         100:  %1 = shufflevector <32 x i8> %a0, <32 x i8> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15> 
# | next:365     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         101:  %2 = tail call i8 @llvm.vector.reduce.smax.v16i8(<16 x i8> %1) 
# | next:365     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         102:  ret i8 %2 
# | next:365     ~~~~~~~~~~~
# |         103: } 
# | next:365     ~~
# |         104:  
# | next:365     ~
# |         105: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
# | next:365     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         106: define i8 @test_reduce_v64i8_v16i8(<64 x i8> %a0) local_unnamed_addr #0 { 
# | next:365     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:394                                        X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |         107:  %1 = shufflevector <64 x i8> %a0, <64 x i8> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15> 
# | next:394     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         108:  %2 = tail call i8 @llvm.vector.reduce.smax.v16i8(<16 x i8> %1) 
# | next:394     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         109:  ret i8 %2 
# | next:394     ~~~~~~~~~~~
# |         110: } 
# | next:394     ~~
# |         111:  
# | next:394     ~
# |           .
# |           .
# |           .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/PhaseOrdering/X86/horizontal-reduce-smin.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\PhaseOrdering\X86\horizontal-reduce-smin.ll -passes="default<O2>" -S -mtriple=i686--   -mcpu=x86-64    | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-smin.ll --check-prefixes=CHECK,SSE
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' '-passes=default<O2>' -S -mtriple=i686-- -mcpu=x86-64
# 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\PhaseOrdering\X86\horizontal-reduce-smin.ll' --check-prefixes=CHECK,SSE
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-smin.ll:317:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <16 x i16> [[A0:%.*]], <16 x i16> poison, <16 x i32> <i32 4, i32 5, i32 6, i32 7, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
# |               ^
# | <stdin>:85:38: note: scanning from here
# | define i16 @test_reduce_v16i16_v8i16(<16 x i16> %a0) local_unnamed_addr #0 {
# |                                      ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-smin.ll:341:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <32 x i16> [[A0:%.*]], <32 x i16> poison, <32 x i32> <i32 4, i32 5, i32 6, i32 7, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
# |               ^
# | <stdin>:92:38: note: scanning from here
# | define i16 @test_reduce_v32i16_v8i16(<32 x i16> %a0) local_unnamed_addr #0 {
# |                                      ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-smin.ll:365:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <32 x i8> [[A0:%.*]], <32 x i8> poison, <32 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
# |               ^
# | <stdin>:99:36: note: scanning from here
# | define i8 @test_reduce_v32i8_v16i8(<32 x i8> %a0) local_unnamed_addr #0 {
# |                                    ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-smin.ll:394:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <64 x i8> [[A0:%.*]], <64 x i8> poison, <64 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
# |               ^
# | <stdin>:106:36: note: scanning from here
# | define i8 @test_reduce_v64i8_v16i8(<64 x i8> %a0) local_unnamed_addr #0 {
# |                                    ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-smin.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |           .
# |           .
# |           .
# |          80:  %1 = tail call i8 @llvm.vector.reduce.smin.v64i8(<64 x i8> %a0) 
# |          81:  ret i8 %1 
# |          82: } 
# |          83:  
# |          84: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
# |          85: define i16 @test_reduce_v16i16_v8i16(<16 x i16> %a0) local_unnamed_addr #0 { 
# | next:317                                          X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |          86:  %1 = shufflevector <16 x i16> %a0, <16 x i16> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7> 
# | next:317     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          87:  %2 = tail call i16 @llvm.vector.reduce.smin.v8i16(<8 x i16> %1) 
# | next:317     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          88:  ret i16 %2 
# | next:317     ~~~~~~~~~~~~
# |          89: } 
# | next:317     ~~
# |          90:  
# | next:317     ~
# |          91: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
# | next:317     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          92: define i16 @test_reduce_v32i16_v8i16(<32 x i16> %a0) local_unnamed_addr #0 { 
# | next:317     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:341                                          X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |          93:  %1 = shufflevector <32 x i16> %a0, <32 x i16> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7> 
# | next:341     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          94:  %2 = tail call i16 @llvm.vector.reduce.smin.v8i16(<8 x i16> %1) 
# | next:341     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          95:  ret i16 %2 
# | next:341     ~~~~~~~~~~~~
# |          96: } 
# | next:341     ~~
# |          97:  
# | next:341     ~
# |          98: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
# | next:341     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          99: define i8 @test_reduce_v32i8_v16i8(<32 x i8> %a0) local_unnamed_addr #0 { 
# | next:341     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:365                                        X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |         100:  %1 = shufflevector <32 x i8> %a0, <32 x i8> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15> 
# | next:365     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         101:  %2 = tail call i8 @llvm.vector.reduce.smin.v16i8(<16 x i8> %1) 
# | next:365     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         102:  ret i8 %2 
# | next:365     ~~~~~~~~~~~
# |         103: } 
# | next:365     ~~
# |         104:  
# | next:365     ~
# |         105: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
# | next:365     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         106: define i8 @test_reduce_v64i8_v16i8(<64 x i8> %a0) local_unnamed_addr #0 { 
# | next:365     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:394                                        X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |         107:  %1 = shufflevector <64 x i8> %a0, <64 x i8> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15> 
# | next:394     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         108:  %2 = tail call i8 @llvm.vector.reduce.smin.v16i8(<16 x i8> %1) 
# | next:394     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         109:  ret i8 %2 
# | next:394     ~~~~~~~~~~~
# |         110: } 
# | next:394     ~~
# |         111:  
# | next:394     ~
# |           .
# |           .
# |           .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/PhaseOrdering/X86/horizontal-reduce-umax.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\PhaseOrdering\X86\horizontal-reduce-umax.ll -passes="default<O2>" -S -mtriple=i686--   -mcpu=x86-64    | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-umax.ll --check-prefixes=CHECK,SSE
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' '-passes=default<O2>' -S -mtriple=i686-- -mcpu=x86-64
# 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\PhaseOrdering\X86\horizontal-reduce-umax.ll' --check-prefixes=CHECK,SSE
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-umax.ll:317:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <16 x i16> [[A0:%.*]], <16 x i16> poison, <16 x i32> <i32 4, i32 5, i32 6, i32 7, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
# |               ^
# | <stdin>:85:38: note: scanning from here
# | define i16 @test_reduce_v16i16_v8i16(<16 x i16> %a0) local_unnamed_addr #0 {
# |                                      ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-umax.ll:341:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <32 x i16> [[A0:%.*]], <32 x i16> poison, <32 x i32> <i32 4, i32 5, i32 6, i32 7, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
# |               ^
# | <stdin>:92:38: note: scanning from here
# | define i16 @test_reduce_v32i16_v8i16(<32 x i16> %a0) local_unnamed_addr #0 {
# |                                      ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-umax.ll:365:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <32 x i8> [[A0:%.*]], <32 x i8> poison, <32 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
# |               ^
# | <stdin>:99:36: note: scanning from here
# | define i8 @test_reduce_v32i8_v16i8(<32 x i8> %a0) local_unnamed_addr #0 {
# |                                    ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-umax.ll:394:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <64 x i8> [[A0:%.*]], <64 x i8> poison, <64 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
# |               ^
# | <stdin>:106:36: note: scanning from here
# | define i8 @test_reduce_v64i8_v16i8(<64 x i8> %a0) local_unnamed_addr #0 {
# |                                    ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-umax.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |           .
# |           .
# |           .
# |          80:  %1 = tail call i8 @llvm.vector.reduce.umax.v64i8(<64 x i8> %a0) 
# |          81:  ret i8 %1 
# |          82: } 
# |          83:  
# |          84: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
# |          85: define i16 @test_reduce_v16i16_v8i16(<16 x i16> %a0) local_unnamed_addr #0 { 
# | next:317                                          X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |          86:  %1 = shufflevector <16 x i16> %a0, <16 x i16> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7> 
# | next:317     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          87:  %2 = tail call i16 @llvm.vector.reduce.umax.v8i16(<8 x i16> %1) 
# | next:317     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          88:  ret i16 %2 
# | next:317     ~~~~~~~~~~~~
# |          89: } 
# | next:317     ~~
# |          90:  
# | next:317     ~
# |          91: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
# | next:317     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          92: define i16 @test_reduce_v32i16_v8i16(<32 x i16> %a0) local_unnamed_addr #0 { 
# | next:317     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:341                                          X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |          93:  %1 = shufflevector <32 x i16> %a0, <32 x i16> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7> 
# | next:341     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          94:  %2 = tail call i16 @llvm.vector.reduce.umax.v8i16(<8 x i16> %1) 
# | next:341     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          95:  ret i16 %2 
# | next:341     ~~~~~~~~~~~~
# |          96: } 
# | next:341     ~~
# |          97:  
# | next:341     ~
# |          98: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
# | next:341     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          99: define i8 @test_reduce_v32i8_v16i8(<32 x i8> %a0) local_unnamed_addr #0 { 
# | next:341     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:365                                        X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |         100:  %1 = shufflevector <32 x i8> %a0, <32 x i8> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15> 
# | next:365     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         101:  %2 = tail call i8 @llvm.vector.reduce.umax.v16i8(<16 x i8> %1) 
# | next:365     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         102:  ret i8 %2 
# | next:365     ~~~~~~~~~~~
# |         103: } 
# | next:365     ~~
# |         104:  
# | next:365     ~
# |         105: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
# | next:365     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         106: define i8 @test_reduce_v64i8_v16i8(<64 x i8> %a0) local_unnamed_addr #0 { 
# | next:365     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:394                                        X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |         107:  %1 = shufflevector <64 x i8> %a0, <64 x i8> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15> 
# | next:394     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         108:  %2 = tail call i8 @llvm.vector.reduce.umax.v16i8(<16 x i8> %1) 
# | next:394     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         109:  ret i8 %2 
# | next:394     ~~~~~~~~~~~
# |         110: } 
# | next:394     ~~
# |         111:  
# | next:394     ~
# |           .
# |           .
# |           .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/PhaseOrdering/X86/horizontal-reduce-umin.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\PhaseOrdering\X86\horizontal-reduce-umin.ll -passes="default<O2>" -S -mtriple=i686--   -mcpu=x86-64    | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-umin.ll --check-prefixes=CHECK,SSE
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' '-passes=default<O2>' -S -mtriple=i686-- -mcpu=x86-64
# 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\PhaseOrdering\X86\horizontal-reduce-umin.ll' --check-prefixes=CHECK,SSE
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-umin.ll:317:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <16 x i16> [[A0:%.*]], <16 x i16> poison, <16 x i32> <i32 4, i32 5, i32 6, i32 7, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
# |               ^
# | <stdin>:85:38: note: scanning from here
# | define i16 @test_reduce_v16i16_v8i16(<16 x i16> %a0) local_unnamed_addr #0 {
# |                                      ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-umin.ll:341:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <32 x i16> [[A0:%.*]], <32 x i16> poison, <32 x i32> <i32 4, i32 5, i32 6, i32 7, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
# |               ^
# | <stdin>:92:38: note: scanning from here
# | define i16 @test_reduce_v32i16_v8i16(<32 x i16> %a0) local_unnamed_addr #0 {
# |                                      ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-umin.ll:365:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <32 x i8> [[A0:%.*]], <32 x i8> poison, <32 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
# |               ^
# | <stdin>:99:36: note: scanning from here
# | define i8 @test_reduce_v32i8_v16i8(<32 x i8> %a0) local_unnamed_addr #0 {
# |                                    ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-umin.ll:394:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <64 x i8> [[A0:%.*]], <64 x i8> poison, <64 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
# |               ^
# | <stdin>:106:36: note: scanning from here
# | define i8 @test_reduce_v64i8_v16i8(<64 x i8> %a0) local_unnamed_addr #0 {
# |                                    ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\horizontal-reduce-umin.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |           .
# |           .
# |           .
# |          80:  %1 = tail call i8 @llvm.vector.reduce.umin.v64i8(<64 x i8> %a0) 
# |          81:  ret i8 %1 
# |          82: } 
# |          83:  
# |          84: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
# |          85: define i16 @test_reduce_v16i16_v8i16(<16 x i16> %a0) local_unnamed_addr #0 { 
# | next:317                                          X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |          86:  %1 = shufflevector <16 x i16> %a0, <16 x i16> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7> 
# | next:317     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          87:  %2 = tail call i16 @llvm.vector.reduce.umin.v8i16(<8 x i16> %1) 
# | next:317     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          88:  ret i16 %2 
# | next:317     ~~~~~~~~~~~~
# |          89: } 
# | next:317     ~~
# |          90:  
# | next:317     ~
# |          91: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
# | next:317     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          92: define i16 @test_reduce_v32i16_v8i16(<32 x i16> %a0) local_unnamed_addr #0 { 
# | next:317     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:341                                          X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |          93:  %1 = shufflevector <32 x i16> %a0, <32 x i16> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7> 
# | next:341     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          94:  %2 = tail call i16 @llvm.vector.reduce.umin.v8i16(<8 x i16> %1) 
# | next:341     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          95:  ret i16 %2 
# | next:341     ~~~~~~~~~~~~
# |          96: } 
# | next:341     ~~
# |          97:  
# | next:341     ~
# |          98: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
# | next:341     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          99: define i8 @test_reduce_v32i8_v16i8(<32 x i8> %a0) local_unnamed_addr #0 { 
# | next:341     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:365                                        X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |         100:  %1 = shufflevector <32 x i8> %a0, <32 x i8> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15> 
# | next:365     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         101:  %2 = tail call i8 @llvm.vector.reduce.umin.v16i8(<16 x i8> %1) 
# | next:365     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         102:  ret i8 %2 
# | next:365     ~~~~~~~~~~~
# |         103: } 
# | next:365     ~~
# |         104:  
# | next:365     ~
# |         105: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
# | next:365     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         106: define i8 @test_reduce_v64i8_v16i8(<64 x i8> %a0) local_unnamed_addr #0 { 
# | next:365     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:394                                        X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |         107:  %1 = shufflevector <64 x i8> %a0, <64 x i8> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15> 
# | next:394     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         108:  %2 = tail call i8 @llvm.vector.reduce.umin.v16i8(<16 x i8> %1) 
# | next:394     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |         109:  ret i8 %2 
# | next:394     ~~~~~~~~~~~
# |         110: } 
# | next:394     ~~
# |         111:  
# | next:394     ~
# |           .
# |           .
# |           .
# | >>>>>>
# `-----------------------------
# 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/195119


More information about the llvm-commits mailing list