Hi, on 2024/2/21 01:56, Carl Love wrote: > GCC maintainers: > > The patch expands an existing comment to document that the duplicates are > covered by an overloaded built-in. I am wondering if we should just go ahead > and remove the duplicates?
As the below comments Bill placed before, I think we should remove them, since users should use the standard interface vec_perm which is defined by PVIPR. They are not undocumented at all, in case some users are still using such builtins they should switch to use vec_perm instead, so even if it's stage 4 now, it looks still fine to drop them IMHO. Segher & Peter, what do you think of this? BR, Kewen > > The patch has been tested on Power 10 with no regressions. > > Please let me know if this patch is acceptable for mainline. Thanks. > > Carl > > ----------------------------------------------------- > rs6000, Update comment for the __builtin_vsx_vper* built-ins. > > There is a comment about the __builtin_vsx_vper* built-ins being > duplicates of the __builtin_altivec_* built-ins. The note says we > should consider deprecation/removeal of the __builtin_vsx_vper*. Add a > note that the _builtin_vsx_vper* built-ins are covered by the overloaded > vec_perm built-ins which use the __builtin_altivec_* built-in definitions. > > gcc/ChangeLog: > * config/rs6000/rs6000-builtins.def ( __builtin_vsx_vperm_*): > Add comment to existing comment about the built-ins. > --- > gcc/config/rs6000/rs6000-builtins.def | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/gcc/config/rs6000/rs6000-builtins.def > b/gcc/config/rs6000/rs6000-builtins.def > index 96d095da2cb..4c95429f137 100644 > --- a/gcc/config/rs6000/rs6000-builtins.def > +++ b/gcc/config/rs6000/rs6000-builtins.def > @@ -1556,6 +1556,14 @@ > ; These are duplicates of __builtin_altivec_* counterparts, and are being > ; kept for backwards compatibility. The reason for their existence is > ; unclear. TODO: Consider deprecation/removal at some point. > +; Note, __builtin_vsx_vperm_16qi, __builtin_vsx_vperm_16qi_uns, > +; __builtin_vsx_vperm_1ti, __builtin_vsx_vperm_v1ti_uns, > +; __builtin_vsx_vperm_2df, __builtin_vsx_vperm_2di, __builtin_vsx_vperm_2di, > +; __builtin_vsx_vperm_2di_uns, __builtin_vsx_vperm_4sf, > +; __builtin_vsx_vperm_4si, __builtin_vsx_vperm_4si_uns, > +; __builtin_vsx_vperm_8hi, __builtin_altivec_vperm_8hi_uns > +; are all covered by the overloaded vec_perm built-in which uses the > +; __builtin_altivec_* built-in definitions. > const vsc __builtin_vsx_vperm_16qi (vsc, vsc, vuc); > VPERM_16QI_X altivec_vperm_v16qi {} >