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

--- Comment #12 from joseph at codesourcery dot com <joseph at codesourcery dot 
com> ---
On Thu, 1 Aug 2019, ubizjak at gmail dot com wrote:

> It also means that __builtin_islessgreater is confusingly named.

No, __builtin_islessgreater corresponds to the ISO C islessgreater 
type-generic macro, which does not raise exceptions for quiet NaN 
arguments.  If anything is confusingly named it's GCC's internal LTGT 
operations, if they don't correspond to islessgreater.

Regarding the confused LTGT (RTL, GENERIC, GIMPLE) semantics, see what I 
said in <https://gcc.gnu.org/ml/gcc-patches/2015-02/msg00583.html> (and 
elsewhere in that thread).

Whatever we conclude about whether LTGT is (LT || GT) or (!UNEQ), (a) we 
should document the choice (so that we then have a basis for telling 
whether code involving LTGT is correct or not, based on whether it 
corresponds to the documented semantics) and (b) the choice should be the 
same for all of RTL, GENERIC and GIMPLE.

Reply via email to