fallback: legalize: G_SHL <4 x s32>

Run:explore-bc8218b282-20261015-075519
Kind:fallback
Category:legalize: G_SHL <4 x s32> NEW
Occurrences:4 in 4 configs, 1 test files
Snippet from:tail-calls.1490228344.ll (mutant of tail-calls.ll) @caller_weak via llvm-extract
Config:-code-model=large -mtriple=riscv32 -verify-machineinstrs
Local check:reproduces at bc8218b282
Compiler Explorer:not uploaded (over --godbolt-limit or disabled)

Snippet:

@G = external global <4 x i32>
@G.1 = external global <4 x i32>

declare extern_weak void @callee_weak()

; Function Attrs: nounwind
define void @caller_weak() #0 {
entry:
  %LGV1 = load <4 x i32>, ptr @G.1, align 16
  %LGV = load <4 x i32>, ptr @G, align 16
  tail call void @callee_weak()
  %B = shl <4 x i32> %LGV, %LGV1
  store <4 x i32> %B, ptr @G, align 16
  ret void
}

attributes #0 = { nounwind }

!llvm.module.flags = !{!0}

!0 = !{i32 1, !"ProfileSummary", !1}
!1 = !{!2, !3, !4, !5, !6, !7, !8, !9}
!2 = !{!"ProfileFormat", !"InstrProf"}
!3 = !{!"TotalCount", i64 10000}
!4 = !{!"MaxCount", i64 10}
!5 = !{!"MaxInternalCount", i64 1}
!6 = !{!"MaxFunctionCount", i64 1000}
!7 = !{!"NumCounts", i64 3}
!8 = !{!"NumFunctions", i64 3}
!9 = !{!"DetailedSummary", !10}
!10 = !{!11, !12, !13}
!11 = !{i32 10000, i64 100, i32 1}
!12 = !{i32 999000, i64 100, i32 1}
!13 = !{i32 999999, i64 1, i32 2}

Reproduce:

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

Local llc output:

remark: <unknown>:0:0: unable to legalize instruction: %4:_(<4 x s32>) = G_SHL %2:_, %0:_(<4 x s32>) (in function: caller_weak)
warning: Instruction selection used fallback path for caller_weak

Occurrences (4):

InputFunctionConfig
tail-calls.1490228344.ll (mutant of tail-calls.ll)caller_weak-code-model=large -mtriple=riscv32 -verify-machineinstrs
tail-calls.6158ee23bb.ll (mutant of tail-calls.ll)caller_weak-mtriple=riscv32 -verify-machineinstrs
tail-calls.a75e95f560.ll (mutant of tail-calls.ll)caller_weak-code-model=large -mtriple=riscv64 -verify-machineinstrs
tail-calls.b2851c9829.ll (mutant of tail-calls.ll)caller_weak-mtriple=riscv64 -verify-machineinstrs

Generated 2026-10-15 08:05 UTC.