freebsd-nq/lib/msun
Bruce Evans 70d818a20e Change __ieee754_rem_pio2f() to return double instead of float so that
this function and its callers cosf(), sinf() and tanf() don't waste time
converting values from doubles to floats and back for |x| > 9pi/4.
All these functions were optimized a few years ago to mostly use doubles
internally and across the __kernel*() interfaces but not across the
__ieee754_rem_pio2f() interface.

This saves about 40 cycles in cosf(), sinf() and tanf() for |x| > 9pi/4
on amd64 (A64), and about 20 cycles on i386 (A64) (except for cosf()
and sinf() in the upper range).  40 cycles is about 35% for |x| < 9pi/4
<= 2**19pi/2 and about 5% for |x| > 2**19pi/2.  The saving is much
larger on amd64 than on i386 since the conversions are not easy to
optimize except on i386 where some of them are automatic and others
are optimized invalidly.  amd64 is still about 10% slower in cosf()
and tanf() in the lower range due to conversion overhead.

This also gives a tiny speedup for |x| <= 9pi/4 on amd64 (by simplifying
the code).  It also avoids compiler bugs and/or additional slowness
in the conversions on (not yet supported) machines where double_t !=
double.
2008-02-25 13:33:20 +00:00
..
amd64 Use hardware remainder on amd64 since it is 5 to 10 times faster than 2008-02-13 06:01:48 +00:00
arm Use C comments since we now preprocess these files with CPP. 2007-04-29 14:05:22 +00:00
bsdsrc Eliminate some warnings. 2008-02-22 02:26:51 +00:00
i387 Implement rintl(), nearbyintl(), lrintl(), and llrintl(). 2008-01-14 02:12:07 +00:00
ia64 Use C comments since we now preprocess these files with CPP. 2007-04-29 14:05:22 +00:00
ld80 2 long double constants were missing L suffixes. This helped break tanl() 2008-02-18 15:39:52 +00:00
ld128 Add kernel functions for 128-bit long doubles. These could be improved 2008-02-17 07:32:31 +00:00
man Document return values better. 2008-02-18 19:02:49 +00:00
powerpc Let PowerPC world optionally build with -msoft-float. For FPU-less PowerPC 2008-02-24 19:22:53 +00:00
sparc64 Use C comments since we now preprocess these files with CPP. 2007-04-29 14:05:22 +00:00
src Change __ieee754_rem_pio2f() to return double instead of float so that 2008-02-25 13:33:20 +00:00
Makefile Add tgammaf() as a simple wrapper around tgamma(). 2008-02-18 17:27:11 +00:00
Symbol.map Add tgammaf() as a simple wrapper around tgamma(). 2008-02-18 17:27:11 +00:00