[PATCH 4/9] New generic logf

Szabolcs Nagy szabolcs.nagy@arm.com
Tue Sep 19 12:58:00 GMT 2017


with the logf benchmark (without wrapper, aarch64):
reciprocal-throughput: 2.2x faster
latency: 1.9x faster
old worst case error: 0.89 ulp
new worst case error: 0.82 ulp
aarch64 .text size: -356 bytes
aarch64 .rodata size: +248 bytes

Uses double precision arithmetics and a lookup table to
allow smaller polynomial and avoid the use of division.

Data is in a separate translation unit with fixed layout
to prevent the compiler generating suboptimal literal access.

Errors are handled inline according to POSIX rules, but this
patch keeps the wrapper with SVID compatible error handling.

Needs libm-test-ulps adjustment for clogf in non-nearest
rounding mode.

2017-09-19  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* math/Makefile (type-float-routines): Add e_logf_data.
	* sysdeps/ieee754/flt-32/e_logf.c: New implementation.
	* sysdeps/ieee754/flt-32/e_logf_data.c: New file.
	* sysdeps/ieee754/flt-32/math_config.h (__logf_data): Define.
	(LOGF_TABLE_BITS, LOGF_POLY_ORDER): Define.
	* sysdeps/i386/fpu/e_logf_data.c: New file.
	* sysdeps/ia64/fpu/e_logf_data.c: New file.
	* sysdeps/m68k/m680x0/fpu/e_logf_data.c: New file.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 04-logf.diff
Type: text/x-patch
Size: 9053 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20170919/30fe5f21/attachment.bin>


More information about the Libc-alpha mailing list