https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78642
--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> --- But verify_rtx_sharing also has: case CLOBBER: /* Share clobbers of hard registers (like cc0), but do not share pseudo reg clobbers or clobbers of hard registers that originated as pseudos. This is needed to allow safe register renaming. */ if (REG_P (XEXP (x, 0)) && REGNO (XEXP (x, 0)) < FIRST_PSEUDO_REGISTER && ORIGINAL_REGNO (XEXP (x, 0)) == REGNO (XEXP (x, 0))) return; break; So why doesn't it return? Has ORIGINAL_REGNO changed on the hard reg?