https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85805
--- Comment #7 from Segher Boessenkool <segher at gcc dot gnu.org> --- I suspect this is because we have hard regs here, not pseudos. Not a good idea in general, which is why other targets don't do this. Perhaps it is a mode mixup in the known value tracking? Confirmed.