crash: Assertion failed: (getNumOpRegs(*Inst, InstFlagIdx) == 1 && "Wrong flag"), function lowerInlineAsm, file InlineAsmLowering.cpp

Run:main-04ca53e65f-20261014-105623
Kind:crash
Category:Assertion failed: (getNumOpRegs(*Inst, InstFlagIdx) == 1 && "Wrong flag"), function lowerInlineAsm, file InlineAsmLowering.cpp
Occurrences:12 in 2 configs, 2 test files
Snippet from:rv32-inline-asm-pairs.ll @test_Pr_wide_scalar_inout via llvm-extract + llvm-reduce
Config:-mtriple=riscv32 -verify-machineinstrs
Local check:reproduces at 04ca53e65f
Compiler Explorer:https://godbolt.org/z/f6Pe8cEj3 (llc-assertions-trunk, checked 2026-10-14 11:03 UTC): G reproduces

Snippet:

define { ptr, i64 } @test_Pr_wide_scalar_inout() {
entry:
  %0 = call { ptr, i64 } asm sideeffect "/* $0; $1 */", "=r,=R,0,1"(ptr null, i64 0)
  ret { ptr, i64 } %0
}

Compiler Explorer panes:

PaneOptionsExitInstsstderr
GlobalISel-mtriple=riscv32 -verify-machineinstrs -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel.*1340llc: /root/llvm-project/llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp:409: bool llvm::InlineAsmLowering::lowerInlineAsm(llvm::MachineIRBuilder&, const llvm::CallBase&, std::function<llvm::ArrayRef<llvm::Register>(const llvm::Value&)>) const: Assertion `getNumOpRegs(*Inst, InstFlagIdx) == 1 && "Wrong flag"' 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 -global-isel=008-

Reproduce:

llc -mtriple=riscv32 -verify-machineinstrs -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel.* snippet.ll -o -
llc -mtriple=riscv32 -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/InlineAsmLowering.cpp:409: bool llvm::InlineAsmLowering::lowerInlineAsm(MachineIRBuilder &, const CallBase &, std::function<ArrayRef<Register> (const Value &)>) const: Assertion `getNumOpRegs(*Inst, InstFlagIdx) == 1 && "Wrong flag"' 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 -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_Pr_wide_scalar_inout'
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       0x0000563e3add479b llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 43
1  llc       0x0000563e3add1641 llvm::sys::RunSignalHandlers() + 369
2  llc       0x0000563e3add521b
3  libc.so.6 0x00007fa91dc45330
4  libc.so.6 0x00007fa91dc9ec0c pthread_kill + 284
5  libc.so.6 0x00007fa91dc4527e gsignal + 30
6  libc.so.6 0x00007fa91dc288ff abort + 223
7  libc.so.6 0x00007fa91dc2881b
8  libc.so.6 0x00007fa91dc3b517
9  llc       0x0000563e3ceb4534 llvm::InlineAsmLowering::lowerInlineAsm(llvm::MachineIRBuilder&, llvm::CallBase const&, std::function<llvm::ArrayRef<llvm::Register> (llvm::Value const&)>) const + 11108
10 llc       0x0000563e3cea353e llvm::IRTranslatorImpl::translateInlineAsm(llvm::CallBase const&, llvm::MachineIRBuilder&) + 110
11 llc       0x0000563e3cea37ad llvm::IRTranslatorImpl::translateCall(llvm::User const&, llvm::MachineIRBuilder&) + 445
12 llc       0x0000563e3ceac51d 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
13 llc       0x0000563e3cead50d llvm::IRTranslatorLegacy::runOnMachineFunction(llvm::MachineFunction&) + 733
14 llc       0x0000563e3b39bd2d llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 653
15 llc       0x0000563e3b12bcd7 llvm::FPPassManager::runOnFunction(llvm::Function&) + 871
16 llc       0x0000563e3b1341d2 llvm::FPPassManager::runOnModule(llvm::Module&) + 50
17 llc       0x0000563e3b12ca80 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 2000
18 llc       0x0000563e3addbdf8 llcMain + 12056
19 llc       0x0000563e3ad1762f main + 63
20 libc.so.6 0x00007fa91dc2a1ca
21 libc.so.6 0x00007fa91dc2a28b __libc_start_main + 139
22 llc       0x0000563e3ad17525 _start + 37

Occurrences (12):

InputFunctionConfig
rv32-inline-asm-pairs.ll-mtriple=riscv32 -verify-machineinstrs
rv64-inline-asm-pairs.ll-mtriple=riscv64 -verify-machineinstrs
rv32-inline-asm-pairs.372ce90a89.ll (mutant of rv32-inline-asm-pairs.ll)-mtriple=riscv32 -verify-machineinstrs
rv32-inline-asm-pairs.64cbbc7229.ll (mutant of rv32-inline-asm-pairs.ll)-mtriple=riscv32 -verify-machineinstrs
rv32-inline-asm-pairs.73a3a4d038.ll (mutant of rv32-inline-asm-pairs.ll)-mtriple=riscv32 -verify-machineinstrs
rv32-inline-asm-pairs.a5866451ae.ll (mutant of rv32-inline-asm-pairs.ll)-mtriple=riscv32 -verify-machineinstrs
rv32-inline-asm-pairs.c5db70aa2a.ll (mutant of rv32-inline-asm-pairs.ll)-mtriple=riscv32 -verify-machineinstrs
rv64-inline-asm-pairs.20d24ae178.ll (mutant of rv64-inline-asm-pairs.ll)-mtriple=riscv64 -verify-machineinstrs
rv64-inline-asm-pairs.6a922c70c0.ll (mutant of rv64-inline-asm-pairs.ll)-mtriple=riscv64 -verify-machineinstrs
rv64-inline-asm-pairs.855514f876.ll (mutant of rv64-inline-asm-pairs.ll)-mtriple=riscv64 -verify-machineinstrs
rv64-inline-asm-pairs.bb32bbd5f1.ll (mutant of rv64-inline-asm-pairs.ll)-mtriple=riscv64 -verify-machineinstrs
rv64-inline-asm-pairs.e6f84b1ca6.ll (mutant of rv64-inline-asm-pairs.ll)-mtriple=riscv64 -verify-machineinstrs

Generated 2026-10-15 08:05 UTC.