[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