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 [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); vector long long vec_xxpermdi (vector long long, vector long long, const int); -- 2.44.0