[PATCHv5] powerpc64le: ifunc select *f128 routines in multiarch mode

Paul E Murphy murphyp@linux.ibm.com
Tue Dec 1 14:24:40 GMT 2020



On 11/30/20 11:00 AM, Raphael M Zinsly wrote:
> 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.
> 

Pushed.  Thank you all for the feedback.


More information about the Libc-alpha mailing list