crash: Assertion failed: ((MeaningfulBitWidth.isScalable() || OrigValueBitWidth >= MeaningfulBitWidth) && "Meaningful bits not covered by the mapping"), function verify, file RegisterBankInfo.cpp

Run:main-bc8218b282-20261015-074651
Kind:crash
Category:Assertion failed: ((MeaningfulBitWidth.isScalable() || OrigValueBitWidth >= MeaningfulBitWidth) && "Meaningful bits not covered by the mapping"), function verify, file RegisterBankInfo.cpp
Occurrences:5 in 2 configs, 2 test files
Snippet from:calling-conv-ilp32d.ll @caller_double_ret via llvm-extract + llvm-reduce
Config:-mtriple=riscv32 -verify-machineinstrs -mattr=+d -target-abi ilp32d
Local check:reproduces at bc8218b282
Compiler Explorer:https://godbolt.org/z/osjGfscYe (llc-assertions-trunk, checked 2026-10-14 11:03 UTC): G reproduces

Snippet:

define i32 @caller_double_ret() {
  %1 = bitcast double 0.000000e+00 to i64
  %2 = trunc i64 %1 to i32
  ret i32 %2
}

Compiler Explorer panes:

PaneOptionsExitInstsstderr
GlobalISel-mtriple=riscv32 -verify-machineinstrs -mattr=+d -target-abi ilp32d -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel.*1340llc: /root/llvm-project/llvm/lib/CodeGen/RegisterBankInfo.cpp:567: bool llvm::RegisterBankInfo::ValueMapping::verify(const llvm::RegisterBankInfo&, llvm::TypeSize) const: Assertion `(MeaningfulBitWidth.isScalable() || OrigValueBitWidth >= MeaningfulBitWidth) && "Meaningful bits not covered by the mapping"' 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 -verify-machineinstrs -mattr=+d -target-abi ilp32d -global-isel=002-

Reproduce:

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

Local llc output:

llc: /home/runner/work/llvm-fuzz/llvm-fuzz/llvm-project/llvm/lib/CodeGen/RegisterBankInfo.cpp:569: bool llvm::RegisterBankInfo::ValueMapping::verify(const RegisterBankInfo &, TypeSize) const: Assertion `(MeaningfulBitWidth.isScalable() || OrigValueBitWidth >= MeaningfulBitWidth) && "Meaningful bits not covered by the mapping"' 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 -verify-machineinstrs -mattr=+d -target-abi ilp32d -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel.* -o -
1.	Running pass 'Function Pass Manager' on module '<stdin>'.
2.	Running pass 'RegBankSelect' on function '@caller_double_ret'
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       0x0000556ca6bee54b llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 43
1  llc       0x0000556ca6beb3f1 llvm::sys::RunSignalHandlers() + 369
2  llc       0x0000556ca6beefcb
3  libc.so.6 0x00007f9f46845330
4  libc.so.6 0x00007f9f4689ec0c pthread_kill + 284
5  libc.so.6 0x00007f9f4684527e gsignal + 30
6  libc.so.6 0x00007f9f468288ff abort + 223
7  libc.so.6 0x00007f9f4682881b
8  libc.so.6 0x00007f9f4683b517
9  llc       0x0000556ca72a7f1f llvm::RegisterBankInfo::ValueMapping::verify(llvm::RegisterBankInfo const&, llvm::TypeSize) const + 831
10 llc       0x0000556ca72a6c6b llvm::RegisterBankInfo::InstructionMapping::verify(llvm::MachineInstr const&) const + 235
11 llc       0x0000556ca8d52df4
12 llc       0x0000556ca8d52025 llvm::RegBankSelectLegacy::runOnMachineFunction(llvm::MachineFunction&) + 197
13 llc       0x0000556ca71b59ed llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 653
14 llc       0x0000556ca6f45d37 llvm::FPPassManager::runOnFunction(llvm::Function&) + 871
15 llc       0x0000556ca6f4e232 llvm::FPPassManager::runOnModule(llvm::Module&) + 50
16 llc       0x0000556ca6f46ae0 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 2000
17 llc       0x0000556ca6bf5ba8 llcMain + 12056
18 llc       0x0000556ca6b306af main + 63
19 libc.so.6 0x00007f9f4682a1ca
20 libc.so.6 0x00007f9f4682a28b __libc_start_main + 139
21 llc       0x0000556ca6b305a5 _start + 37

Occurrences (5):

InputFunctionConfig
calling-conv-ilp32d.ll-mtriple=riscv32 -verify-machineinstrs -mattr=+d -target-abi ilp32d
fpclamptosat.ll-mtriple=riscv32 -mattr=+f,+d -verify-machineinstrs -target-abi=ilp32d
calling-conv-ilp32d.6fc6958d2a.ll (mutant of calling-conv-ilp32d.ll)-mtriple=riscv32 -verify-machineinstrs -mattr=+d -target-abi ilp32d
fpclamptosat.2564079eff.ll (mutant of fpclamptosat.ll)-mtriple=riscv32 -mattr=+f,+d -verify-machineinstrs -target-abi=ilp32d
fpclamptosat.a6afc39844.ll (mutant of fpclamptosat.ll)-mtriple=riscv32 -mattr=+f,+d -verify-machineinstrs -target-abi=ilp32d

Generated 2026-10-15 08:05 UTC.