https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118663
--- Comment #10 from Peter Bergner <bergner at gcc dot gnu.org> --- (In reply to Peter Bergner from comment #9) > extern void bar (void); > void > foo (_Decimal32 *dst, _Decimal32 src) > { > bar (); > *dst = src; > } I'll note if I configure my gcc as a --target=powerpc64-linux (instead of --target=powerpc-linux) and compile this test case with -O2 -m32 -mcpu=601, then LRA goes into an infinite loop. Similarly for -O2 -m64 -mcpu={power6,power5,power4,...}, LRA goes into a infinite loop. It's ok for power7 and after, as we have word sized loads/stores from the FP registers in power7.