Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libm/test/test_ieee.c')
-rw-r--r--newlib/libm/test/test_ieee.c180
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 a126d01e6..000000000
--- 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);
-
-
-}
-
-