https://gcc.gnu.org/bugzilla/show_bug.cgi?id=33989
seurer at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |seurer at gcc dot gnu.org Resolution|--- |WORKSFORME --- Comment #17 from seurer at gcc dot gnu.org --- The reported problem was that with -O3 you get an extra load/store: .L.f: lfs 0,0(3) fadds 0,1,0 stfs 0,-16(1) lwz 0,-16(1) stw 0,0(4) blr I tried the test code using both gcc 9 and 10 (on both powerpc64 BE and LE just in case) and I see this: f: .LFB0: .cfi_startproc lfs 0,0(3) fadds 1,1,0 stfs 1,0(4) blr No extra load/store. FYI: I looked at gcc 5 (the distro version on one of older servers) and it generated way different and probably equally not so good code. I tried on another older system that has gcc 4.8.5 and it did indeed generate the extra load/store as reported.