fallback: translate: call llvm.riscv.vlseg2.triscv.vector.tuple_nxv8i8_2t.p0.i64

Run:main-bc8218b282-20261015-074651
Kind:fallback
Category:translate: call llvm.riscv.vlseg2.triscv.vector.tuple_nxv8i8_2t.p0.i64
Occurrences:3 in 1 configs, 1 test files
Snippet from:zero-call-used-regs-v.ll @load_segmented via llvm-extract
Config:-verify-machineinstrs -mtriple=riscv64 -mattr=+v
Local check:reproduces at bc8218b282
Compiler Explorer:not uploaded (over --godbolt-limit or disabled)

Snippet:

define <8 x i8> @load_segmented(ptr %base, ptr %out, <8 x i8> %use_v8) #0 {
entry:
  %tuple = call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlseg2.triscv.vector.tuple_nxv8i8_2t.p0.i64(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i64 0, i64 3)
  %v0 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %tuple, i32 0)
  store <vscale x 8 x i8> %v0, ptr %out, align 8
  ret <8 x i8> %use_v8
}

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2), i32 immarg) #1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: read)
declare target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlseg2.triscv.vector.tuple_nxv8i8_2t.p0.i64(target("riscv.vector.tuple", <vscale x 8 x i8>, 2), ptr captures(none), i64, i64 immarg) #2

attributes #0 = { "zero-call-used-regs"="used" }
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: read) }

Reproduce:

llc -verify-machineinstrs -mtriple=riscv64 -mattr=+v -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel.* snippet.ll -o -
llc -verify-machineinstrs -mtriple=riscv64 -mattr=+v -global-isel=0 snippet.ll -o -

Local llc output:

remark: <unknown>:0:0: unable to translate instruction: call llvm.riscv.vlseg2.triscv.vector.tuple_nxv8i8_2t.p0.i64: '  %tuple = call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlseg2.triscv.vector.tuple_nxv8i8_2t.p0.i64(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i64 0, i64 3)' (in function: load_segmented)
warning: Instruction selection used fallback path for load_segmented

Occurrences (3):

InputFunctionConfig
zero-call-used-regs-v.llload_segmented-verify-machineinstrs -mtriple=riscv64 -mattr=+v
zero-call-used-regs-v.4c55899875.ll (mutant of zero-call-used-regs-v.ll)load_segmented-verify-machineinstrs -mtriple=riscv64 -mattr=+v
zero-call-used-regs-v.57a0b7fa05.ll (mutant of zero-call-used-regs-v.ll)load_segmented-verify-machineinstrs -mtriple=riscv64 -mattr=+v

Generated 2026-10-15 08:05 UTC.