X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=gcc%2Ftestsuite%2Fgcc.dg%2F980414-1.c;fp=gcc%2Ftestsuite%2Fgcc.dg%2F980414-1.c;h=0000000000000000000000000000000000000000;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=59382ef2c494814a3d8e2156aa4e729d133023f7;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/gcc/testsuite/gcc.dg/980414-1.c b/gcc/testsuite/gcc.dg/980414-1.c deleted file mode 100644 index 59382ef2..00000000 --- a/gcc/testsuite/gcc.dg/980414-1.c +++ /dev/null @@ -1,78 +0,0 @@ -/* Test double on x86. */ - -/* { dg-do run { target i?86-*-* } } */ -/* { dg-options -O2 } */ - -extern void abort (void); - -static __inline double -mypow (double __x, double __y) -{ - register double __value, __exponent; - long __p = (long) __y; - if (__y == (double) __p) - { - double __r = 1.0; - if (__p == 0) - return 1.0; - if (__p < 0) - { - __p = -__p; - __x = 1.0 / __x; - } - while (1) - { - if (__p & 1) - __r *= __x; - __p >>= 1; - if (__p == 0) - return __r; - __x *= __x; - } - } - __asm __volatile__ - ("fmul %%st(1),%%st\n\t" /* y * log2(x) */ - "fst %%st(1)\n\t" - "frndint\n\t" /* int(y * log2(x)) */ - "fxch %%st(1)\n\t" - "fsub %%st(1),%%st\n\t" /* fract(y * log2(x)) */ - "f2xm1\n\t" /* 2^(fract(y * log2(x))) - 1 */ - : "=t" (__value), "=u" (__exponent) : "0" (__x), "1" (__y)); - __value += 1.0; - __asm __volatile__ - ("fscale" - : "=t" (__value) : "0" (__value), "u" (__exponent)); - return __value; -} - -const double E1 = 2.71828182845904523536028747135; - -double fact (double x) -{ - double corr; - corr = 1.0; - return corr * mypow(x/E1, x); -} - -int main () -{ - double y, z; - - y = fact (46.2); - z = mypow (46.2/E1, 46.2); - -#if 0 - printf ("%26.19e, %26.19e\n", y, z); -#endif - - if (y > z) - y -= z; - else - y = z - y; - - y /= z; - if (y > 0.1) - abort (); - - return 0; -}