https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596
--- Comment #29 from Segher Boessenkool <segher at gcc dot gnu.org> --- We currently generate fun: lwz 8,0(3) rlwimi 8,4,12,0,31-12 rlwinm 10,8,24,24,31 stw 8,0(3) rlwinm 10,10,0,30,27 ori 10,10,0x8 stb 10,2(3) ori 2,2,0 lwz 10,0(3) rlwimi 10,5,9,22,22 stw 10,0(3) blr which is probably the worst it has been :-/