https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70053
--- Comment #2 from Peter Bergner <bergner at gcc dot gnu.org> --- One interesting point is if we delete the "return result;" that is within the then clause and fall thru to the end "return result;" with is logically identical, then we get the code we want: D256_add_finite: dcmpuq 7,4,6 bnelr 7 fmr 5,7 fmr 4,6 fmr 3,7 fmr 2,6 blr