crash: error: <unknown>:0:0: ran out of registers during register allocation in function 'relax_jal_spill_64'

Run:explore-bc8218b282-20261015-075519
Kind:crash
Category:error: <unknown>:0:0: ran out of registers during register allocation in function 'relax_jal_spill_64' NEW
Occurrences:3 in 2 configs, 1 test files
Snippet from:branch-relaxation-rv64.0a08b63bd3.ll (mutant of branch-relaxation-rv64.ll) @relax_jal_spill_64 via llvm-extract + llvm-reduce
Config:-mtriple=riscv64 -relocation-model=pic -verify-machineinstrs
Local check:reproduces at bc8218b282
Compiler Explorer:https://godbolt.org/z/rExbnM9oj (llc-assertions-trunk, checked 2026-10-15 08:04 UTC): G reproduces

Snippet:

@G = external global i64

define void @relax_jal_spill_64() {
branch_2:
  %LGV = load i64, ptr @G, align 4
  call void asm sideeffect "# reg use $0", "{ra}"(i64 0)
  call void asm sideeffect "# reg use $0", "{t0}"(i64 0)
  call void asm sideeffect "# reg use $0", "{t1}"(i64 0)
  call void asm sideeffect "# reg use $0", "{t2}"(i64 0)
  call void asm sideeffect "# reg use $0", "{s0}"(i64 0)
  call void asm sideeffect "# reg use $0", "{s1}"(i64 0)
  call void asm sideeffect "# reg use $0", "{a0}"(i64 0)
  call void asm sideeffect "# reg use $0", "{a1}"(i64 0)
  call void asm sideeffect "# reg use $0", "{a2}"(i64 0)
  call void asm sideeffect "# reg use $0", "{a3}"(i64 0)
  call void asm sideeffect "# reg use $0", "{a4}"(i64 0)
  call void asm sideeffect "# reg use $0", "{a5}"(i64 0)
  call void asm sideeffect "# reg use $0", "{a6}"(i64 0)
  call void asm sideeffect "# reg use $0", "{a7}"(i64 0)
  call void asm sideeffect "# reg use $0", "{s2}"(i64 0)
  call void asm sideeffect "# reg use $0", "{s3}"(i64 0)
  call void asm sideeffect "# reg use $0", "{s4}"(i64 0)
  call void asm sideeffect "# reg use $0", "{s5}"(i64 0)
  call void asm sideeffect "# reg use $0", "{s6}"(i64 0)
  call void asm sideeffect "# reg use $0", "{s7}"(i64 0)
  call void asm sideeffect "# reg use $0", "{s8}"(i64 0)
  call void asm sideeffect "# reg use $0", "{s9}"(i64 0)
  call void asm sideeffect "# reg use $0", "{s10}"(i64 0)
  call void asm sideeffect "# reg use $0", "{s11}"(i64 0)
  call void asm sideeffect "# reg use $0", "{t3}"(i64 0)
  call void asm sideeffect "# reg use $0", "{t4}"(i64 0)
  call void asm sideeffect "# reg use $0", "{t5}"(i64 0)
  call void asm sideeffect "# reg use $0", "{t6}"(i64 0)
  store i64 %LGV, ptr null, align 4
  ret void
}

Compiler Explorer panes:

PaneOptionsExitInstsstderr
GlobalISel-mtriple=riscv64 -relocation-model=pic -verify-machineinstrs -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel.*10error: <unknown>:0:0: ran out of registers during register allocation in function 'relax_jal_spill_64'
SelectionDAG (control)-mtriple=riscv64 -relocation-model=pic -verify-machineinstrs -global-isel=0065-

Reproduce:

llc -mtriple=riscv64 -relocation-model=pic -verify-machineinstrs -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel.* snippet.ll -o -
llc -mtriple=riscv64 -relocation-model=pic -verify-machineinstrs -global-isel=0 snippet.ll -o -

Local llc output:

error: <unknown>:0:0: ran out of registers during register allocation in function 'relax_jal_spill_64'

Occurrences (3):

InputFunctionConfig
branch-relaxation-rv64.0a08b63bd3.ll (mutant of branch-relaxation-rv64.ll)-mtriple=riscv64 -relocation-model=pic -verify-machineinstrs
branch-relaxation-rv64.977f2efb0f.ll (mutant of branch-relaxation-rv64.ll)-mtriple=riscv64 -verify-machineinstrs
branch-relaxation-rv64.977f2efb0f.ll (mutant of branch-relaxation-rv64.ll)-mtriple=riscv64 -verify-machineinstrs

Generated 2026-10-15 08:05 UTC.