1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-17 10:26:15 +00:00
freebsd/lib/msun
Bruce Evans 828f7b4a82 Rearrange the polynomial evaluation for better parallelism. This is
faster on all machines tested (old Celeron (P2), A64 (amd64 and i386)
and ia64) except on ia64 when compiled with -O1.  It takes 2 more
multiplications, so it will be slower on old machines.  The speedup
is about 8 cycles = 17% on A64 (amd64 and i386) with best CFLAGS
and some parallelism in the caller.

Move the evaluation of 2**k up a bit so that it doesn't compete too
much with the new polynomial evaluation.  Unlike the previous
optimization, this rearrangement cannot change the result, so compilers
and CPU schedulers can do it, but they don't do it quite right yet.
This saves a whole 1 or 2 cycles on A64.
2008-02-13 08:36:13 +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
bsdsrc
i387 Implement rintl(), nearbyintl(), lrintl(), and llrintl(). 2008-01-14 02:12:07 +00:00
ia64
ld80 Use a better method of scaling by 2**k. Instead of adding to the 2008-02-07 03:17:05 +00:00
ld128 Use a better method of scaling by 2**k. Instead of adding to the 2008-02-07 03:17:05 +00:00
man Introduce a new log(3) manpage and move the relevant functions there. 2008-01-18 21:43:00 +00:00
powerpc
sparc64
src Rearrange the polynomial evaluation for better parallelism. This is 2008-02-13 08:36:13 +00:00
Makefile Hook up exp2l() and related docs to the build. 2008-01-18 21:43:10 +00:00
Symbol.map Hook up exp2l() and related docs to the build. 2008-01-18 21:43:10 +00:00