https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85123
--- Comment #2 from Peter Bergner <bergner at gcc dot gnu.org> --- So the code on LE and 32-bit BE for test1float1() looks like: 10000680: f0 ff 21 d0 stfs f1,-16(r1) 10000684: 00 00 42 60 ori r2,r2,0 10000688: f0 ff 61 80 lwz r3,-16(r1) 1000068c: 20 00 80 4e blr while on 64-bit BE, we get: 100006c0: d0 21 ff f0 stfs f1,-16(r1) 100006c4: 60 42 00 00 ori r2,r2,0 100006c8: e8 61 ff f0 ld r3,-16(r1) 100006cc: 78 63 07 c6 rldicr r3,r3,32,31 100006d0: 4e 80 00 20 blr which is wrong.