[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