https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89726

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I believe the ix86_expand_floorceildf_32 changes of
https://gcc.gnu.org/ml/gcc-patches/2006-10/msg01611.html
meant to fix this, but it isn't clear why it actually didn't fail the test.
Certainly I don't see how:
          if (x2 < x)
-           x2 += 1;
+           x2 -= -1;
could make a difference, when x2 is -1.0 and x is less than -0.0 and greater
than -1.0, it is the x - x = x + (-x) = +0.0 case for any finite x.
We could certainly add another ix86_sse_copysign_to_positive call for the ceil
case after the compensation, which would be just another ior, the question is
if we can do better.

Reply via email to