fallback: translate: call llvm.riscv.vloxseg2.triscv.vector.tuple_nxv32i8_2t.p0.nxv16i32.i64
| Run: | main-04ca53e65f-20261014-113325 |
| Kind: | fallback |
| Category: | translate: call llvm.riscv.vloxseg2.triscv.vector.tuple_nxv32i8_2t.p0.nxv16i32.i64 |
| Occurrences: | 10 in 2 configs, 1 test files |
| Snippet from: | regalloc-last-chance-recoloring-failure.ll @last_chance_recoloring_failure via llvm-extract |
| Config: | -mtriple=riscv64 -mattr=+f,+m,+zfh,+zvfh -enable-subreg-liveness=false |
| Local check: | reproduces at 04ca53e65f |
| Compiler Explorer: | not uploaded (over --godbolt-limit or disabled) |
Snippet:
define void @last_chance_recoloring_failure() {
entry:
%i = call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vloxseg2.triscv.vector.tuple_nxv32i8_2t.p0.nxv16i32.i64(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr nonnull poison, <vscale x 16 x i32> poison, i64 55, i64 4)
%i1 = tail call <vscale x 16 x half> @llvm.riscv.tuple.extract.nxv16f16.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %i, i32 0)
%i2 = call <vscale x 16 x float> @llvm.riscv.vfwadd.mask.nxv16f32.nxv16f16.nxv16f16.i64(<vscale x 16 x float> poison, <vscale x 16 x half> poison, <vscale x 16 x half> poison, <vscale x 16 x i1> zeroinitializer, i64 7, i64 36, i64 0)
call void @func()
%i3 = call <vscale x 16 x i16> @llvm.riscv.vrgather.vv.mask.nxv16i16.i64(<vscale x 16 x i16> poison, <vscale x 16 x i16> poison, <vscale x 16 x i16> poison, <vscale x 16 x i1> poison, i64 32, i64 0)
%i4 = call <vscale x 16 x float> @llvm.riscv.vfwsub.w.nxv16f32.nxv16f16.i64(<vscale x 16 x float> poison, <vscale x 16 x float> %i2, <vscale x 16 x half> %i1, i64 7, i64 36)
%i5 = call <vscale x 16 x i16> @llvm.riscv.vssubu.mask.nxv16i16.nxv16i16.i64(<vscale x 16 x i16> %i3, <vscale x 16 x i16> %i3, <vscale x 16 x i16> poison, <vscale x 16 x i1> poison, i64 32, i64 0)
%i6 = call <vscale x 16 x float> @llvm.riscv.vfdiv.mask.nxv16f32.nxv16f32.i64(<vscale x 16 x float> %i4, <vscale x 16 x float> %i2, <vscale x 16 x float> poison, <vscale x 16 x i1> poison, i64 7, i64 36, i64 0)
call void @llvm.riscv.vse.nxv16f32.p0.i64(<vscale x 16 x float> %i6, ptr nonnull poison, i64 36)
ret void
}
declare void @func()
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <vscale x 16 x half> @llvm.riscv.tuple.extract.nxv16f16.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2), i32 immarg) #0
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(none)
declare <vscale x 16 x float> @llvm.riscv.vfdiv.mask.nxv16f32.nxv16f32.i64(<vscale x 16 x float>, <vscale x 16 x float>, <vscale x 16 x float>, <vscale x 16 x i1>, i64 immarg, i64, i64 immarg) #1
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(none)
declare <vscale x 16 x float> @llvm.riscv.vfwadd.mask.nxv16f32.nxv16f16.nxv16f16.i64(<vscale x 16 x float>, <vscale x 16 x half>, <vscale x 16 x half>, <vscale x 16 x i1>, i64 immarg, i64, i64 immarg) #1
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(none)
declare <vscale x 16 x float> @llvm.riscv.vfwsub.w.nxv16f32.nxv16f16.i64(<vscale x 16 x float>, <vscale x 16 x float>, <vscale x 16 x half>, i64 immarg, i64) #1
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(read)
declare target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vloxseg2.triscv.vector.tuple_nxv32i8_2t.p0.nxv16i32.i64(target("riscv.vector.tuple", <vscale x 32 x i8>, 2), ptr captures(none), <vscale x 16 x i32>, i64, i64 immarg) #2
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(none)
declare <vscale x 16 x i16> @llvm.riscv.vrgather.vv.mask.nxv16i16.i64(<vscale x 16 x i16>, <vscale x 16 x i16>, <vscale x 16 x i16>, <vscale x 16 x i1>, i64, i64 immarg) #1
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: write)
declare void @llvm.riscv.vse.nxv16f32.p0.i64(<vscale x 16 x float>, ptr captures(none), i64) #3
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(none)
declare <vscale x 16 x i16> @llvm.riscv.vssubu.mask.nxv16i16.nxv16i16.i64(<vscale x 16 x i16>, <vscale x 16 x i16>, <vscale x 16 x i16>, <vscale x 16 x i1>, i64, i64 immarg) #1
attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(none) }
attributes #2 = { nocallback nofree nosync nounwind willreturn memory(read) }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: write) }
Reproduce:
llc -mtriple=riscv64 -mattr=+f,+m,+zfh,+zvfh -enable-subreg-liveness=false -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel.* snippet.ll -o -
llc -mtriple=riscv64 -mattr=+f,+m,+zfh,+zvfh -enable-subreg-liveness=false -global-isel=0 snippet.ll -o -
Local llc output:
remark: <unknown>:0:0: unable to translate instruction: call llvm.riscv.vloxseg2.triscv.vector.tuple_nxv32i8_2t.p0.nxv16i32.i64: ' %i = call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vloxseg2.triscv.vector.tuple_nxv32i8_2t.p0.nxv16i32.i64(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr nonnull poison, <vscale x 16 x i32> poison, i64 55, i64 4)' (in function: last_chance_recoloring_failure)
warning: Instruction selection used fallback path for last_chance_recoloring_failure
Occurrences (10):
| Input | Function | Config |
|---|
| regalloc-last-chance-recoloring-failure.ll | last_chance_recoloring_failure | -mtriple=riscv64 -mattr=+f,+m,+zfh,+zvfh -enable-subreg-liveness=false |
| regalloc-last-chance-recoloring-failure.ll | last_chance_recoloring_failure | -mtriple=riscv64 -mattr=+f,+m,+zfh,+zvfh -enable-subreg-liveness=true |
| regalloc-last-chance-recoloring-failure.1bfc8fafad.ll (mutant of regalloc-last-chance-recoloring-failure.ll) | last_chance_recoloring_failure | -mtriple=riscv64 -mattr=+f,+m,+zfh,+zvfh -enable-subreg-liveness=false |
| regalloc-last-chance-recoloring-failure.2880fd4dcb.ll (mutant of regalloc-last-chance-recoloring-failure.ll) | last_chance_recoloring_failure | -mtriple=riscv64 -mattr=+f,+m,+zfh,+zvfh -enable-subreg-liveness=true |
| regalloc-last-chance-recoloring-failure.2cf043a208.ll (mutant of regalloc-last-chance-recoloring-failure.ll) | last_chance_recoloring_failure | -mtriple=riscv64 -mattr=+f,+m,+zfh,+zvfh -enable-subreg-liveness=true |
| regalloc-last-chance-recoloring-failure.51fbc40528.ll (mutant of regalloc-last-chance-recoloring-failure.ll) | last_chance_recoloring_failure | -mtriple=riscv64 -mattr=+f,+m,+zfh,+zvfh -enable-subreg-liveness=false |
| regalloc-last-chance-recoloring-failure.55489f2d38.ll (mutant of regalloc-last-chance-recoloring-failure.ll) | last_chance_recoloring_failure | -mtriple=riscv64 -mattr=+f,+m,+zfh,+zvfh -enable-subreg-liveness=true |
| regalloc-last-chance-recoloring-failure.7446db4cf2.ll (mutant of regalloc-last-chance-recoloring-failure.ll) | last_chance_recoloring_failure | -mtriple=riscv64 -mattr=+f,+m,+zfh,+zvfh -enable-subreg-liveness=false |
| regalloc-last-chance-recoloring-failure.c013df4af8.ll (mutant of regalloc-last-chance-recoloring-failure.ll) | last_chance_recoloring_failure | -mtriple=riscv64 -mattr=+f,+m,+zfh,+zvfh -enable-subreg-liveness=false |
| regalloc-last-chance-recoloring-failure.c23a7d8aaa.ll (mutant of regalloc-last-chance-recoloring-failure.ll) | last_chance_recoloring_failure | -mtriple=riscv64 -mattr=+f,+m,+zfh,+zvfh -enable-subreg-liveness=true |
Generated 2026-10-15 08:05 UTC.