[PATCHv5] powerpc64le: ifunc select *f128 routines in multiarch mode
Raphael M Zinsly
rzinsly@linux.ibm.com
Mon Nov 30 17:00:51 GMT 2020
On 02/11/2020 12:27, Paul E. Murphy via Libc-alpha wrote:
> Programatically generate simple wrappers for interesting libm *f128
> objects. Selected functions are transcendental functions or
> those with trivial compiler builtins. This can result in a 2-3x
> speedup (e.g logf128 and expf128).
>
> A second set of implementation files are generated which include
> the first implementation encountered along the search path. This
> usually works, except when a wrapper is overriden and makefile
> search order slightly diverges from include order. Likewise,
> wrapper object files are created for each generated file. These
> hold the ifunc selection routines which export ABI.
>
> Next, several shared headers are intercepted to control renaming of
> asm function redirects are used first, and sometimes macro renames
> if the former is impractical.
>
> Notably, if the request machine supports hardware IEEE128 (i.e POWER9
> and newer) this ifunc machinery is disabled. Likewise existing
> ifunc support for float128 is consolidated into this (e.g sqrtf128
> and fmaf128).
LGTM, I tested on POWER8 and POWER9.
--
Raphael Moreira Zinsly
IBM
Linux on Power Toolchain
More information about the Libc-alpha
mailing list