Hi, on 2024/4/20 05:18, Carl Love wrote: > rs6000, extend vec_xxpermdi built-in for __int128 args > > Add a new overloaded instance for vec_xxpermdi > > __int128 vec_xxpermdi (__int128, __int128, const int); > > Update the documentation to include a reference to the new built-in > instance. > > gcc/ChangeLog: > * config/rs6000/rs6000-builtins.def (vec_xxpermdi): Add new > overloaded built-in instance. > --- > gcc/config/rs6000/rs6000-overload.def | 2 ++ > gcc/doc/extend.texi | 1 + > 2 files changed, 3 insertions(+) > > diff --git a/gcc/config/rs6000/rs6000-overload.def > b/gcc/config/rs6000/rs6000-overload.def > index 5912c9452f4..49962e2f2a2 100644 > --- a/gcc/config/rs6000/rs6000-overload.def > +++ b/gcc/config/rs6000/rs6000-overload.def > @@ -4932,6 +4932,8 @@ > XXPERMDI_4SF XXPERMDI_VF > vd __builtin_vsx_xxpermdi (vd, vd, const int); > XXPERMDI_2DF XXPERMDI_VD > + vsq __builtin_vsx_xxpermdi (vsq, vsq, const int); > + XXPERMDI_1TI XXPERMDI_1TI
This actually introduces the signed __int128, considering the other existing ones, I think we want both signed and unsigned. > > [VEC_XXSLDWI, vec_xxsldwi, __builtin_vsx_xxsldwi] > vsc __builtin_vsx_xxsldwi (vsc, vsc, const int); > diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi > index 86b8e536dbe..47cf2f3bc8b 100644 > --- a/gcc/doc/extend.texi > +++ b/gcc/doc/extend.texi > @@ -22505,6 +22505,7 @@ void vec_vsx_st (vector bool char, int, vector bool > char *); > void vec_vsx_st (vector bool char, int, unsigned char *); > void vec_vsx_st (vector bool char, int, signed char *); > > +vector __int128 vec_xxpermdi (vector __int128, vector __int128, const int); > vector double vec_xxpermdi (vector double, vector double, const int); > vector float vec_xxpermdi (vector float, vector float, const int); Nit: Considering the existing ones sorted by element size descending, I guess it's better to move the above here (and with the explicit signed and unsigned). And we need a test case for it as well? BR, Kewen > vector long long vec_xxpermdi (vector long long, vector long long, const > int);