fallback: legalize: G_LSHR <4 x s32>

Run:explore-04ca53e65f-20261014-114124
Kind:fallback
Category:legalize: G_LSHR <4 x s32>
Occurrences:115 in 59 configs, 35 test files
Snippet from:rvp-simd-64.ll @test_pasubu_h via llvm-extract
Config:-mtriple=riscv64 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
Local check:reproduces at 04ca53e65f
Compiler Explorer:not uploaded (over --godbolt-limit or disabled)

Snippet:

define <4 x i16> @test_pasubu_h(<4 x i16> %a, <4 x i16> %b) {
  %a_ext = zext <4 x i16> %a to <4 x i32>
  %b_ext = zext <4 x i16> %b to <4 x i32>
  %sub = sub <4 x i32> %a_ext, %b_ext
  %res = lshr <4 x i32> %sub, splat (i32 1)
  %res_trunc = trunc <4 x i32> %res to <4 x i16>
  ret <4 x i16> %res_trunc
}

Reproduce:

llc -mtriple=riscv64 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel.* snippet.ll -o -
llc -mtriple=riscv64 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs -global-isel=0 snippet.ll -o -

Local llc output:

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

Occurrences (115) (first 50):

InputFunctionConfig
rvp-simd-64.lltest_pasubu_h-mtriple=riscv64 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-simd-64.lltest_pmulh_h-mtriple=riscv64 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-simd-64.lltest_pmulhu_h-mtriple=riscv64 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-simd-64.lltest_pmulhsu_h-mtriple=riscv64 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-simd-64.lltest_pmulhsu_h_commuted-mtriple=riscv64 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-simd-64.lltest_pmulhr_h-mtriple=riscv64 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-simd-64.lltest_pmulhru_h-mtriple=riscv64 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-simd-64.lltest_pmulhrsu_h-mtriple=riscv64 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-simd-64.lltest_pmulhrsu_h_commuted-mtriple=riscv64 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
rvp-simd-64.lltest_pmulhu_v4i16-mtriple=riscv64 -mattr=+experimental-p,+m,+zbb -verify-machineinstrs
umulh.llumulh_v4i16-mtriple=riscv32 -mattr=+m
umulh.llumulh_v4i16-mtriple=riscv64 -mattr=+m
add-before-shl.631234cfd9.ll (mutant of add-before-shl.ll)add_huge_const-mtriple=riscv64 -mattr=+c -verify-machineinstrs -M no-aliases
add-before-shl.6de315115c.ll (mutant of add-before-shl.ll)add_huge_const-mtriple=riscv64 -mattr=+zca -verify-machineinstrs -M no-aliases
add-before-shl.72cf91e733.ll (mutant of add-before-shl.ll)add_huge_const-mtriple=riscv32 -verify-machineinstrs -M no-aliases
add-before-shl.9eedaef550.ll (mutant of add-before-shl.ll)add_huge_const-mtriple=riscv32 -mattr=+c -verify-machineinstrs -M no-aliases
add-before-shl.d597d05eb4.ll (mutant of add-before-shl.ll)add_huge_const-mtriple=riscv64 -verify-machineinstrs -M no-aliases
add-before-shl.f0a0cbbb92.ll (mutant of add-before-shl.ll)add_huge_const-mtriple=riscv32 -mattr=+zca -verify-machineinstrs -M no-aliases
align-loops.2d943862c6.ll (mutant of align-loops.ll)test-mtriple=riscv64
align-loops.821c31438b.ll (mutant of align-loops.ll)test-mtriple=riscv64 -align-loops=16
align-loops.ae662fa652.ll (mutant of align-loops.ll)test-mtriple=riscv64 -align-loops=32
and-shl.2f3e3b74f1.ll (mutant of and-shl.ll)and_0xffffffff_shl_2-mtriple=riscv32 -verify-machineinstrs
and-shl.64a773c347.ll (mutant of and-shl.ll)and_0xffffffff_shl_2-mtriple=riscv64 -verify-machineinstrs
andn-zext-lowmask.13e5134467.ll (mutant of andn-zext-lowmask.ll)andn_zext_lowmask_i32_i16-mtriple=riscv64 -mattr=+zbb -verify-machineinstrs
andn-zext-lowmask.80c5723efb.ll (mutant of andn-zext-lowmask.ll)andn_zext_lowmask_i32_i16-mtriple=riscv64 -verify-machineinstrs
andn-zext-lowmask.8f715ba352.ll (mutant of andn-zext-lowmask.ll)andn_zext_lowmask_i32_i16-mtriple=riscv32 -verify-machineinstrs
andn-zext-lowmask.cacdad761c.ll (mutant of andn-zext-lowmask.ll)andn_zext_lowmask_i32_i16-mtriple=riscv32 -mattr=+zbb -verify-machineinstrs
callee-saved-gprs.11cf730f6b.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv32 -mattr=+zilsd -target-abi ilp32e -verify-machineinstrs
callee-saved-gprs.146233dd1e.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv64 -target-abi lp64e -verify-machineinstrs
callee-saved-gprs.167acefb81.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv64 -mattr=+d -target-abi lp64f -verify-machineinstrs
callee-saved-gprs.283c68c140.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv64 -verify-machineinstrs
callee-saved-gprs.289abed6ab.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv32 -mattr=+d -target-abi ilp32d -verify-machineinstrs
callee-saved-gprs.3213e742d6.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv64 -mattr=+zcmp -verify-machineinstrs -frame-pointer=all
callee-saved-gprs.45fc21fd78.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv32 -target-abi ilp32e -verify-machineinstrs
callee-saved-gprs.541ea8d3c1.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv32 -mattr=+zilsd -verify-machineinstrs -frame-pointer=all
callee-saved-gprs.6084281e69.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv32 -mattr=+zilsd -verify-machineinstrs
callee-saved-gprs.6ce3adeb47.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv32 -verify-machineinstrs -frame-pointer=all
callee-saved-gprs.7044c74781.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv64 -mattr=+zcmp -verify-machineinstrs
callee-saved-gprs.813f0e62dd.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv64 -mattr=+f -target-abi lp64f -verify-machineinstrs
callee-saved-gprs.81628db06d.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv32 -verify-machineinstrs
callee-saved-gprs.8f810230ad.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv32 -mattr=+zcmp -verify-machineinstrs
callee-saved-gprs.9755e8b3b3.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv32 -mattr=+d -target-abi ilp32f -verify-machineinstrs
callee-saved-gprs.b3d8a708e4.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv64 -mattr=+d -target-abi lp64d -verify-machineinstrs
callee-saved-gprs.bb5ac66f30.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv32 -mattr=+f -target-abi ilp32f -verify-machineinstrs
callee-saved-gprs.e069827fda.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv32 -mattr=+zilsd,+zilsd-word-align -target-abi ilp32e -verify-machineinstrs
callee-saved-gprs.e356b8f121.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv32 -mattr=+zcmp -verify-machineinstrs -frame-pointer=all
callee-saved-gprs.faf3cf97da.ll (mutant of callee-saved-gprs.ll)foo-mtriple=riscv64 -verify-machineinstrs -frame-pointer=all
csr-first-use-cost.9f5f96b6a3.ll (mutant of csr-first-use-cost.ll)Perl_sv_setnv-mtriple=riscv64
csr-first-use-cost.f066435ef2.ll (mutant of csr-first-use-cost.ll)Perl_sv_setnv-mtriple=riscv64 -regalloc-csr-first-time-cost=0
fclass-select.52046a33fb.ll (mutant of fclass-select.ll)is_qnan_sext_f64-mtriple=riscv64 -mattr=+d

Generated 2026-10-15 08:05 UTC.