https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103316
--- Comment #8 from Segher Boessenkool <segher at gcc dot gnu.org> --- Btw: > mfvsrd 9,34 > mfvsrld 8,34 > mfvsrd 11,35 > mfvsrld 10,35 > li 7,1 > cmpd 0,9,11 > bgt 0,.L2 > cmpld 0,9,11 > beq 0,.L5 > .L3: > li 7,0 The fall-through here makes the code worse. > .L2: > subfic 10,7,0 > subfe 11,11,11 And we shouldn't generate this for p10 at all anyway! Something with setbc would be better. If there were no branches here RTL could have made the code a bit more reasonable again, but with branches, no such chance :-(