]> git.ipfire.org Git - thirdparty/gcc.git/commit
rs6000, Add new overloaded vector shift builtin int128 variants
authorCarl Love <cel@linux.ibm.com>
Wed, 7 Aug 2024 14:55:03 +0000 (10:55 -0400)
committerCarl Love <cel@linux.ibm.com>
Wed, 7 Aug 2024 14:57:01 +0000 (10:57 -0400)
commit083918a343d6cb9fd28c8b47dd1138220d95c820
treee1861773c234d01f6740bc292b7486b5b7b0f822
parent5b999997d1a2102dca57918947d7e40a6ca68871
rs6000, Add new overloaded vector shift builtin int128 variants

Add the signed __int128 and unsigned __int128 argument types for the
overloaded built-ins vec_sld, vec_sldb, vec_sldw, vec_sll, vec_slo,
vec_srdb, vec_srl, vec_sro.  For each of the new argument types add a
testcase and update the documentation for the built-in.

gcc/ChangeLog:
* config/rs6000/altivec.md (vs<SLDB_lr>db_<mode>): Change
define_insn iterator to VEC_IC.
* config/rs6000/rs6000-builtins.def (__builtin_altivec_vsldoi_v1ti,
__builtin_vsx_xxsldwi_v1ti, __builtin_altivec_vsldb_v1ti,
__builtin_altivec_vsrdb_v1ti): New builtin definitions.
* config/rs6000/rs6000-overload.def (vec_sld, vec_sldb, vec_sldw,
vec_sll, vec_slo, vec_srdb, vec_srl, vec_sro): New overloaded
definitions.
* doc/extend.texi (vec_sld, vec_sldb, vec_sldw, vec_sll, vec_slo,
vec_srdb, vec_srl, vec_sro): Add documentation for new overloaded
built-ins.

gcc/testsuite/ChangeLog:
* gcc.target/powerpc/vec-shift-double-runnable-int128.c: New test
file.
gcc/config/rs6000/altivec.md
gcc/config/rs6000/rs6000-builtins.def
gcc/config/rs6000/rs6000-overload.def
gcc/doc/extend.texi
gcc/testsuite/gcc.target/powerpc/vec-shift-double-runnable-int128.c [new file with mode: 0644]