crash: Assertion failed: (VA.getLocVT() == MVT::i32 && VAHi.getLocVT() == MVT::i32 && VA.getValVT() == MVT::f64 && VAHi.getValVT() == MVT::f64 && "unexpected custom value"), function int, file RISCVCallLowering.cpp

Run:explore-04ca53e65f-20261014-114124
Kind:crash
Category:Assertion failed: (VA.getLocVT() == MVT::i32 && VAHi.getLocVT() == MVT::i32 && VA.getValVT() == MVT::f64 && VAHi.getValVT() == MVT::f64 && "unexpected custom value"), function int, file RISCVCallLowering.cpp
Occurrences:76 in 4 configs, 15 test files
Snippet from:rvp-reverse.ll @test_prev_v2i32 via llvm-extract + llvm-reduce
Config:-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
Local check:reproduces at 04ca53e65f
Compiler Explorer:https://godbolt.org/z/5YeqK48vf (llc-assertions-trunk, checked 2026-10-14 11:03 UTC): G reproduces

Snippet:

define <2 x i32> @test_prev_v2i32() {
  ret <2 x i32> zeroinitializer
}

Compiler Explorer panes:

PaneOptionsExitInstsstderr
GlobalISel-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel.*1340llc: /root/llvm-project/llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp:124: virtual unsigned int {anonymous}::RISCVOutgoingValueHandler::assignCustomValue(llvm::CallLowering::ArgInfo&, llvm::ArrayRef<llvm::CCValAssign>, std::function<void()>*): Assertion `VA.getLocVT() == MVT::i32 && VAHi.getLocVT() == MVT::i32 && VA.getValVT() == MVT::f64 && VAHi.getValVT() == MVT::f64 && "unexpected custom value"' 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=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs -global-isel=002-

Reproduce:

llc -mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel.* snippet.ll -o -
llc -mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs -global-isel=0 snippet.ll -o -

Local llc output:

llc: /home/runner/work/llvm-fuzz/llvm-fuzz/llvm-project/llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp:126: virtual unsigned int (anonymous namespace)::RISCVOutgoingValueHandler::assignCustomValue(CallLowering::ArgInfo &, ArrayRef<CCValAssign>, std::function<void ()> *): Assertion `VA.getLocVT() == MVT::i32 && VAHi.getLocVT() == MVT::i32 && VA.getValVT() == MVT::f64 && VAHi.getValVT() == MVT::f64 && "unexpected custom value"' 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=riscv32 -mattr=+experimental-p,+m,+zbb -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 '@test_prev_v2i32'
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       0x000056140a55a79b llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 43
1  llc       0x000056140a557641 llvm::sys::RunSignalHandlers() + 369
2  llc       0x000056140a55b21b
3  libc.so.6 0x00007f6295c45330
4  libc.so.6 0x00007f6295c9ec0c pthread_kill + 284
5  libc.so.6 0x00007f6295c4527e gsignal + 30
6  libc.so.6 0x00007f6295c288ff abort + 223
7  libc.so.6 0x00007f6295c2881b
8  libc.so.6 0x00007f6295c3b517
9  llc       0x000056140b776595
10 llc       0x000056140c5c5ee0 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
11 llc       0x000056140b77346d
12 llc       0x000056140c61b03f llvm::IRTranslatorImpl::translateRet(llvm::User const&, llvm::MachineIRBuilder&) + 239
13 llc       0x000056140c63251d 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*) + 4253
14 llc       0x000056140c63350d llvm::IRTranslatorLegacy::runOnMachineFunction(llvm::MachineFunction&) + 733
15 llc       0x000056140ab21d2d llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 653
16 llc       0x000056140a8b1cd7 llvm::FPPassManager::runOnFunction(llvm::Function&) + 871
17 llc       0x000056140a8ba1d2 llvm::FPPassManager::runOnModule(llvm::Module&) + 50
18 llc       0x000056140a8b2a80 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 2000
19 llc       0x000056140a561df8 llcMain + 12056
20 llc       0x000056140a49d62f main + 63
21 libc.so.6 0x00007f6295c2a1ca
22 libc.so.6 0x00007f6295c2a28b __libc_start_main + 139
23 llc       0x000056140a49d525 _start + 37

Occurrences (76) (first 50):

InputFunctionConfig
calling-conv-p-ext-vector.ll-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-bitreverse-zbkb.ll-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb,+zbkb -verify-machineinstrs
rvp-insert-subvector.ll-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-mul-parts-acc-fold.ll-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-narrowing-shift.ll-mtriple=riscv32 -mattr=+experimental-p -verify-machineinstrs
rvp-narrowing-zip.ll-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-reverse.ll-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-simd-32.ll-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-simd-64.ll-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-widening-add-acc.ll-mtriple=riscv32 -mattr=+experimental-p -verify-machineinstrs
rvp-widening-convert.ll-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-widening-shift.ll-mtriple=riscv32 -mattr=+experimental-p -verify-machineinstrs
rvp-widening-sub-acc.ll-mtriple=riscv32 -mattr=+experimental-p -verify-machineinstrs
rvp-zip.ll-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
calling-conv-p-ext-vector.5ee2f655c5.ll (mutant of calling-conv-p-ext-vector.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
calling-conv-p-ext-vector.d9c62a7def.ll (mutant of calling-conv-p-ext-vector.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
fastcc-bf16.4cd60633f7.ll (mutant of fastcc-bf16.ll)-mtriple=riscv32 -mattr=+zfbfmin -target-abi=ilp32 -verify-machineinstrs
fastcc-bf16.54f10a0b0b.ll (mutant of fastcc-bf16.ll)-mtriple=riscv32 -mattr=+zfbfmin -target-abi=ilp32 -verify-machineinstrs
fastcc-bf16.bf47069b20.ll (mutant of fastcc-bf16.ll)-mtriple=riscv32 -mattr=+zfbfmin -target-abi=ilp32 -verify-machineinstrs
rvp-bitreverse-zbkb.0dcbd2bcaa.ll (mutant of rvp-bitreverse-zbkb.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb,+zbkb -verify-machineinstrs
rvp-bitreverse-zbkb.0e6599f961.ll (mutant of rvp-bitreverse-zbkb.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb,+zbkb -verify-machineinstrs
rvp-bitreverse-zbkb.2409b5e9bd.ll (mutant of rvp-bitreverse-zbkb.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb,+zbkb -verify-machineinstrs
rvp-bitreverse-zbkb.e3fdc7daee.ll (mutant of rvp-bitreverse-zbkb.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb,+zbkb -verify-machineinstrs
rvp-insert-subvector.0215eb6ba1.ll (mutant of rvp-insert-subvector.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-insert-subvector.8daf1d7e7a.ll (mutant of rvp-insert-subvector.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-insert-subvector.97c2e1511f.ll (mutant of rvp-insert-subvector.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-insert-subvector.bd5a9cdee6.ll (mutant of rvp-insert-subvector.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-insert-subvector.d6e4148f45.ll (mutant of rvp-insert-subvector.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-mul-parts-acc-fold.41e44f93ef.ll (mutant of rvp-mul-parts-acc-fold.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-mul-parts-acc-fold.5d5e3e7437.ll (mutant of rvp-mul-parts-acc-fold.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-mul-parts-acc-fold.777c56e166.ll (mutant of rvp-mul-parts-acc-fold.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-mul-parts-acc-fold.c0a2fc6c7b.ll (mutant of rvp-mul-parts-acc-fold.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-mul-parts-acc-fold.c99f2f5c6f.ll (mutant of rvp-mul-parts-acc-fold.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-narrowing-shift.1871c83961.ll (mutant of rvp-narrowing-shift.ll)-mtriple=riscv32 -mattr=+experimental-p -verify-machineinstrs
rvp-narrowing-shift.53d7d65363.ll (mutant of rvp-narrowing-shift.ll)-mtriple=riscv32 -mattr=+experimental-p -verify-machineinstrs
rvp-narrowing-shift.8a9b22346d.ll (mutant of rvp-narrowing-shift.ll)-mtriple=riscv32 -mattr=+experimental-p -verify-machineinstrs
rvp-narrowing-shift.bf42e84dc9.ll (mutant of rvp-narrowing-shift.ll)-mtriple=riscv32 -mattr=+experimental-p -verify-machineinstrs
rvp-narrowing-shift.c9dd27ca37.ll (mutant of rvp-narrowing-shift.ll)-mtriple=riscv32 -mattr=+experimental-p -verify-machineinstrs
rvp-narrowing-zip.157a36ecb7.ll (mutant of rvp-narrowing-zip.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-narrowing-zip.854e2aff59.ll (mutant of rvp-narrowing-zip.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-narrowing-zip.af68716c83.ll (mutant of rvp-narrowing-zip.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-narrowing-zip.ec17119f3d.ll (mutant of rvp-narrowing-zip.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-reverse.46f0a23211.ll (mutant of rvp-reverse.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-reverse.d0c919f4d4.ll (mutant of rvp-reverse.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-reverse.d607b76cb8.ll (mutant of rvp-reverse.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-reverse.e81d0360df.ll (mutant of rvp-reverse.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-simd-64.0ae3037d13.ll (mutant of rvp-simd-64.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-simd-64.b9aab43ff1.ll (mutant of rvp-simd-64.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-simd-64.d2370eefd7.ll (mutant of rvp-simd-64.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-simd-64.e59f3f19a6.ll (mutant of rvp-simd-64.ll)-mtriple=riscv32 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs

Generated 2026-10-15 08:05 UTC.