This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: PPC64 libmvec sincos/sincosf ABI
- From: Bill Schmidt <wschmidt at linux dot ibm dot com>
- To: Tulio Magno Quites Machado Filho <tuliom at ascii dot art dot br>, GT <tnggil at protonmail dot com>, "libc-alpha\\@sourceware.org" <libc-alpha at sourceware dot org>
- Cc: Joseph Myers <joseph at codesourcery dot com>, nd at arm dot com
- Date: Thu, 8 Aug 2019 08:33:46 -0500
- Subject: Re: PPC64 libmvec sincos/sincosf ABI
- References: <m-AhGqPevr7I_c5jF1posRA_bT8Gb8ybwyCgHJP5MbdPs1O6Yv60386A3hgYDZtEaij4iuLbqulf-JSlXj8v6mci_MNQDnHMd1mKpd1I0nI=@protonmail.com> <87blx0isku.fsf@linux.ibm.com>
On 8/7/19 4:17 PM, Tulio Magno Quites Machado Filho wrote:
> GT <tnggil@protonmail.com> writes:
>
>> I believe PPC64 needs to implement functions analogous to x86_64 _ZGVbN4vvv_sincosf, _ZGVbN4vl4l4_sincosf, _ZGVbN2vvv_sincos, _ZGVbN2vl8l8_sincos.
> I can't follow you here.
> Why do you think both implementations for each type are necessary?
>
> AFAIU, both _ZGVbN4vvv_sincosf and _ZGVbN2vvv_sincos should not exist.
> Or are you implying they're required somewhere else?
>
>> The function signatures of scalar sincosf and sincos are:
>>
>> sincosf (float, float *, float *)
>> sincos (double, double *, double *)
>>
>> How do I determine the vector function signatures in C, of the 4 vector functions referenced at the top of this message?
> For _ZGVbN4vl4l4_sincosf and _ZGVbN2vl8l8_sincos I'd write them as:
>
> void sincosf (vector float, vector float *, vector float *);
> void sincos (vector double, vector double *, vector double *);
>
I'm trying to work my way into understanding the veclibabi support in
GCC, so please bear with me.
Why are we interested in sincos at all? There is no handling of sincos
in the i386 SVML or ACML interfaces for libmvec. They handle only sin
and cos separately, as does libmassv for Power. I am coming late to the
discussion, but I don't understand how this fits into the libmvec ABI
requirements.
Because sincos has an oddball interface, it doesn't fit in well with the
-mveclibabi=* machinery, so far as I can tell.
Thanks,
Bill