https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94026
--- Comment #9 from Segher Boessenkool <segher at gcc dot gnu.org> --- This is all handled in combine, nothing is specific to rs6000 (only the description of all of our insns is, of course, but there is really no way around that, nor should there be :-) ) Why does combine not optimise this for Arm? Of course it would be good if this would be optimised early as well, but that does not mean we should not try to optimise it late as well!