https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120059
--- Comment #12 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The trunk branch has been updated by Andrew Pinski <pins...@gcc.gnu.org>: https://gcc.gnu.org/g:dba5d112691a3e10b722468d94fffeda0fdbb818 commit r16-365-gdba5d112691a3e10b722468d94fffeda0fdbb818 Author: Andrew Pinski <quic_apin...@quicinc.com> Date: Fri May 2 09:46:24 2025 -0700 simplify-rtl: Fix crash due to simplify_with_subreg_not [PR120059] r16-286-gd84fbc516ea57d added a call to simplify_gen_subreg but didn't check if the result of simplify_gen_subreg was non-null. simplify_gen_subreg can return NULL if the subreg would be not valid. In the case below we had a hard register for the SSE register xmm0 of mode SI and doing a subreg to QI mode but QImode is not a valid mode for the SSE register so simplify_gen_subreg would return NULL. This adds the obvious check. Pushed as obvious after bootstrap/test on x86_64-linux-gnu. PR rtl-optimization/120059 gcc/ChangeLog: * simplify-rtx.cc (simplify_with_subreg_not): Check the result of simplify_gen_subreg. gcc/testsuite/ChangeLog: * gcc.dg/torture/pr120059-1.c: New test. Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com>