https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114004
--- Comment #2 from Segher Boessenkool <segher at gcc dot gnu.org> --- So, the rlwinm keeps all the top 32 bits intact, but those are all zero to begin with. Somehow we don't see that, or don't take that into account anyway.