aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/compile/980506-2.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile/980506-2.c')
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/980506-2.c89
1 files changed, 0 insertions, 89 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/980506-2.c b/gcc/testsuite/gcc.c-torture/compile/980506-2.c
deleted file mode 100644
index 6f6fe19270c..00000000000
--- a/gcc/testsuite/gcc.c-torture/compile/980506-2.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * inspired by glibc-2.0.6/sysdeps/libm-ieee754/s_nextafterf.c
- *
- * gcc -O2 -S -DOP=+ gives faddp %st(1),%st
- * gcc -O2 -S -DOP=* gives fmulp %st(1),%st
- * gcc -O2 -S -DOP=- gives fsubrp %st(1),%st
- * gcc -O2 -S -DOP=/ gives fdivrp %st(1),%st
- */
-
-#ifndef OP
-#define OP *
-#endif
-
-typedef int int32_t __attribute__ ((__mode__ ( __SI__ ))) ;
-typedef unsigned int u_int32_t __attribute__ ((__mode__ ( __SI__ ))) ;
-
-typedef union
-{
- float value;
- u_int32_t word;
-} ieee_float_shape_type;
-
-float __nextafterf(float x, float y)
-{
- int32_t hx,hy,ix,iy;
-
- {
- ieee_float_shape_type gf_u;
- gf_u.value = x;
- hx = gf_u.word;
- }
- {
- ieee_float_shape_type gf_u;
- gf_u.value = y;
- hy = gf_u.word;
- }
- ix = hx&0x7fffffff;
- iy = hy&0x7fffffff;
-
- if ( ix > 0x7f800000 || iy > 0x7f800000 )
- return x+y;
- if (x == y) return x;
- if (ix == 0)
- {
- {
- ieee_float_shape_type sf_u;
- sf_u.word = (hy&0x80000000) | 1;
- x = sf_u.value;
- }
- y = x*x;
- if (y == x) return y; else return x;
- }
- if (hx >= 0)
- {
- if (hx > hy)
- hx -= 1;
- else
- hx += 1;
- }
- else
- {
- if (hy >= 0 || hx > hy)
- hx -= 1;
- else
- hx += 1;
- }
- hy = hx & 0x7f800000;
- if (hy >= 0x7f800000)
- return x+x;
- if (hy < 0x00800000)
- {
- y = x OP x;
- if (y != x)
- {
- ieee_float_shape_type sf_u;
- sf_u.word = hx;
- y = sf_u.value;
- return y;
- }
- }
- {
- ieee_float_shape_type sf_u;
- sf_u.word = hx;
- x = sf_u.value;
- }
- return x;
-}
-
-