Index: gcc/sel-sched.c
===================================================================
*** gcc/sel-sched.c	(revision 163192)
--- gcc/sel-sched.c	(working copy)
*************** count_occurrences_1 (rtx *cur_rtx, void 
*** 835,841 ****
  
    if (GET_CODE (*cur_rtx) == SUBREG
        && REG_P (p->x)
!       && 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
--- 835,842 ----
  
    if (GET_CODE (*cur_rtx) == SUBREG
        && REG_P (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
