[llvm] Scalarizer : Fix vector shuffle issue when can't aligned to customized minBits. (PR #163912)

via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 5 13:17:51 PST 2025


github-actions[bot] wrote:

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

* 166781 tests passed
* 2905 tests skipped
* 1 test failed

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

### LLVM
<details>
<summary>LLVM.Transforms/Scalarizer/min-bits.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll -passes='function(scalarizer<load-store;min-bits=16>,dce)' -S | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll --check-prefixes=CHECK,MIN16
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll '-passes=function(scalarizer<load-store;min-bits=16>,dce)' -S
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll --check-prefixes=CHECK,MIN16
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll -passes='function(scalarizer<load-store;min-bits=32>,dce)' -S | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll --check-prefixes=CHECK,MIN32
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll '-passes=function(scalarizer<load-store;min-bits=32>,dce)' -S
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll --check-prefixes=CHECK,MIN32
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll:174:15: error: MIN32-NEXT: expected string not found in input
# | ; MIN32-NEXT: [[TMP1:%.*]] = shufflevector <3 x i10> [[C_I0]], <3 x i10> [[C_I0]], <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
# |               ^
# | <stdin>:49:30: note: scanning from here
# |  %c.i1 = add i10 %a.i1, %b.i1
# |                              ^
# | <stdin>:49:30: note: with "C_I0" equal to "%c.i0"
# |  %c.i1 = add i10 %a.i1, %b.i1
# |                              ^
# | <stdin>:49:30: note: with "C_I0" equal to "%c.i0"
# |  %c.i1 = add i10 %a.i1, %b.i1
# |                              ^
# | <stdin>:50:5: note: possible intended match here
# |  %1 = shufflevector <3 x i10> %c.i0, <3 x i10> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
# |     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll:240:15: error: MIN32-NEXT: expected string not found in input
# | ; MIN32-NEXT: [[TMP1:%.*]] = shufflevector <2 x half> [[R_I0]], <2 x half> [[R_I0]], <3 x i32> <i32 0, i32 1, i32 poison>
# |               ^
# | <stdin>:67:47: note: scanning from here
# |  %r.i1 = select i1 %cc, half %a.i1, half %b.i1
# |                                               ^
# | <stdin>:67:47: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = select i1 %cc, half %a.i1, half %b.i1
# |                                               ^
# | <stdin>:67:47: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = select i1 %cc, half %a.i1, half %b.i1
# |                                               ^
# | <stdin>:68:5: note: possible intended match here
# |  %1 = shufflevector <2 x half> %r.i0, <2 x half> poison, <3 x i32> <i32 0, i32 1, i32 poison>
# |     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll:279:15: error: MIN32-NEXT: expected string not found in input
# | ; MIN32-NEXT: [[TMP1:%.*]] = shufflevector <2 x half> [[R_I0]], <2 x half> [[R_I0]], <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
# |               ^
# | <stdin>:79:59: note: scanning from here
# |  %r.i1 = select i1 %cc, <2 x half> %a.i1, <2 x half> %b.i1
# |                                                           ^
# | <stdin>:79:59: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = select i1 %cc, <2 x half> %a.i1, <2 x half> %b.i1
# |                                                           ^
# | <stdin>:79:59: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = select i1 %cc, <2 x half> %a.i1, <2 x half> %b.i1
# |                                                           ^
# | <stdin>:80:5: note: possible intended match here
# |  %1 = shufflevector <2 x half> %r.i0, <2 x half> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
# |     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll:341:15: error: MIN32-NEXT: expected string not found in input
# | ; MIN32-NEXT: [[TMP1:%.*]] = shufflevector <2 x half> [[R_I0]], <2 x half> [[R_I0]], <3 x i32> <i32 0, i32 1, i32 poison>
# |               ^
# | <stdin>:100:25: note: scanning from here
# |  %r.i1 = fneg half %a.i1
# |                         ^
# | <stdin>:100:25: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = fneg half %a.i1
# |                         ^
# | <stdin>:100:25: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = fneg half %a.i1
# |                         ^
# | <stdin>:101:5: note: possible intended match here
# |  %1 = shufflevector <2 x half> %r.i0, <2 x half> poison, <3 x i32> <i32 0, i32 1, i32 poison>
# |     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll:374:15: error: MIN32-NEXT: expected string not found in input
# | ; MIN32-NEXT: [[TMP1:%.*]] = shufflevector <2 x half> [[R_I0]], <2 x half> [[R_I0]], <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
# |               ^
# | <stdin>:110:31: note: scanning from here
# |  %r.i1 = fneg <2 x half> %a.i1
# |                               ^
# | <stdin>:110:31: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = fneg <2 x half> %a.i1
# |                               ^
# | <stdin>:110:31: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = fneg <2 x half> %a.i1
# |                               ^
# | <stdin>:111:5: note: possible intended match here
# |  %1 = shufflevector <2 x half> %r.i0, <2 x half> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
# |     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll:434:15: error: MIN32-NEXT: expected string not found in input
# | ; MIN32-NEXT: [[TMP1:%.*]] = shufflevector <2 x half> [[R_I0]], <2 x half> [[R_I0]], <3 x i32> <i32 0, i32 1, i32 poison>
# |               ^
# | <stdin>:128:32: note: scanning from here
# |  %r.i1 = fadd half %a.i1, %b.i1
# |                                ^
# | <stdin>:128:32: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = fadd half %a.i1, %b.i1
# |                                ^
# | <stdin>:128:32: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = fadd half %a.i1, %b.i1
# |                                ^
# | <stdin>:129:5: note: possible intended match here
# |  %1 = shufflevector <2 x half> %r.i0, <2 x half> poison, <3 x i32> <i32 0, i32 1, i32 poison>
# |     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll:473:15: error: MIN32-NEXT: expected string not found in input
# | ; MIN32-NEXT: [[TMP1:%.*]] = shufflevector <2 x half> [[R_I0]], <2 x half> [[R_I0]], <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
# |               ^
# | <stdin>:140:38: note: scanning from here
# |  %r.i1 = fadd <2 x half> %a.i1, %b.i1
# |                                      ^
# | <stdin>:140:38: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = fadd <2 x half> %a.i1, %b.i1
# |                                      ^
# | <stdin>:140:38: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = fadd <2 x half> %a.i1, %b.i1
# |                                      ^
# | <stdin>:141:5: note: possible intended match here
# |  %1 = shufflevector <2 x half> %r.i0, <2 x half> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
# |     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll:526:15: error: MIN32-NEXT: expected string not found in input
# | ; MIN32-NEXT: [[TMP1:%.*]] = shufflevector <2 x i16> [[R_I0]], <2 x i16> [[R_I0]], <3 x i32> <i32 0, i32 1, i32 poison>
# |               ^
# | <stdin>:156:34: note: scanning from here
# |  %r.i1 = fptosi half %a.i1 to i16
# |                                  ^
# | <stdin>:156:34: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = fptosi half %a.i1 to i16
# |                                  ^
# | <stdin>:156:34: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = fptosi half %a.i1 to i16
# |                                  ^
# | <stdin>:157:5: note: possible intended match here
# |  %1 = shufflevector <2 x i16> %r.i0, <2 x i16> poison, <3 x i32> <i32 0, i32 1, i32 poison>
# |     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll:559:15: error: MIN32-NEXT: expected string not found in input
# | ; MIN32-NEXT: [[TMP1:%.*]] = shufflevector <2 x i16> [[R_I0]], <2 x i16> [[R_I0]], <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
# |               ^
# | <stdin>:166:46: note: scanning from here
# |  %r.i1 = fptosi <2 x half> %a.i1 to <2 x i16>
# |                                              ^
# | <stdin>:166:46: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = fptosi <2 x half> %a.i1 to <2 x i16>
# |                                              ^
# | <stdin>:166:46: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = fptosi <2 x half> %a.i1 to <2 x i16>
# |                                              ^
# | <stdin>:167:5: note: possible intended match here
# |  %1 = shufflevector <2 x i16> %r.i0, <2 x i16> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
# |     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll:807:15: error: MIN32-NEXT: expected string not found in input
# | ; MIN32-NEXT: [[TMP1:%.*]] = shufflevector <2 x i16> [[A_I0]], <2 x i16> [[A_I0]], <3 x i32> <i32 0, i32 1, i32 poison>
# |               ^
# | <stdin>:240:42: note: scanning from here
# |  %a.i0 = load <2 x i16>, ptr %pa, align 8
# |                                          ^
# | <stdin>:240:42: note: with "A_I0" equal to "%a.i0"
# |  %a.i0 = load <2 x i16>, ptr %pa, align 8
# |                                          ^
# | <stdin>:240:42: note: with "A_I0" equal to "%a.i0"
# |  %a.i0 = load <2 x i16>, ptr %pa, align 8
# |                                          ^
# | <stdin>:241:5: note: possible intended match here
# |  %1 = shufflevector <2 x i16> %a.i0, <2 x i16> poison, <3 x i32> <i32 0, i32 1, i32 poison>
# |     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll:839:15: error: MIN32-NEXT: expected string not found in input
# | ; MIN32-NEXT: [[TMP2:%.*]] = shufflevector <2 x i16> [[A_I0]], <2 x i16> [[A_I0]], <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
# |               ^
# | <stdin>:250:51: note: scanning from here
# |  %1 = insertelement <2 x i16> %a.i1, i16 %b, i64 1
# |                                                   ^
# | <stdin>:250:51: note: with "A_I0" equal to "%a.i0"
# |  %1 = insertelement <2 x i16> %a.i1, i16 %b, i64 1
# |                                                   ^
# | <stdin>:250:51: note: with "A_I0" equal to "%a.i0"
# |  %1 = insertelement <2 x i16> %a.i1, i16 %b, i64 1
# |                                                   ^
# | <stdin>:252:5: note: possible intended match here
# |  %3 = shufflevector <2 x i16> %1, <2 x i16> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
# |     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll:909:15: error: MIN32-NEXT: expected string not found in input
# | ; MIN32-NEXT: [[TMP1:%.*]] = shufflevector <2 x i16> [[A_I0]], <2 x i16> [[A_I0]], <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
# |               ^
# | <stdin>:272:45: note: scanning from here
# |  %a.i1 = load <2 x i16>, ptr %pa.i1, align 4
# |                                             ^
# | <stdin>:272:45: note: with "A_I0" equal to "%a.i0"
# |  %a.i1 = load <2 x i16>, ptr %pa.i1, align 4
# |                                             ^
# | <stdin>:272:45: note: with "A_I0" equal to "%a.i0"
# |  %a.i1 = load <2 x i16>, ptr %pa.i1, align 4
# |                                             ^
# | <stdin>:273:5: note: possible intended match here
# |  %1 = shufflevector <2 x i16> %a.i0, <2 x i16> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
# |     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll:1224:15: error: MIN32-NEXT: expected string not found in input
# | ; MIN32-NEXT: [[TMP1:%.*]] = shufflevector <2 x half> [[R_I0]], <2 x half> [[R_I0]], <3 x i32> <i32 0, i32 1, i32 poison>
# |               ^
# | <stdin>:361:60: note: scanning from here
# |  %r.i1 = call half @llvm.minnum.f16(half %a.i1, half %b.i1)
# |                                                            ^
# | <stdin>:361:60: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = call half @llvm.minnum.f16(half %a.i1, half %b.i1)
# |                                                            ^
# | <stdin>:361:60: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = call half @llvm.minnum.f16(half %a.i1, half %b.i1)
# |                                                            ^
# | <stdin>:362:5: note: possible intended match here
# |  %1 = shufflevector <2 x half> %r.i0, <2 x half> poison, <3 x i32> <i32 0, i32 1, i32 poison>
# |     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll:1263:15: error: MIN32-NEXT: expected string not found in input
# | ; MIN32-NEXT: [[TMP1:%.*]] = shufflevector <2 x half> [[R_I0]], <2 x half> [[R_I0]], <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
# |               ^
# | <stdin>:373:80: note: scanning from here
# |  %r.i1 = call <2 x half> @llvm.minnum.v2f16(<2 x half> %a.i1, <2 x half> %b.i1)
# |                                                                                ^
# | <stdin>:373:80: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = call <2 x half> @llvm.minnum.v2f16(<2 x half> %a.i1, <2 x half> %b.i1)
# |                                                                                ^
# | <stdin>:373:80: note: with "R_I0" equal to "%r.i0"
# |  %r.i1 = call <2 x half> @llvm.minnum.v2f16(<2 x half> %a.i1, <2 x half> %b.i1)
# |                                                                                ^
# | <stdin>:374:5: note: possible intended match here
# |  %1 = shufflevector <2 x half> %r.i0, <2 x half> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
# |     ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Scalarizer/min-bits.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             44:  %a.i1 = extractelement <4 x i10> %a, i64 3 
# |             45:  %b = load <4 x i10>, ptr %pb, align 8 
# |             46:  %b.i0 = shufflevector <4 x i10> %b, <4 x i10> poison, <3 x i32> <i32 0, i32 1, i32 2> 
# |             47:  %c.i0 = add <3 x i10> %a.i0, %b.i0 
# |             48:  %b.i1 = extractelement <4 x i10> %b, i64 3 
# |             49:  %c.i1 = add i10 %a.i1, %b.i1 
# | next:174'0                                   X error: no match found
# | next:174'1                                     with "C_I0" equal to "%c.i0"
# | next:174'2                                     with "C_I0" equal to "%c.i0"
# |             50:  %1 = shufflevector <3 x i10> %c.i0, <3 x i10> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison> 
# | next:174'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:174'3          ?                                                                                               possible intended match
# |             51:  %c = insertelement <4 x i10> %1, i10 %c.i1, i64 3 
# | next:174'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             52:  store <4 x i10> %c, ptr %pa, align 8 
# | next:174'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             53:  ret void 
# | next:174'0      ~~~~~~~~~~
# |             54: } 
# | next:174'0      ~~
# |             55:  
# | next:174'0      ~
# |              .
# |              .
# |              .
# |             62:  %a.i0 = shufflevector <3 x half> %a, <3 x half> poison, <2 x i32> <i32 0, i32 1> 
# |             63:  %b.i0 = shufflevector <3 x half> %b, <3 x half> poison, <2 x i32> <i32 0, i32 1> 
# |             64:  %r.i0 = select i1 %cc, <2 x half> %a.i0, <2 x half> %b.i0 
# |             65:  %a.i1 = extractelement <3 x half> %a, i64 2 
# |             66:  %b.i1 = extractelement <3 x half> %b, i64 2 
# |             67:  %r.i1 = select i1 %cc, half %a.i1, half %b.i1 
# | next:240'0                                                    X error: no match found
# | next:240'1                                                      with "R_I0" equal to "%r.i0"
# | next:240'2                                                      with "R_I0" equal to "%r.i0"
# |             68:  %1 = shufflevector <2 x half> %r.i0, <2 x half> poison, <3 x i32> <i32 0, i32 1, i32 poison> 
# | next:240'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:240'3          ?                                                                                          possible intended match
# |             69:  %r = insertelement <3 x half> %1, half %r.i1, i64 2 
# | next:240'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             70:  ret <3 x half> %r 
# | next:240'0      ~~~~~~~~~~~~~~~~~~~
# |             71: } 
# | next:240'0      ~~
# |             72:  
# | next:240'0      ~
# |             73: define <4 x half> @select_uniform_condition_v4f16(<4 x half> %a, <4 x half> %b, i1 %cc) { 
# | next:240'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             74:  %a.i0 = shufflevector <4 x half> %a, <4 x half> poison, <2 x i32> <i32 0, i32 1> 
# |             75:  %b.i0 = shufflevector <4 x half> %b, <4 x half> poison, <2 x i32> <i32 0, i32 1> 
# |             76:  %r.i0 = select i1 %cc, <2 x half> %a.i0, <2 x half> %b.i0 
# |             77:  %a.i1 = shufflevector <4 x half> %a, <4 x half> poison, <2 x i32> <i32 2, i32 3> 
# |             78:  %b.i1 = shufflevector <4 x half> %b, <4 x half> poison, <2 x i32> <i32 2, i32 3> 
# |             79:  %r.i1 = select i1 %cc, <2 x half> %a.i1, <2 x half> %b.i1 
# | next:279'0                                                                X error: no match found
# | next:279'1                                                                  with "R_I0" equal to "%r.i0"
# | next:279'2                                                                  with "R_I0" equal to "%r.i0"
# |             80:  %1 = shufflevector <2 x half> %r.i0, <2 x half> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 
# | next:279'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:279'3          ?                                                                                                      possible intended match
# |             81:  %2 = shufflevector <2 x half> %r.i1, <2 x half> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 
# | next:279'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             82:  %r = shufflevector <4 x half> %1, <4 x half> %2, <4 x i32> <i32 0, i32 1, i32 4, i32 5> 
# | next:279'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             83:  ret <4 x half> %r 
# | next:279'0      ~~~~~~~~~~~~~~~~~~~
# |             84: } 
# | next:279'0      ~~
# |             85:  
# | next:279'0      ~
# |              .
# |              .
# |              .
# |             95:  
# |             96: define <3 x half> @unary_v3f16(<3 x half> %a) { 
# |             97:  %a.i0 = shufflevector <3 x half> %a, <3 x half> poison, <2 x i32> <i32 0, i32 1> 
# |             98:  %r.i0 = fneg <2 x half> %a.i0 
# |             99:  %a.i1 = extractelement <3 x half> %a, i64 2 
# |            100:  %r.i1 = fneg half %a.i1 
# | next:341'0                              X error: no match found
# | next:341'1                                with "R_I0" equal to "%r.i0"
# | next:341'2                                with "R_I0" equal to "%r.i0"
# |            101:  %1 = shufflevector <2 x half> %r.i0, <2 x half> poison, <3 x i32> <i32 0, i32 1, i32 poison> 
# | next:341'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:341'3          ?                                                                                          possible intended match
# |            102:  %r = insertelement <3 x half> %1, half %r.i1, i64 2 
# | next:341'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            103:  ret <3 x half> %r 
# | next:341'0      ~~~~~~~~~~~~~~~~~~~
# |            104: } 
# | next:341'0      ~~
# |            105:  
# | next:341'0      ~
# |            106: define <4 x half> @unary_v4f16(<4 x half> %a) { 
# | next:341'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            107:  %a.i0 = shufflevector <4 x half> %a, <4 x half> poison, <2 x i32> <i32 0, i32 1> 
# |            108:  %r.i0 = fneg <2 x half> %a.i0 
# |            109:  %a.i1 = shufflevector <4 x half> %a, <4 x half> poison, <2 x i32> <i32 2, i32 3> 
# |            110:  %r.i1 = fneg <2 x half> %a.i1 
# | next:374'0                                    X error: no match found
# | next:374'1                                      with "R_I0" equal to "%r.i0"
# | next:374'2                                      with "R_I0" equal to "%r.i0"
# |            111:  %1 = shufflevector <2 x half> %r.i0, <2 x half> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 
# | next:374'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:374'3          ?                                                                                                      possible intended match
# |            112:  %2 = shufflevector <2 x half> %r.i1, <2 x half> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 
# | next:374'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            113:  %r = shufflevector <4 x half> %1, <4 x half> %2, <4 x i32> <i32 0, i32 1, i32 4, i32 5> 
# | next:374'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            114:  ret <4 x half> %r 
# | next:374'0      ~~~~~~~~~~~~~~~~~~~
# |            115: } 
# | next:374'0      ~~
# |            116:  
# | next:374'0      ~
# |              .
# |              .
# |              .
# |            123:  %a.i0 = shufflevector <3 x half> %a, <3 x half> poison, <2 x i32> <i32 0, i32 1> 
# |            124:  %b.i0 = shufflevector <3 x half> %b, <3 x half> poison, <2 x i32> <i32 0, i32 1> 
# |            125:  %r.i0 = fadd <2 x half> %a.i0, %b.i0 
# |            126:  %a.i1 = extractelement <3 x half> %a, i64 2 
# |            127:  %b.i1 = extractelement <3 x half> %b, i64 2 
# |            128:  %r.i1 = fadd half %a.i1, %b.i1 
# | next:434'0                                     X error: no match found
# | next:434'1                                       with "R_I0" equal to "%r.i0"
# | next:434'2                                       with "R_I0" equal to "%r.i0"
# |            129:  %1 = shufflevector <2 x half> %r.i0, <2 x half> poison, <3 x i32> <i32 0, i32 1, i32 poison> 
# | next:434'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:434'3          ?                                                                                          possible intended match
# |            130:  %r = insertelement <3 x half> %1, half %r.i1, i64 2 
# | next:434'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            131:  ret <3 x half> %r 
# | next:434'0      ~~~~~~~~~~~~~~~~~~~
# |            132: } 
# | next:434'0      ~~
# |            133:  
# | next:434'0      ~
# |            134: define <4 x half> @binary_v4f16(<4 x half> %a, <4 x half> %b) { 
# | next:434'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            135:  %a.i0 = shufflevector <4 x half> %a, <4 x half> poison, <2 x i32> <i32 0, i32 1> 
# |            136:  %b.i0 = shufflevector <4 x half> %b, <4 x half> poison, <2 x i32> <i32 0, i32 1> 
# |            137:  %r.i0 = fadd <2 x half> %a.i0, %b.i0 
# |            138:  %a.i1 = shufflevector <4 x half> %a, <4 x half> poison, <2 x i32> <i32 2, i32 3> 
# |            139:  %b.i1 = shufflevector <4 x half> %b, <4 x half> poison, <2 x i32> <i32 2, i32 3> 
# |            140:  %r.i1 = fadd <2 x half> %a.i1, %b.i1 
# | next:473'0                                           X error: no match found
# | next:473'1                                             with "R_I0" equal to "%r.i0"
# | next:473'2                                             with "R_I0" equal to "%r.i0"
# |            141:  %1 = shufflevector <2 x half> %r.i0, <2 x half> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 
# | next:473'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:473'3          ?                                                                                                      possible intended match
# |            142:  %2 = shufflevector <2 x half> %r.i1, <2 x half> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 
# | next:473'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            143:  %r = shufflevector <4 x half> %1, <4 x half> %2, <4 x i32> <i32 0, i32 1, i32 4, i32 5> 
# | next:473'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            144:  ret <4 x half> %r 
# | next:473'0      ~~~~~~~~~~~~~~~~~~~
# |            145: } 
# | next:473'0      ~~
# |            146:  
# | next:473'0      ~
# |              .
# |              .
# |              .
# |            151:  
# |            152: define <3 x i16> @fptosi_v3f16(<3 x half> %a) { 
# |            153:  %a.i0 = shufflevector <3 x half> %a, <3 x half> poison, <2 x i32> <i32 0, i32 1> 
# |            154:  %r.i0 = fptosi <2 x half> %a.i0 to <2 x i16> 
# |            155:  %a.i1 = extractelement <3 x half> %a, i64 2 
# |            156:  %r.i1 = fptosi half %a.i1 to i16 
# | next:526'0                                       X error: no match found
# | next:526'1                                         with "R_I0" equal to "%r.i0"
# | next:526'2                                         with "R_I0" equal to "%r.i0"
# |            157:  %1 = shufflevector <2 x i16> %r.i0, <2 x i16> poison, <3 x i32> <i32 0, i32 1, i32 poison> 
# | next:526'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:526'3          ?                                                                                        possible intended match
# |            158:  %r = insertelement <3 x i16> %1, i16 %r.i1, i64 2 
# | next:526'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            159:  ret <3 x i16> %r 
# | next:526'0      ~~~~~~~~~~~~~~~~~~
# |            160: } 
# | next:526'0      ~~
# |            161:  
# | next:526'0      ~
# |            162: define <4 x i16> @fptosi_v4f16(<4 x half> %a) { 
# | next:526'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            163:  %a.i0 = shufflevector <4 x half> %a, <4 x half> poison, <2 x i32> <i32 0, i32 1> 
# |            164:  %r.i0 = fptosi <2 x half> %a.i0 to <2 x i16> 
# |            165:  %a.i1 = shufflevector <4 x half> %a, <4 x half> poison, <2 x i32> <i32 2, i32 3> 
# |            166:  %r.i1 = fptosi <2 x half> %a.i1 to <2 x i16> 
# | next:559'0                                                   X error: no match found
# | next:559'1                                                     with "R_I0" equal to "%r.i0"
# | next:559'2                                                     with "R_I0" equal to "%r.i0"
# |            167:  %1 = shufflevector <2 x i16> %r.i0, <2 x i16> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 
# | next:559'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:559'3          ?                                                                                                    possible intended match
# |            168:  %2 = shufflevector <2 x i16> %r.i1, <2 x i16> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 
# | next:559'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            169:  %r = shufflevector <4 x i16> %1, <4 x i16> %2, <4 x i32> <i32 0, i32 1, i32 4, i32 5> 
# | next:559'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            170:  ret <4 x i16> %r 
# | next:559'0      ~~~~~~~~~~~~~~~~~~
# |            171: } 
# | next:559'0      ~~
# |            172:  
# | next:559'0      ~
# |              .
# |              .
# |              .
# |            235:  %r = insertelement <2 x i16> %a, i16 %b, i64 1 
# |            236:  ret <2 x i16> %r 
# |            237: } 
# |            238:  
# |            239: define <3 x i16> @load_insertelement_v3i16(ptr %pa, i16 %b) { 
# |            240:  %a.i0 = load <2 x i16>, ptr %pa, align 8 
# | next:807'0                                               X error: no match found
# | next:807'1                                                 with "A_I0" equal to "%a.i0"
# | next:807'2                                                 with "A_I0" equal to "%a.i0"
# |            241:  %1 = shufflevector <2 x i16> %a.i0, <2 x i16> poison, <3 x i32> <i32 0, i32 1, i32 poison> 
# | next:807'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:807'3          ?                                                                                        possible intended match
# |            242:  %r = insertelement <3 x i16> %1, i16 %b, i64 2 
# | next:807'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            243:  ret <3 x i16> %r 
# | next:807'0      ~~~~~~~~~~~~~~~~~~
# |            244: } 
# | next:807'0      ~~
# |            245:  
# | next:807'0      ~
# |            246: define <4 x i16> @load_insertelement_v4i16(ptr %pa, i16 %b) { 
# | next:807'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            247:  %a.i0 = load <2 x i16>, ptr %pa, align 8 
# |            248:  %pa.i1 = getelementptr <2 x i16>, ptr %pa, i32 1 
# |            249:  %a.i1 = load <2 x i16>, ptr %pa.i1, align 4 
# |            250:  %1 = insertelement <2 x i16> %a.i1, i16 %b, i64 1 
# | next:839'0                                                        X error: no match found
# | next:839'1                                                          with "A_I0" equal to "%a.i0"
# | next:839'2                                                          with "A_I0" equal to "%a.i0"
# |            251:  %2 = shufflevector <2 x i16> %a.i0, <2 x i16> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 
# | next:839'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            252:  %3 = shufflevector <2 x i16> %1, <2 x i16> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 
# | next:839'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:839'3          ?                                                                                                 possible intended match
# |            253:  %r = shufflevector <4 x i16> %2, <4 x i16> %3, <4 x i32> <i32 0, i32 1, i32 4, i32 5> 
# | next:839'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            254:  ret <4 x i16> %r 
# | next:839'0      ~~~~~~~~~~~~~~~~~~
# |            255: } 
# | next:839'0      ~~
# |            256:  
# | next:839'0      ~
# |            257: define void @shufflevector_grow(ptr %pa, ptr %pb) { 
# | next:839'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            267: } 
# |            268:  
# |            269: define void @shufflevector_shrink(ptr %pa) { 
# |            270:  %a.i0 = load <2 x i16>, ptr %pa, align 8 
# |            271:  %pa.i1 = getelementptr <2 x i16>, ptr %pa, i32 1 
# |            272:  %a.i1 = load <2 x i16>, ptr %pa.i1, align 4 
# | next:909'0                                                  X error: no match found
# | next:909'1                                                    with "A_I0" equal to "%a.i0"
# | next:909'2                                                    with "A_I0" equal to "%a.i0"
# |            273:  %1 = shufflevector <2 x i16> %a.i0, <2 x i16> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 
# | next:909'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:909'3          ?                                                                                                    possible intended match
# |            274:  %2 = shufflevector <2 x i16> %a.i1, <2 x i16> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 
# | next:909'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            275:  %a = shufflevector <4 x i16> %1, <4 x i16> %2, <4 x i32> <i32 0, i32 1, i32 4, i32 5> 
# | next:909'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            276:  %r = shufflevector <4 x i16> %a, <4 x i16> poison, <2 x i32> <i32 1, i32 2> 
# | next:909'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            277:  store <2 x i16> %r, ptr %pa, align 4 
# | next:909'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            278:  ret void 
# | next:909'0      ~~~~~~~~~~
# |              .
# |              .
# |              .
# |            356:  %a.i0 = shufflevector <3 x half> %a, <3 x half> poison, <2 x i32> <i32 0, i32 1> 
# |            357:  %b.i0 = shufflevector <3 x half> %b, <3 x half> poison, <2 x i32> <i32 0, i32 1> 
# |            358:  %r.i0 = call <2 x half> @llvm.minnum.v2f16(<2 x half> %a.i0, <2 x half> %b.i0) 
# |            359:  %a.i1 = extractelement <3 x half> %a, i64 2 
# |            360:  %b.i1 = extractelement <3 x half> %b, i64 2 
# |            361:  %r.i1 = call half @llvm.minnum.f16(half %a.i1, half %b.i1) 
# | next:1224'0                                                                X error: no match found
# | next:1224'1                                                                  with "R_I0" equal to "%r.i0"
# | next:1224'2                                                                  with "R_I0" equal to "%r.i0"
# |            362:  %1 = shufflevector <2 x half> %r.i0, <2 x half> poison, <3 x i32> <i32 0, i32 1, i32 poison> 
# | next:1224'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1224'3         ?                                                                                          possible intended match
# |            363:  %r = insertelement <3 x half> %1, half %r.i1, i64 2 
# | next:1224'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            364:  ret <3 x half> %r 
# | next:1224'0     ~~~~~~~~~~~~~~~~~~~
# |            365: } 
# | next:1224'0     ~~
# |            366:  
# | next:1224'0     ~
# |            367: define <4 x half> @call_v4f16(<4 x half> %a, <4 x half> %b) { 
# | next:1224'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            368:  %a.i0 = shufflevector <4 x half> %a, <4 x half> poison, <2 x i32> <i32 0, i32 1> 
# |            369:  %b.i0 = shufflevector <4 x half> %b, <4 x half> poison, <2 x i32> <i32 0, i32 1> 
# |            370:  %r.i0 = call <2 x half> @llvm.minnum.v2f16(<2 x half> %a.i0, <2 x half> %b.i0) 
# |            371:  %a.i1 = shufflevector <4 x half> %a, <4 x half> poison, <2 x i32> <i32 2, i32 3> 
# |            372:  %b.i1 = shufflevector <4 x half> %b, <4 x half> poison, <2 x i32> <i32 2, i32 3> 
# |            373:  %r.i1 = call <2 x half> @llvm.minnum.v2f16(<2 x half> %a.i1, <2 x half> %b.i1) 
# | next:1263'0                                                                                    X error: no match found
# | next:1263'1                                                                                      with "R_I0" equal to "%r.i0"
# | next:1263'2                                                                                      with "R_I0" equal to "%r.i0"
# |            374:  %1 = shufflevector <2 x half> %r.i0, <2 x half> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 
# | next:1263'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1263'3         ?                                                                                                      possible intended match
# |            375:  %2 = shufflevector <2 x half> %r.i1, <2 x half> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 
# | next:1263'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            376:  %r = shufflevector <4 x half> %1, <4 x half> %2, <4 x i32> <i32 0, i32 1, i32 4, i32 5> 
# | next:1263'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            377:  ret <4 x half> %r 
# | next:1263'0     ~~~~~~~~~~~~~~~~~~~
# |            378: } 
# | next:1263'0     ~~
# |            379:  
# | next:1263'0     ~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# 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/163912


More information about the llvm-commits mailing list