fallback: legalize: G_UMULH s32

Run:explore-04ca53e65f-20261014-114124
Kind:fallback
Category:legalize: G_UMULH s32
Occurrences:42 in 17 configs, 18 test files
Snippet from:div.ll @udiv_constant via llvm-extract
Config:-mtriple=riscv64 -verify-machineinstrs
Local check:reproduces at 04ca53e65f
Compiler Explorer:not uploaded (over --godbolt-limit or disabled)

Snippet:

; Function Attrs: nounwind
define i32 @udiv_constant(i32 %a) #0 {
  %1 = udiv i32 %a, 5
  ret i32 %1
}

attributes #0 = { nounwind }

Reproduce:

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

Local llc output:

remark: <unknown>:0:0: unable to legalize instruction: %9:_(s32) = G_UMULH %0:_, %6:_ (in function: udiv_constant)
warning: Instruction selection used fallback path for udiv_constant

Occurrences (42):

InputFunctionConfig
div.lludiv_constant-mtriple=riscv64 -verify-machineinstrs
umulh.llumulh_i32-mtriple=riscv64
urem-lkk.llfold_urem_positive_odd-mtriple=riscv64 -verify-machineinstrs
urem-lkk.llfold_urem_positive_even-mtriple=riscv64 -verify-machineinstrs
urem.llfold_urem_constants-mtriple=riscv64 -verify-machineinstrs
urem.lldont_fold_urem_constants-mtriple=riscv64 -verify-machineinstrs
urem.lldont_fold_urem_srem_mixed_constants-mtriple=riscv64 -verify-machineinstrs
urem.lldont_fold_srem_urem_mixed_constants-mtriple=riscv64 -verify-machineinstrs
add-before-shl.222ae1e35e.ll (mutant of add-before-shl.ll)add_non_machine_type-mtriple=riscv64 -mattr=+c -verify-machineinstrs -M no-aliases
add-before-shl.5a3558402a.ll (mutant of add-before-shl.ll)add_non_machine_type-mtriple=riscv64 -verify-machineinstrs -M no-aliases
add-before-shl.ad18e27b05.ll (mutant of add-before-shl.ll)add_non_machine_type-mtriple=riscv64 -mattr=+zca -verify-machineinstrs -M no-aliases
and-shl.b0abf4aed4.ll (mutant of and-shl.ll)and_0xfff_shl_2_multi_use-mtriple=riscv64 -verify-machineinstrs
andn-zext-lowmask.ae562df256.ll (mutant of andn-zext-lowmask.ll)andn_zext_lowmask_i32_i8-mtriple=riscv64 -mattr=+zbb -verify-machineinstrs
andn-zext-lowmask.d4f31641cd.ll (mutant of andn-zext-lowmask.ll)andn_zext_lowmask_i32_i8-mtriple=riscv64 -verify-machineinstrs
atomic-rmw-sub.46dbc3d478.ll (mutant of atomic-rmw-sub.ll)atomicrmw_sub_i32_neg-mtriple=riscv64 -mattr=+a -verify-machineinstrs
atomic-rmw-sub.cfdbb622b8.ll (mutant of atomic-rmw-sub.ll)atomicrmw_sub_i32_neg-mtriple=riscv64 -verify-machineinstrs
calling-conv-lp64.1d017a07f6.ll (mutant of calling-conv-lp64.ll)callee_float_on_stack-mtriple=riscv64 -verify-machineinstrs -frame-pointer=all
calling-conv-lp64.dbb1669999.ll (mutant of calling-conv-lp64.ll)callee_float_on_stack-mtriple=riscv64 -verify-machineinstrs
calling-conv-lp64e.1398ff5e10.ll (mutant of calling-conv-lp64e.ll)callee_float_on_stack-mtriple=riscv64 -target-abi lp64e -verify-machineinstrs
calling-conv-lp64e.895b06cc94.ll (mutant of calling-conv-lp64e.ll)callee_float_on_stack-mtriple=riscv64 -target-abi lp64e -verify-machineinstrs -frame-pointer=all
fclass-select.37d930fd73.ll (mutant of fclass-select.ll)is_posinf_sext_f64-mtriple=riscv64 -mattr=+d
machine-outliner-and-machine-copy-propagation.e3e3fc7402.ll (mutant of machine-outliner-and-machine-copy-propagation.ll)nlt-mtriple=riscv64 -riscv-enable-copy-propagation -enable-machine-outliner -verify-machineinstrs
memset.cc8fd66e02.ll (mutant of memset.ll)memset_i64_var-mtriple=riscv64
min-max.2d7ce9f0b7.ll (mutant of min-max.ll)smin_i32_negone-mtriple=riscv64 -mattr=+short-forward-branch-ialu
min-max.574b631800.ll (mutant of min-max.ll)smin_i32_negone-mtriple=riscv64
min-max.8e72a055da.ll (mutant of min-max.ll)smin_i32_negone-mtriple=riscv64 -mattr=+zbb
rv64zbb-intrinsic.bd108b1272.ll (mutant of rv64zbb-intrinsic.ll)orcb64-mtriple=riscv64 -mattr=+zbb -verify-machineinstrs
select-cc.024e904c86.ll (mutant of select-cc.ll)select_sge_int16min-mtriple=riscv64 -disable-block-placement -verify-machineinstrs
select-cc.cf4517facd.ll (mutant of select-cc.ll)select_sge_int16min-mtriple=riscv64 -mattr=+xmipscmov -verify-machineinstrs
tail-calls-sret.3b3d6ee60e.ll (mutant of tail-calls-sret.ll)sret_not_forwarded-mtriple=riscv64 -verify-machineinstrs
umulh.a10c53acfc.ll (mutant of umulh.ll)umulh_i32-mtriple=riscv64
urem-lkk.03e02b1d6d.ll (mutant of urem-lkk.ll)fold_urem_positive_even-mtriple=riscv64 -verify-machineinstrs
urem-lkk.4b75cf6022.ll (mutant of urem-lkk.ll)fold_urem_positive_odd-mtriple=riscv64 -verify-machineinstrs
urem.1090d2f22b.ll (mutant of urem.ll)fold_urem_constants-mtriple=riscv64 -verify-machineinstrs
urem.3cb366d24e.ll (mutant of urem.ll)dont_fold_srem_urem_mixed_constants-mtriple=riscv64 -verify-machineinstrs
urem.45816da26e.ll (mutant of urem.ll)dont_fold_urem_constants-mtriple=riscv64 -verify-machineinstrs
urem.45816da26e.ll (mutant of urem.ll)dont_fold_urem_srem_mixed_constants-mtriple=riscv64 -verify-machineinstrs
urem.96f3318f7f.ll (mutant of urem.ll)fold_urem_constants-mtriple=riscv64 -verify-machineinstrs
urem.96f3318f7f.ll (mutant of urem.ll)dont_fold_srem_urem_mixed_constants-mtriple=riscv64 -verify-machineinstrs
urem.d02bd2f5e3.ll (mutant of urem.ll)fold_urem_constants-mtriple=riscv64 -verify-machineinstrs
urem.d02bd2f5e3.ll (mutant of urem.ll)dont_fold_urem_srem_mixed_constants-mtriple=riscv64 -verify-machineinstrs
xmips-cbop.154db2576e.ll (mutant of xmips-cbop.ll)prefetch_frameindex_test_neg-mtriple=riscv64 -mattr=+xmipscbop -verify-machineinstrs

Generated 2026-10-15 08:05 UTC.