------- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-11 00:47 ------- This patch fixes it: Index: simplify-rtx.c =============================================================== ==== RCS file: /cvs/gcc/gcc/gcc/simplify-rtx.c,v retrieving revision 1.207 diff -u -p -r1.207 simplify-rtx.c --- simplify-rtx.c 28 Oct 2004 12:47:21 -0000 1.207 +++ simplify-rtx.c 11 Nov 2004 00:47:26 -0000 @@ -3790,7 +3790,8 @@ simplify_gen_subreg (enum machine_mode o return newx; if (GET_CODE (op) == SUBREG || GET_MODE (op) == VOIDmode - || (REG_P (op) && REGNO (op) < FIRST_PSEUDO_REGISTER)) + || (REG_P (op) && REGNO (op) < FIRST_PSEUDO_REGISTER + && GET_MODE_SIZE (innermode) != GET_MODE_SIZE (innermode))) return NULL_RTX; return gen_rtx_SUBREG (outermode, op, byte);
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18420