https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120231
--- Comment #6 from Alex Coplan <acoplan at gcc dot gnu.org> --- I suppose that example boils down to whether code like: _Bool f(_Float16 a) { return a * a >= 0; } _Bool g(float a) { return a * a >= 0; } can be optimised to return true. We currently do it with -ffast-math but not without.