This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [RESEND] [PATCH] PPC64: First in the series of patches implementing POWER8 vector math.
- From: Joseph Myers <joseph at codesourcery dot com>
- To: GT <tnggil at protonmail dot com>
- Cc: "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>
- Date: Thu, 28 Feb 2019 15:12:59 +0000
- Subject: Re: [RESEND] [PATCH] PPC64: First in the series of patches implementing POWER8 vector math.
- References: <mbadK9r7XB9XyVASxb9oTqB0JO9qz9JKdC9mx1hUwBGcmMy7upcWFTvWuWGecBaMT3o5duV5MBjyRTEsgrtcpGltovJXQSJPH1rtECFMW-Y=@protonmail.com> <alpine.DEB.2.21.1902271753320.2628@digraph.polyomino.org.uk> <-4MwnqT5aPxtIs3Sn_pYDJmkKScUDuJAS75shrWIKc8YC1xfRCf_QrRw3j-74aKwtc_6374LYrCBJcKrjMcCrw48kx4Lwu3WqbcXy0jOOU8=@protonmail.com>
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