mirror of
https://sourceware.org/git/glibc.git
synced 2026-01-06 11:51:29 +03:00
soft-fp: make __unord* raise "invalid" for signaling NaNs (bug 16036).
This commit is contained in:
@@ -32,12 +32,17 @@
|
||||
|
||||
CMPtype __unorddf2(DFtype a, DFtype b)
|
||||
{
|
||||
FP_DECL_EX;
|
||||
FP_DECL_D(A); FP_DECL_D(B);
|
||||
CMPtype r;
|
||||
|
||||
FP_INIT_EXCEPTIONS;
|
||||
FP_UNPACK_RAW_D(A, a);
|
||||
FP_UNPACK_RAW_D(B, b);
|
||||
FP_CMP_UNORD_D(r, A, B);
|
||||
if (r && (FP_ISSIGNAN_D(A) || FP_ISSIGNAN_D(B)))
|
||||
FP_SET_EXCEPTION(FP_EX_INVALID);
|
||||
FP_HANDLE_EXCEPTIONS;
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
@@ -32,13 +32,18 @@
|
||||
|
||||
CMPtype __unordsf2(SFtype a, SFtype b)
|
||||
{
|
||||
FP_DECL_EX;
|
||||
FP_DECL_S(A);
|
||||
FP_DECL_S(B);
|
||||
CMPtype r;
|
||||
|
||||
FP_INIT_EXCEPTIONS;
|
||||
FP_UNPACK_RAW_S(A, a);
|
||||
FP_UNPACK_RAW_S(B, b);
|
||||
FP_CMP_UNORD_S(r, A, B);
|
||||
if (r && (FP_ISSIGNAN_S(A) || FP_ISSIGNAN_S(B)))
|
||||
FP_SET_EXCEPTION(FP_EX_INVALID);
|
||||
FP_HANDLE_EXCEPTIONS;
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
@@ -32,13 +32,18 @@
|
||||
|
||||
CMPtype __unordtf2(TFtype a, TFtype b)
|
||||
{
|
||||
FP_DECL_EX;
|
||||
FP_DECL_Q(A);
|
||||
FP_DECL_Q(B);
|
||||
CMPtype r;
|
||||
|
||||
FP_INIT_EXCEPTIONS;
|
||||
FP_UNPACK_RAW_Q(A, a);
|
||||
FP_UNPACK_RAW_Q(B, b);
|
||||
FP_CMP_UNORD_Q(r, A, B);
|
||||
if (r && (FP_ISSIGNAN_Q(A) || FP_ISSIGNAN_Q(B)))
|
||||
FP_SET_EXCEPTION(FP_EX_INVALID);
|
||||
FP_HANDLE_EXCEPTIONS;
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user