diff options
Diffstat (limited to 'newlib/libm/test/test_ieee.c')
-rw-r--r-- | newlib/libm/test/test_ieee.c | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/newlib/libm/test/test_ieee.c b/newlib/libm/test/test_ieee.c deleted file mode 100644 index a126d01..0000000 --- a/newlib/libm/test/test_ieee.c +++ /dev/null @@ -1,180 +0,0 @@ - -#include "test.h" -#include <ieeefp.h> - - -/* Test fp getround and fp setround */ - -void -_DEFUN_VOID(test_getround) -{ - - newfunc("fpgetround/fpsetround"); - line(1); - fpsetround(FP_RN); - test_iok(fpgetround(), FP_RN); - line(2); - fpsetround(FP_RM); - test_iok(fpgetround(), FP_RM); - line(3); - fpsetround(FP_RP); - test_iok(fpgetround(), FP_RP); - line(4); - fpsetround(FP_RZ); - test_iok(fpgetround(), FP_RZ); -} - -/* And fpset/fpgetmask */ -void -_DEFUN_VOID(test_getmask) -{ - newfunc("fpsetmask/fpgetmask"); - line(1); - fpsetmask(FP_X_INV); - test_iok(fpgetmask(),FP_X_INV); - line(2); - fpsetmask(FP_X_DX); - test_iok(fpgetmask(),FP_X_DX); - line(3); - fpsetmask(FP_X_OFL ); - test_iok(fpgetmask(),FP_X_OFL); - line(4); - fpsetmask(FP_X_UFL); - test_iok(fpgetmask(),FP_X_UFL); - line(5); - fpsetmask(FP_X_IMP); - test_iok(fpgetmask(),FP_X_IMP); -} - -void -_DEFUN_VOID(test_getsticky) -{ - newfunc("fpsetsticky/fpgetsticky"); - line(1); - fpsetsticky(FP_X_INV); - test_iok(fpgetsticky(),FP_X_INV); - line(2); - fpsetsticky(FP_X_DX); - test_iok(fpgetsticky(),FP_X_DX); - line(3); - fpsetsticky(FP_X_OFL ); - test_iok(fpgetsticky(),FP_X_OFL); - line(4); - fpsetsticky(FP_X_UFL); - test_iok(fpgetsticky(),FP_X_UFL); - line(5); - fpsetsticky(FP_X_IMP); - test_iok(fpgetsticky(),FP_X_IMP); -} - -void -_DEFUN_VOID(test_getroundtoi) -{ - newfunc("fpsetroundtoi/fpgetroundtoi"); - line(1); - fpsetroundtoi(FP_RDI_TOZ); - test_iok(fpgetroundtoi(),FP_RDI_TOZ); - - line(2); - fpsetroundtoi(FP_RDI_RD); - test_iok(fpgetroundtoi(),FP_RDI_RD); - -} - -double - _DEFUN(dnumber,(msw, lsw), - int msw _AND - int lsw) -{ - - __ieee_double_shape_type v; - v.parts.lsw = lsw; - v.parts.msw = msw; - return v.value; -} - - /* Lets see if changing the rounding alters the arithmetic. - Test by creating numbers which will have to be rounded when - added, and seeing what happens to them */ - /* Keep them out here to stop the compiler from folding the results */ -double n; -double m; -double add_rounded_up; -double add_rounded_down; -double sub_rounded_down ; -double sub_rounded_up ; - double r1,r2,r3,r4; -void -_DEFUN_VOID(test_round) -{ - n = dnumber(0x40000000, 0x00000008); /* near 2 */ - m = dnumber(0x40400000, 0x00000003); /* near 3.4 */ - - add_rounded_up = dnumber(0x40410000, 0x00000004); /* For RN, RP */ - add_rounded_down = dnumber(0x40410000, 0x00000003); /* For RM, RZ */ - sub_rounded_down = dnumber(0xc0410000, 0x00000004); /* for RN, RM */ - sub_rounded_up = dnumber(0xc0410000, 0x00000003); /* for RP, RZ */ - - newfunc("fpsetround"); - - line(1); - - fpsetround(FP_RN); - r1 = n + m; - test_mok(r1, add_rounded_up, 64); - - line(2); - fpsetround(FP_RM); - r2 = n + m; - test_mok(r2, add_rounded_down, 64); - - fpsetround(FP_RP); - line(3); - r3 = n + m; - test_mok(r3,add_rounded_up, 64); - - fpsetround(FP_RZ); - line(4); - r4 = n + m; - test_mok(r4,add_rounded_down,64); - - - fpsetround(FP_RN); - r1 = - n - m; - line(5); - test_mok(r1,sub_rounded_down,64); - - fpsetround(FP_RM); - r2 = - n - m; - line(6); - test_mok(r2,sub_rounded_down,64); - - - fpsetround(FP_RP); - r3 = - n - m; - line(7); - test_mok(r3,sub_rounded_up,64); - - fpsetround(FP_RZ); - r4 = - n - m; - line(8); - test_mok(r4,sub_rounded_up,64); -} - - -void -_DEFUN_VOID(test_ieee) -{ - fp_rnd old = fpgetround(); - test_getround(); - test_getmask(); - test_getsticky(); - test_getroundtoi(); - - test_round(); - fpsetround(old); - - -} - - |