[Bug rtl-optimization/84071] [7/8 regression] wrong elimination of zero-extension after sign-extended load
wilco at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jan 31 16:49:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84071
--- Comment #19 from Wilco <wilco at gcc dot gnu.org> ---
(In reply to Eric Botcazou from comment #16)
> > Also I wonder whether this means AArch64 should set it since targets like MIPS
> > and Sparc already set it.
>
> There seems to be a good reason against that:
>
> /* WORD_REGISTER_OPERATIONS does not hold for AArch64.
> The assigned word_mode is DImode but operations narrower than SImode
> behave as 32-bit operations if using the W-form of the registers rather
> than as word_mode (64-bit) operations as WORD_REGISTER_OPERATIONS
> expects. */
> #define WORD_REGISTER_OPERATIONS 0
How is this any different from 32-bit operations in say MIPS? The only
difference seems to be that MIPS sign-extends 32-bit operations to 64 bit while
AArch64 zero-extends. If that's correct for MIPS it seems that
WORD_REGISTER_OPERATIONS only applies to types smaller than SImode.
More information about the Gcc-bugs
mailing list