1 // SPDX-License-Identifier: GPL-2.0-only
2 /* IEEE754 floating point arithmetic
3 * double precision: common utilities
6 * MIPS floating point support
7 * Copyright (C) 1994-2000 Algorithmics Ltd.
10 #include "ieee754dp.h"
12 int ieee754dp_cmp(union ieee754dp x
, union ieee754dp y
, int cmp
, int sig
)
24 ieee754_clearcx(); /* Even clear inexact flag here */
26 if (ieee754_class_nan(xc
) || ieee754_class_nan(yc
)) {
28 xc
== IEEE754_CLASS_SNAN
|| yc
== IEEE754_CLASS_SNAN
)
29 ieee754_setcx(IEEE754_INVALID_OPERATION
);
30 return (cmp
& IEEE754_CUN
) != 0;
36 vx
= -vx
^ DP_SIGN_BIT
;
38 vy
= -vy
^ DP_SIGN_BIT
;
41 return (cmp
& IEEE754_CLT
) != 0;
43 return (cmp
& IEEE754_CEQ
) != 0;
45 return (cmp
& IEEE754_CGT
) != 0;