[llvm] [IR] Split vector.splice into vector.splice.down and vector.splice.up (PR #170796)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 4 19:36:45 PST 2025
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results
* 166774 tests passed
* 2909 tests skipped
* 3 tests failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.Assembler/auto_upgrade_intrinsics.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-as < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Assembler/auto_upgrade_intrinsics.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-dis | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Assembler/auto_upgrade_intrinsics.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-as
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-dis
# 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/Assembler/auto_upgrade_intrinsics.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Assembler/auto_upgrade_intrinsics.ll:221:10: error: CHECK: expected string not found in input
# | ; CHECK: @llvm.vector.splice.up.v4i32(<4 x i32> %a, <4 x i32> %b, i32 3)
# | ^
# | <stdin>:125:32: note: scanning from here
# | define void @test.vector.splice(<4 x i32> %a, <4 x i32> %b) {
# | ^
# | <stdin>:127:22: note: possible intended match here
# | %2 = call <4 x i32> @llvm.vector.splice.up.v4i32(<4 x i32> %a, <4 x i32> %b, i32 2)
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Assembler/auto_upgrade_intrinsics.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 120: define void @test.prefetch.unnamed(ptr %ptr) {
# | 121: call void @llvm.prefetch.p0(ptr %ptr, i32 0, i32 3, i32 1)
# | 122: ret void
# | 123: }
# | 124:
# | 125: define void @test.vector.splice(<4 x i32> %a, <4 x i32> %b) {
# | check:221'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 126: %1 = call <4 x i32> @llvm.vector.splice.down.v4i32(<4 x i32> %a, <4 x i32> %b, i32 3)
# | check:221'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 127: %2 = call <4 x i32> @llvm.vector.splice.up.v4i32(<4 x i32> %a, <4 x i32> %b, i32 2)
# | check:221'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:221'1 ? possible intended match
# | 128: %3 = call <4 x i32> @llvm.vector.splice.down.v4i32(<4 x i32> %a, <4 x i32> %b, i32 1)
# | check:221'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 129: ret void
# | check:221'0 ~~~~~~~~~~
# | 130: }
# | check:221'0 ~~
# | 131:
# | check:221'0 ~
# | 132: ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
# | check:221'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Bitcode/upgrade-vector-splice-intrinsic.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Bitcode/upgrade-vector-splice-intrinsic.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Bitcode/upgrade-vector-splice-intrinsic.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -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/Bitcode/upgrade-vector-splice-intrinsic.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Bitcode/upgrade-vector-splice-intrinsic.ll:6:10: error: CHECK: expected string not found in input
# | ; CHECK: %res = call <8 x half> @llvm.vector.splice.v8f16(<8 x half> %a, <8 x half> %b, i32 2)
# | ^
# | <stdin>:4:32: note: scanning from here
# | define <8 x half> @splice_fixed(<8 x half> %a, <8 x half> %b) {
# | ^
# | <stdin>:5:19: note: possible intended match here
# | %res = call <8 x half> @llvm.experimental.vector.splice.v8f16(<8 x half> %a, <8 x half> %b, i32 2)
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Bitcode/upgrade-vector-splice-intrinsic.ll:14:10: error: CHECK: expected string not found in input
# | ; CHECK: %res = call <vscale x 8 x half> @llvm.vector.splice.nxv8f16(<vscale x 8 x half> %a, <vscale x 8 x half> %b, i32 2)
# | ^
# | <stdin>:9:44: note: scanning from here
# | define <vscale x 8 x half> @splice_scalable(<vscale x 8 x half> %a, <vscale x 8 x half> %b) {
# | ^
# | <stdin>:10:2: note: possible intended match here
# | %res = call <vscale x 8 x half> @llvm.experimental.vector.splice.nxv8f16(<vscale x 8 x half> %a, <vscale x 8 x half> %b, i32 2)
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Bitcode/upgrade-vector-splice-intrinsic.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: ; ModuleID = '<stdin>'
# | 2: source_filename = "<stdin>"
# | 3:
# | 4: define <8 x half> @splice_fixed(<8 x half> %a, <8 x half> %b) {
# | check:6'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 5: %res = call <8 x half> @llvm.experimental.vector.splice.v8f16(<8 x half> %a, <8 x half> %b, i32 2)
# | check:6'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:6'1 ? possible intended match
# | 6: ret <8 x half> %res
# | check:6'0 ~~~~~~~~~~~~~~~~~~~~~
# | 7: }
# | check:6'0 ~~
# | 8:
# | check:6'0 ~
# | 9: define <vscale x 8 x half> @splice_scalable(<vscale x 8 x half> %a, <vscale x 8 x half> %b) {
# | check:6'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:14'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 10: %res = call <vscale x 8 x half> @llvm.experimental.vector.splice.nxv8f16(<vscale x 8 x half> %a, <vscale x 8 x half> %b, i32 2)
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:14'1 ? possible intended match
# | 11: ret <vscale x 8 x half> %res
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 12: }
# | check:14'0 ~~
# | 13:
# | check:14'0 ~
# | 14: ; Unknown intrinsic
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~
# | 15: declare <8 x half> @llvm.experimental.vector.splice.v8f16(<8 x half>, <8 x half>, i32 immarg)
# | check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Verifier/invalid-splice.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
not /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=verify -S < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Verifier/invalid-splice.ll 2>&1 >/dev/null | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Verifier/invalid-splice.ll
# executed command: not /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=verify -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/Verifier/invalid-splice.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Verifier/invalid-splice.ll:3:10: error: CHECK: expected string not found in input
# | ; CHECK: The splice index exceeds the range [-VL, VL-1] where VL is the known minimum number of elements in the vector
# | ^
# | <stdin>:1:1: note: scanning from here
# | The splice index exceeds the range [0, VL] where VL is the known minimum number of elements in the vector. For scalable vectors the minimum number of elements is determined from vscale_range.
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Verifier/invalid-splice.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: The splice index exceeds the range [0, VL] where VL is the known minimum number of elements in the vector. For scalable vectors the minimum number of elements is determined from vscale_range.
# | check:3 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 2: %1 = call <2 x double> @llvm.vector.splice.up.v2f64(<2 x double> %a, <2 x double> %b, i32 3)
# | check:3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 3: The splice index exceeds the range [0, VL] where VL is the known minimum number of elements in the vector. For scalable vectors the minimum number of elements is determined from vscale_range.
# | check:3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 4: %1 = call <vscale x 2 x double> @llvm.vector.splice.up.nxv2f64(<vscale x 2 x double> %a, <vscale x 2 x double> %b, i32 3)
# | check:3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 5: The splice index exceeds the range [0, VL] where VL is the known minimum number of elements in the vector. For scalable vectors the minimum number of elements is determined from vscale_range.
# | check:3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 6: %1 = call <vscale x 2 x double> @llvm.vector.splice.up.nxv2f64(<vscale x 2 x double> %a, <vscale x 2 x double> %b, i32 5)
# | check:3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 7: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt: -: error: input module is broken!
# | check:3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | >>>>>>
# `-----------------------------
# 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/170796
More information about the llvm-commits
mailing list