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

--- Comment #4 from Marc Glisse <glisse at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #2)
> I'm not really sure if we can optimize v<0 for floating point v even with
> -fno-signed-zeros, isn't that option about allowing to optimize away x+0.0
> and similar to x?  I guess one can't guarantee that -0.0 won't appear though
> and treating -0.0 < 0 as sometimes false and sometimes true could just break
> too much stuff.

Yeah, I'm not completely sure about the floating point case. I think it would
be safe for (most of?) my applications, but likely not for everyone. The int
case is definitely safer. We could have kept your PR as the main one since it
comes with a nice complete testcase and analysis. Related to another recent
report would be the unsigned version, but that probably should be handled
separately in a different place.

__v4su
f (__v4su a, __v4su b, __v4su c)
{
  return a > INT_MAX ? b : c;
}

Reply via email to