https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102024
--- Comment #5 from Segher Boessenkool <segher at gcc dot gnu.org> --- "structure layout happens before the zero width bitfields are removed by the FE". So, what can break still, then? - li 9,0 - sldi 9,9,32 - mtvsrd 1,9 + li 3,0 std 0,16(1) stdu 1,-32(1) .cfi_def_cfa_offset 32 .cfi_offset 65, 16 - xscvspdpn 1,1 - fmr 2,1 1) The old code was very inefficient, didn't have constants optimised; 2) The old code passed "s" in an FPR, the new one uses a GPR? Can you also show what changed in "foo"?