[PATCH 26/29] rs6000: Add Power9 builtins
Bill Schmidt
wschmidt@linux.ibm.com
Thu Jul 30 17:44:44 GMT 2020
On 7/30/20 12:15 PM, will schmidt wrote:
> On Mon, 2020-07-27 at 09:14 -0500, Bill Schmidt wrote:
>> From: Bill Schmidt <wschmidt@linux.ibm.com>
>>
>> 2020-07-26 Bill Schmidt <wschmidt@linux.ibm.com>
>>
>> * config/rs6000/rs6000-builtin-new.def: Add power9,
>> power9-vector, and power9-64 builtins.
>> ---
>> gcc/config/rs6000/rs6000-builtin-new.def | 354
>> +++++++++++++++++++++++
>> 1 file changed, 354 insertions(+)
>>
>> diff --git a/gcc/config/rs6000/rs6000-builtin-new.def
>> b/gcc/config/rs6000/rs6000-builtin-new.def
>> index 2f918c1d69e..1338f543a6a 100644
>> --- a/gcc/config/rs6000/rs6000-builtin-new.def
>> +++ b/gcc/config/rs6000/rs6000-builtin-new.def
>> @@ -2394,3 +2394,357 @@
>> XSCVSPDPN vsx_xscvspdpn {}
>>
>>
>> +; Power9 vector builtins.
>> +[power9-vector]
>> + const vus __builtin_altivec_convert_4f32_8i16 (vf, vf);
>> + CONVERT_4F32_8I16 convert_4f32_8i16 {}
>> +
>> + const unsigned int __builtin_altivec_first_match_index_v16qi (vsc,
>> vsc);
>> + VFIRSTMATCHINDEX_V16QI first_match_index_v16qi {}
> Noting a "vus" on the previous entry, was/is a define for "ui ==
> unsigned int" considered?
> Similar question for subsequent types that are still fully spelled out.
> (unsigned char, unsigned short, ... )
I did consider it, but I feel there's a balance between keeping the
lines short and keeping them readable. The vector types are egregious
space hogs, so I felt I needed to abbreviate them to avoid line wrap,
but in most cases the scalar variables are fine with normal types. One
of those YMMV situations.
>
>
> <snip>
>
>> +; Miscellaneour P9 functions
>
> Miscellaneous :-)
Thanks :)
>
> <snip>
>
>> +
>> +
>> +; These things need some review to see whether they really require
>> +; MASK_POWERPC64. For xsxexpdp, this seems to be fine for 32-bit,
>> +; because the result will always fit in 32 bits and the return
>> +; value is SImode; but the pattern currently requires TARGET_64BIT.
>> +; On the other hand, xsssigdp has a result that doesn't fit in
> perhaps xsxsigdp ?
Indeed!
Thanks very much for the review!
Bill
>
>
>> +; 32 bits, and the return value is DImode, so it seems that
>> +; TARGET_64BIT (actually TARGET_POWERPC64) is justified. TBD. ####
>> +[power9-64]
>> +; The following two are inexplicably named __builtin_altivec_* while
>> +; their load counterparts are __builtin_vsx_*. Need to deprecate
>> +; these interfaces in favor of the other naming scheme (or vice
>> versa).
> Thanks
> -Will
>
>
More information about the Gcc-patches
mailing list