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

--- Comment #1 from joseph at codesourcery dot com <joseph at codesourcery dot 
com> ---
(x > 1) is expected to raise invalid for a quiet NaN, so the two functions 
are different in the absence of -fno-trapping-math, whether or not 
signaling NaNs are enabled.

((!__builtin_isnan (x)) && x > 1) is equivalent to __builtin_isgreater (x, 
1.0) and could be optimized accordingly for -fno-signaling-nans, however.  
(With signaling NaNs, you have the issue that the first expression doesn't 
raise invalid for a signaling NaN but the second does.)

Reply via email to