https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107949
--- Comment #6 from Segher Boessenkool <segher at gcc dot gnu.org> --- We generate loads into QImode regs, so we need to explicitly convert it to whatever larger mode is wanted later. We also have define_insns to do a zero-extended load directly into a bigger pseudo, but that isn't used apparently. This is one instance of a much more generic problem; on rs6000 this is usually observed as SImode being extended to DImode more often than needed / wanted.