http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55116



--- Comment #9 from H.J. Lu <hjl.tools at gmail dot com> 2012-10-30 01:36:26 
UTC ---

This helps:



diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c

index 43d4cb8..d076ad6 100644

--- a/gcc/rtlanal.c

+++ b/gcc/rtlanal.c

@@ -5460,6 +5460,7 @@ strip_address_mutations (rtx *loc, enum rtx_code

*outer_code)

     /* (and ... (const_int -X)) is used to align to X bytes.  */

     loc = &XEXP (*loc, 0);

       else if (code == SUBREG

+           && GET_MODE (*loc) == Pmode

                && !OBJECT_P (SUBREG_REG (*loc))

                && subreg_lowpart_p (*loc))

     /* (subreg (operator ...) ...) inside and is used for mode

Reply via email to