https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96793
--- Comment #14 from Marc Glisse <glisse at gcc dot gnu.org> --- (In reply to Marc Glisse from comment #13) > if (HONOR_SIGNED_ZEROS (mode)) > x2 = copysign (x2, x); Hmm, I misread the comment, sorry. We already do that, for both floor and ceil. But we don't use a true copysign, we use ix86_sse_copysign_to_positive which won't be able to change the sign from - to +. Just changing it to a true copysign (one extra and or andn) should be enough then?