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

HaoChen Gui <guihaoc at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |guihaoc at gcc dot gnu.org

--- Comment #2 from HaoChen Gui <guihaoc at gcc dot gnu.org> ---
I think both xsmindp and xsmincdp is not consistent with C99/11 standard. So
without fast-math, it can't be implemented by xsmindp/xsmincdp.

C99/11 standard
If just one argument is a NaN, the fmin functions return the other argument (if
both arguments are NaNs, the functions return a NaN).
fmin(NaN, 3.0) = fmin(3.0, NaN) = 3.0

xsmindp
The minimum of a QNaN and any value is that value. The minimum of any value and
an SNaN is that SNaN converted to a QNaN.
xsmindp(NaN, 3.0) = 3.0 xsmindp(3.0, NaN) = NaN

xsmincdp
If either src1 or src2 is a NaN, result is src2.
Otherwise, if src1 is less than src2, result is src1.
Otherwise, result is src2.
xsmincdp(NaN, 3.0) = 3.0 xsmincdp(3.0, NaN) = NaN

Reply via email to