fallback: legalize: G_SHL <4 x s32>

Run:main-04ca53e65f-20261014-105623
Kind:fallback
Category:legalize: G_SHL <4 x s32> NEW
Occurrences:24 in 22 configs, 5 test files
Snippet from:atomic-fence.02f533b8bb.ll (mutant of atomic-fence.ll) @fence_seq_cst via llvm-extract + llvm-reduce
Config:-mtriple=riscv32 -verify-machineinstrs
Local check:reproduces at 04ca53e65f
Compiler Explorer:https://godbolt.org/z/saTr4a3a3 (llc-assertions-trunk, checked 2026-10-14 11:04 UTC): G reproduces

Snippet:

define <4 x i32> @fence_seq_cst(<4 x i32> %LGV) {
  %B = shl <4 x i32> splat (i32 1), %LGV
  ret <4 x i32> %B
}

Compiler Explorer panes:

PaneOptionsExitInstsstderr
GlobalISel-mtriple=riscv32 -verify-machineinstrs -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel.*014remark: <unknown>:0:0: unable to legalize instruction: %5:_(<4 x s32>) = G_SHL %3:_, %0:_(<4 x s32>) (in function: fence_seq_cst)
warning: Instruction selection used fallback path for fence_seq_cst
SelectionDAG (control)-mtriple=riscv32 -verify-machineinstrs -global-isel=0014-

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:

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

Occurrences (24):

InputFunctionConfig
atomic-fence.02f533b8bb.ll (mutant of atomic-fence.ll)fence_seq_cst-mtriple=riscv32 -verify-machineinstrs
atomic-fence.3d7ccaaa6e.ll (mutant of atomic-fence.ll)fence_seq_cst-mtriple=riscv64 -mattr=+a -verify-machineinstrs
atomic-fence.4252dd1e89.ll (mutant of atomic-fence.ll)fence_seq_cst-mtriple=riscv64 -mattr=+zalrsc -verify-machineinstrs
atomic-fence.8d81699357.ll (mutant of atomic-fence.ll)fence_seq_cst-mtriple=riscv32 -mattr=+a -verify-machineinstrs
atomic-fence.b1fad6a546.ll (mutant of atomic-fence.ll)fence_seq_cst-mtriple=riscv64 -mattr=+a,+ztso -verify-machineinstrs
atomic-fence.b58c04e3d2.ll (mutant of atomic-fence.ll)fence_seq_cst-mtriple=riscv64 -verify-machineinstrs
atomic-fence.b6e53a5c80.ll (mutant of atomic-fence.ll)fence_seq_cst-mtriple=riscv32 -mattr=+zalrsc -verify-machineinstrs
atomic-fence.fb39cc0fbc.ll (mutant of atomic-fence.ll)fence_seq_cst-mtriple=riscv32 -mattr=+a,+ztso -verify-machineinstrs
calling-conv-half.0baf40471d.ll (mutant of calling-conv-half.ll)caller_half_on_stack-mtriple=riscv32 -mattr=+f -target-abi=ilp32f -verify-machineinstrs
calling-conv-half.1be1405489.ll (mutant of calling-conv-half.ll)caller_half_on_stack-mtriple=riscv64 -mattr=+f -mattr=+zfh -verify-machineinstrs -target-abi lp64 -O1
calling-conv-half.1e650dea97.ll (mutant of calling-conv-half.ll)caller_half_on_stack-mtriple=riscv32 -mattr=+f,+zfhmin -target-abi=ilp32f -verify-machineinstrs
calling-conv-half.1f3b717854.ll (mutant of calling-conv-half.ll)caller_half_on_stack-mtriple=riscv32 -mattr=+f -target-abi=ilp32 -verify-machineinstrs
calling-conv-half.25049da52a.ll (mutant of calling-conv-half.ll)caller_half_on_stack-mtriple=riscv32 -mattr=+f -mattr=+zfh -verify-machineinstrs -target-abi ilp32f -O1
calling-conv-half.746c7f3dd0.ll (mutant of calling-conv-half.ll)caller_half_on_stack-mtriple=riscv32 -verify-machineinstrs
calling-conv-half.af955a52ad.ll (mutant of calling-conv-half.ll)caller_half_on_stack-mtriple=riscv64 -verify-machineinstrs
calling-conv-half.b16e37e29e.ll (mutant of calling-conv-half.ll)caller_half_on_stack-mtriple=riscv64 -mattr=+f -target-abi=lp64f -verify-machineinstrs
calling-conv-half.c0db972ab1.ll (mutant of calling-conv-half.ll)caller_half_on_stack-mtriple=riscv64 -mattr=+f -target-abi=lp64 -verify-machineinstrs
calling-conv-half.d12115209a.ll (mutant of calling-conv-half.ll)caller_half_on_stack-mtriple=riscv32 -mattr=+f -mattr=+zfh -verify-machineinstrs -target-abi ilp32 -O1
calling-conv-half.e04afc2755.ll (mutant of calling-conv-half.ll)caller_half_on_stack-mtriple=riscv64 -mattr=+f -mattr=+zfh -verify-machineinstrs -target-abi lp64f -O1
calling-conv-half.fa3138e84a.ll (mutant of calling-conv-half.ll)caller_half_on_stack-mtriple=riscv64 -mattr=+f,+zfhmin -target-abi=lp64f -verify-machineinstrs
fpenv.4aab09c1e4.ll (mutant of fpenv.ll)func_03-mtriple=riscv32 -mattr=+f -verify-machineinstrs
fpenv.54642d872c.ll (mutant of fpenv.ll)func_03-mtriple=riscv64 -mattr=+f -verify-machineinstrs
pr51206.86adf7a85b.ll (mutant of pr51206.ll)wobble-mtriple=riscv64-unknown-linux-gnu -mattr=+m
rv32p.317e53cc74.ll (mutant of rv32p.ll)maccsu_h00_commute-mtriple=riscv32 -mattr=+experimental-p,+zbb,+m -verify-machineinstrs

Generated 2026-10-15 08:05 UTC.