On Mon, 2020-07-27 at 09:14 -0500, Bill Schmidt wrote:
> From: Bill Schmidt <wschm...@linux.ibm.com>
> 
> 2020-07-26  Bill Schmidt  <wschm...@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, ... )


<snip>

> +; Miscellaneour P9 functions


Miscellaneous   :-) 

<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 ? 


> +; 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


Reply via email to