[Bug rtl-optimization/116136] [15 Regression] ext-dce exposes latent subreg simplification bug (big-endian) on m68k
rsandifo at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jul 30 13:01:18 GMT 2024
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116136
Richard Sandiford <rsandifo at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rsandifo at gcc dot gnu.org
--- Comment #2 from Richard Sandiford <rsandifo at gcc dot gnu.org> ---
I was curious how far back this went, but it seems to be present in the
original combine.c commit:
/* Changing mode twice with SUBREG => just change it once,
or not at all if changing back to starting mode. */
if (GET_CODE (SUBREG_REG (x)) == SUBREG)
{
if (mode == GET_MODE (SUBREG_REG (SUBREG_REG (x)))
&& SUBREG_WORD (x) == 0 && SUBREG_WORD (SUBREG_REG (x)) == 0)
return SUBREG_REG (SUBREG_REG (x));
Kind-of amazed that this went undetected so long, especially since multiword
big-endian values were much more common back in the day.
More information about the Gcc-bugs
mailing list