This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: PATCH: optimized expf for x86_32
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Dmitrieva Liubov <liubov dot dmitrieva at gmail dot com>
- Cc: libc-alpha at sourceware dot org, Ulrich Drepper <drepper at gmail dot com>
- Date: Mon, 2 Apr 2012 07:30:45 -0700
- Subject: Re: PATCH: optimized expf for x86_32
- References: <CAHjhQ91VCwyF0ByhLa1hfhKGP5TmSWxJ=qYpVdzYSqxCSY5oTw@mail.gmail.com>
On Mon, Apr 2, 2012 at 4:34 AM, Dmitrieva Liubov
<liubov.dmitrieva@gmail.com> wrote:
> Hello,
>
> This patch is just i386-update of the x86_64-version that we recently
> provided to GLIBC. So it totally works in SSE, and only epilogue moves
> result from SSE to FPU, but without explicit rounding of the result to
> single precision and hence does not degrade accuracy of functions that
> depend on it, including complex single precision functions.
>
> Performance on main path [-87;87] in cycles:
>
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Istanbul, Atom, Nehalem, AVX
> Current __expf_finite: ? ? ? ? ? ? ? ? ?79.20 ? 326.29 ?98.05 ? 99.05
> Current __ieee754_expf: 70.69 ? 293.30 ?91.38 ? 94.76
>
> New __expf_finite: ? ? ? ? ? ? ? ? ? ? ?64.29 ? 145.14 ?42.31 ? 35.95
> New __ieee754_expf: ? ? ? ? ? ? 51.83 ? 113.14 ?34.12 ? 30.24
>
>
> Testing passed for new expf with our proprietary test system that
> tests on many intervals with different steps, checks for special
> values (from ISO C) and corner cases. Test using “make check” from
> GLIBC did not show new fails.
>
> ChangeLog:
>
> 2012-04-02 ?Liubov Dmitrieva ?<liubov.dmitrieva@gmail.com>
>
> ? ? ? ?* sysdeps/i386/fpu/multiarch/: New folder.
> ? ? ? ?* sysdeps/i386/fpu/multiarch/init-arch.c: New file.
> ? ? ? ?* sysdeps/i386/fpu/multiarch/init-arch.h: New file.
> ? ? ? ?* sysdeps/i386/fpu/multiarch/ifunc-defines.sym: New file.
> ? ? ? ?* sysdeps/i386/fpu/multiarch/Makefile: New file.
> ? ? ? ?* sysdeps/i386/fpu/multiarch/e_expf.S: New file.
> ? ? ? ?* sysdeps/i386/fpu/multiarch/e_expf-sse2.S: New file.
>
Why do we need to duplicate init-arch.c and init-arch.h?
They are in sysdeps/i386/i686/multiarch?
--
H.J.