https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84334
--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> --- With -frounding-math, CCP produces things like: _465 = 9.999999974752427078783512115478515625e-7 + 4.999999873689375817775726318359375e-6; Guessing: When we have cst1+cst2+cst3, the transformation gives cst1+(cst2+cst3), where cst2+cst3 does not simplify because of -frounding-math, so it is transformed again to cst2+(cst1+cst3) or similar, and we cycle. We should not transform when cst2+cst3 will not simplify (I think there have been similar issues recently). I can't test or debug anything for a couple weeks, so I may be completely wrong. -Ofast -frounding-math makes little sense to me.