------- Comment #2 from abel at gcc dot gnu dot org 2010-06-30 08:49 ------- The below patch fixes the problem for me.
diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c index 8590b8a..15c4e51 100644 --- a/gcc/sel-sched.c +++ b/gcc/sel-sched.c @@ -837,7 +837,8 @@ count_occurrences_1 (rtx *cur_rtx, void *arg) if (GET_CODE (*cur_rtx) == SUBREG && REG_P (p->x) - && REGNO (SUBREG_REG (*cur_rtx)) == REGNO (p->x)) + && (!REG_P (SUBREG_REG (*cur_rtx)) + || REGNO (SUBREG_REG (*cur_rtx)) == REGNO (p->x))) { /* ??? Do not support substituting regs inside subregs. In that case, simplify_subreg will be called by validate_replace_rtx, and -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44691