This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RESEND] [PATCH] PPC64: First in the series of patches implementing POWER8 vector math.


On Thu, 28 Feb 2019, GT wrote:

> To summarize, then, the status of glibc's PPC64/POWER8 vector math support:
> 
> 1. A party responsible for the PPC64 toolchain must specify the exact
> Vector Function ABI with which to adhere.

Yes.  Currently, we have explicit statements from Tulio that the ABI 
*cannot* be confirmed yet 
<https://sourceware.org/ml/libc-alpha/2019-02/msg00489.html> 
<https://sourceware.org/ml/libc-alpha/2019-02/msg00455.html> 
<https://sourceware.org/ml/libc-alpha/2019-02/msg00490.html>.

> 2. GCC support for the new PPC64 vector math library must be implemented; and
> testing will have to demonstrate that the added functionality in GCC does
> vectorize function calls in applications to use vector math versions.

Yes (that is, GCC support to generate appropriate vector function calls 
given the pragmas used in the header - that support would work equally 
well for any other code using those pragmas, not just this library).  To 
demonstrate that these functions do not suffer from the problem the x86_64 
sincos had when it was added (of implementing an ABI different from the 
one the compiler expected).

> 3. Pending resolution of the two items above, PPC64 patches for libmvec will
> be kept out of libc-alpha.

I fully expect them to continue to be discussed in libc-alpha - and once 
GCC patches are available, even uncommitted, you can use those in testing 
the libmvec patches and report the results.  It's just that they aren't 
ready for commit without compiler support confirmed to match the ABI 
implemented.  There are several past instances of prematurely committed 
glibc patches causing problems when it turned out they didn't match the 
upstream compiler or Linux kernel.

As another point for the ongoing discussion of these patches: you'll have 
noticed the recent addition of a Fortran header for x86 to allow Fortran 
code to use libmvec there.  So such a header should also be added for 
powerpc.  Now, the x86 header uses if('x86_64') and if('x32') to ensure it 
declares the functions to be available only for appropriate ABIs.  You'll 
need an appropriate powerpc-specific ABI name in the GCC support, unless 
the GCC code ends up with generic support for lp64 / ilp32 conditionals 
and those are suitable for the powerpc header.

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]