crash: Assertion failed: (SrcTy.isVector() && "mismatched cast between vector and non-vector"), function validateTruncExt, file MachineIRBuilder.cpp

Run:main-bc8218b282-20261015-074651
Kind:crash
Category:Assertion failed: (SrcTy.isVector() && "mismatched cast between vector and non-vector"), function validateTruncExt, file MachineIRBuilder.cpp
Occurrences:11 in 2 configs, 2 test files
Snippet from:calling-conv-vector-float.ll @callee_v2f32 via llvm-extract + llvm-reduce
Config:-mtriple=riscv64 -mattr=+f -target-abi=lp64 -verify-machineinstrs
Local check:reproduces at bc8218b282
Compiler Explorer:https://godbolt.org/z/KaW5c63q1 (llc-assertions-trunk, checked 2026-10-14 11:03 UTC): G reproduces

Snippet:

define <2 x float> @callee_v2f32(<2 x float> %x) {
  ret <2 x float> %x
}

Compiler Explorer panes:

PaneOptionsExitInstsstderr
GlobalISel-mtriple=riscv64 -mattr=+f -target-abi=lp64 -verify-machineinstrs -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel.*1340llc: /root/llvm-project/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp:1271: void llvm::MachineIRBuilder::validateTruncExt(llvm::LLT, llvm::LLT, bool): Assertion `SrcTy.isVector() && "mismatched cast between vector and non-vector"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
Stack dump:
SelectionDAG (control)-mtriple=riscv64 -mattr=+f -target-abi=lp64 -verify-machineinstrs -global-isel=001-

Reproduce:

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

Local llc output:

llc: /home/runner/work/llvm-fuzz/llvm-fuzz/llvm-project/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp:1271: void llvm::MachineIRBuilder::validateTruncExt(const LLT, const LLT, bool): Assertion `SrcTy.isVector() && "mismatched cast between vector and non-vector"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
Stack dump:
0.	Program arguments: /home/runner/work/llvm-fuzz/llvm-fuzz/llvm-project/build/bin/llc -mtriple=riscv64 -mattr=+f -target-abi=lp64 -verify-machineinstrs -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel.* -o -
1.	Running pass 'Function Pass Manager' on module '<stdin>'.
2.	Running pass 'IRTranslator' on function '@callee_v2f32'
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  llc       0x0000558ead58454b llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 43
1  llc       0x0000558ead5813f1 llvm::sys::RunSignalHandlers() + 369
2  llc       0x0000558ead584fcb
3  libc.so.6 0x00007f4860e45330
4  libc.so.6 0x00007f4860e9ec0c pthread_kill + 284
5  libc.so.6 0x00007f4860e4527e gsignal + 30
6  libc.so.6 0x00007f4860e288ff abort + 223
7  libc.so.6 0x00007f4860e2881b
8  libc.so.6 0x00007f4860e3b517
9  llc       0x0000558eaf6e4089 llvm::MachineIRBuilder::validateTruncExt(llvm::LLT, llvm::LLT, bool) + 905
10 llc       0x0000558eaf6e4f32 llvm::MachineIRBuilder::buildInstr(unsigned int, llvm::ArrayRef<llvm::DstOp>, llvm::ArrayRef<llvm::SrcOp>, std::optional<unsigned int>) + 3314
11 llc       0x0000558eaf5fe003 llvm::CSEMIRBuilder::buildInstr(unsigned int, llvm::ArrayRef<llvm::DstOp>, llvm::ArrayRef<llvm::SrcOp>, std::optional<unsigned int>) + 3091
12 llc       0x0000558eaf6e29b1 llvm::MachineIRBuilder::buildTrunc(llvm::DstOp const&, llvm::SrcOp const&, std::optional<unsigned int>) + 33
13 llc       0x0000558eae7a24ba
14 llc       0x0000558eaf5f3d90 llvm::CallLowering::handleAssignments(llvm::CallLowering::ValueHandler&, llvm::SmallVectorImpl<llvm::CallLowering::ArgInfo>&, llvm::CCState&, llvm::SmallVectorImpl<llvm::CCValAssign>&, llvm::MachineIRBuilder&, llvm::ArrayRef<llvm::Register>) const + 928
15 llc       0x0000558eae79f6ac
16 llc       0x0000558eaf660180 llvm::IRTranslatorImpl::runOnMachineFunction(llvm::MachineFunction&, llvm::function_ref<llvm::GISelCSEInfo* ()>, bool, llvm::function_ref<llvm::AAResults* ()>, llvm::function_ref<llvm::BranchProbabilityInfo* ()>, llvm::function_ref<llvm::AssumptionCache* ()>, llvm::TargetLibraryInfo*, llvm::LibcallLoweringInfo const*, llvm::SSPLayoutInfo*) + 3552
17 llc       0x0000558eaf66142d llvm::IRTranslatorLegacy::runOnMachineFunction(llvm::MachineFunction&) + 733
18 llc       0x0000558eadb4b9ed llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 653
19 llc       0x0000558ead8dbd37 llvm::FPPassManager::runOnFunction(llvm::Function&) + 871
20 llc       0x0000558ead8e4232 llvm::FPPassManager::runOnModule(llvm::Module&) + 50
21 llc       0x0000558ead8dcae0 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 2000
22 llc       0x0000558ead58bba8 llcMain + 12056
23 llc       0x0000558ead4c66af main + 63
24 libc.so.6 0x00007f4860e2a1ca
25 libc.so.6 0x00007f4860e2a28b __libc_start_main + 139
26 llc       0x0000558ead4c65a5 _start + 37

Occurrences (11):

InputFunctionConfig
calling-conv-vector-float.ll-mtriple=riscv64 -mattr=+f -target-abi=lp64 -verify-machineinstrs
fastcc-half.ll-mtriple=riscv32 -mattr=+zfhmin -target-abi=ilp32 -verify-machineinstrs
calling-conv-vector-float.273419ccbd.ll (mutant of calling-conv-vector-float.ll)-mtriple=riscv64 -mattr=+f -target-abi=lp64 -verify-machineinstrs
calling-conv-vector-float.6706ac67e4.ll (mutant of calling-conv-vector-float.ll)-mtriple=riscv64 -mattr=+f -target-abi=lp64 -verify-machineinstrs
calling-conv-vector-float.9bb61270ab.ll (mutant of calling-conv-vector-float.ll)-mtriple=riscv64 -mattr=+f -target-abi=lp64 -verify-machineinstrs
calling-conv-vector-float.ddddc36b36.ll (mutant of calling-conv-vector-float.ll)-mtriple=riscv64 -mattr=+f -target-abi=lp64 -verify-machineinstrs
calling-conv-vector-float.e72a71a054.ll (mutant of calling-conv-vector-float.ll)-mtriple=riscv64 -mattr=+f -target-abi=lp64 -verify-machineinstrs
fastcc-half.250e9f6ffa.ll (mutant of fastcc-half.ll)-mtriple=riscv32 -mattr=+zfhmin -target-abi=ilp32 -verify-machineinstrs
fastcc-half.5ab7cd7aac.ll (mutant of fastcc-half.ll)-mtriple=riscv32 -mattr=+zfhmin -target-abi=ilp32 -verify-machineinstrs
fastcc-half.7ae41882d4.ll (mutant of fastcc-half.ll)-mtriple=riscv32 -mattr=+zfhmin -target-abi=ilp32 -verify-machineinstrs
fastcc-half.c661e092d3.ll (mutant of fastcc-half.ll)-mtriple=riscv32 -mattr=+zfhmin -target-abi=ilp32 -verify-machineinstrs

Generated 2026-10-15 08:05 UTC.