https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120733
--- Comment #1 from Dimitar Dimitrov <dimitar at gcc dot gnu.org> --- I forgot to mention that "-O3 -g" is needed to hit this ICE. This seems to be the call path leading to (nil) injected from calling lowpart_subreg: #0 validate_subreg (omode=E_SImode, imode=E_DImode, reg=0x7ffff74023c0, offset=...) at /mnt/nvme/dinux/local-workspace/gcc/gcc/emit-rtl.cc:985 #1 0x0000000000e5a997 in simplify_context::simplify_gen_subreg (this=0x7fffffffcb18, outermode=E_SImode, op=0x7ffff74023c0, innermode=E_DImode, byte=...) at /mnt/nvme/dinux/local-workspace/gcc/gcc/simplify-rtx.cc:8428 #2 0x0000000000e5aa0f in simplify_context::lowpart_subreg (this=0x7fffffffcb18, outer_mode=E_SImode, expr=0x7ffff74023c0, inner_mode=E_DImode) at /mnt/nvme/dinux/local-workspace/gcc/gcc/simplify-rtx.cc:8441 #3 0x0000000000688a4d in lowpart_subreg (outermode=E_SImode, op=0x7ffff74023c0, innermode=E_DImode) at /mnt/nvme/dinux/local-workspace/gcc/gcc/rtl.h:3631 #4 0x0000000000beb35c in move_plus_up (x=0x7ffff7384450) at /mnt/nvme/dinux/local-workspace/gcc/gcc/lra-eliminations.cc:305 #5 0x0000000000bebd2d in lra_eliminate_regs_1 (insn=0x7ffff7415a00, x=0x7ffff7384468, mem_mode=E_VOIDmode, subst_p=false, update_p=false, update_sp_offset=..., full_p=true) at /mnt/nvme/dinux/local-workspace/gcc/gcc/lra-eliminations.cc:450 #6 0x0000000000bed921 in eliminate_regs_in_insn (insn=0x7ffff7415a00, replace_p=false, first_p=true, update_sp_offset=...) at /mnt/nvme/dinux/local-workspace/gcc/gcc/lra-eliminations.cc:1051 #7 0x0000000000bee9ce in process_insn_for_elimination (insn=0x7ffff7415a00, final_p=false, first_p=true) at /mnt/nvme/dinux/local-workspace/gcc/gcc/lra-eliminations.cc:1380 #8 0x0000000000beeee6 in lra_eliminate (final_p=false, first_p=true) at /mnt/nvme/dinux/local-workspace/gcc/gcc/lra-eliminations.cc:1506 #9 0x0000000000be2b70 in lra_constraints (first_p=true) at /mnt/nvme/dinux/local-workspace/gcc/gcc/lra-constraints.cc:5368