https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109008
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Note, the ulps frange_arithmetic are ulps of the result, result is in this case 0.0, so 1ulp is the smallest subnormal number. That is something completely different from what we need here though for the reverse operations. [1.0, 1.0] + x == [1.0, 1.0] is true with round to nearest for x in [-0x1.0p-54, 0x1.0p-53], so that is ulp of 1.0, not the result. Now, is this problem just around the 0 result or other values too? Say [1.0, 1.0] + x == [2.0, 2.0]?