On Wed, 2020-07-08 at 12:59 -0700, Carl Love wrote: > [PATCH 3/6] rs6000, Add vector replace builtin support > > ---------------------------------- > V4 Fixes: > > Rebased on mainline. Changed FUTURE to P10 in code and ChangeLog. > Set DEBUG to 0 in vec-replace-word-runnable.c test program. > Fixed too long lines in ChangeLog. > > ---------------------------------- > V3 fixes: > Fixed bad word breaks in ChangLog. > Replace spaces with tabs in ChangeLog. > > ------------------------------------ > v2 fixes: > > change log entries config/rs6000/vsx.md, config/rs6000/rs6000-builtin.def, > config/rs6000/rs6000-call.c. > > gcc/config/rs6000/rs6000-call.c: fixed if check for 3rd arg between 0 and 3 > fixed if check for 3rd arg between 0 and 12 > > gcc/config/rs6000/vsx.md: removed REPLACE_ELT_atr definition and used > VS_scalar instead. > removed REPLACE_ELT_inst definition and used > <mode> instead > fixed spelling mistake on Endianness. > fixed indenting for vreplace_elt_<mode> > > ----------------------------------- > > GCC maintainers: > > The following patch adds support for builtins vec_replace_elt and > vec_replace_unaligned. > > The patch has been compiled and tested on > > powerpc64le-unknown-linux-gnu (Power 9 LE) > > and mambo with no regression errors. > > Please let me know if this patch is acceptable for the mainline > branch. Thanks. > > Carl Love > > ------------------------------------------------------- > > gcc/ChangeLog > > 2020-07-06 Carl Love <c...@us.ibm.com> > > * config/rs6000/altivec.h: Add define for vec_replace_elt and > vec_replace_unaligned. > * config/rs6000/vsx.md (UNSPEC_REPLACE_ELT, UNSPEC_REPLACE_UN): New.
New unspecs. > (REPLACE_ELT): New mode iterator. > (REPLACE_ELT_atr, REPLACE_ELT_inst, REPLACE_ELT_char, > REPLACE_ELT_sh, REPLACE_ELT_max): New mode attributes. _atr and _inst are no longer in the patch. > (vreplace_un_<mode>, vreplace_elt_<mode>_inst): New. > * config/rs6000/rs6000-builtin.def (VREPLACE_ELT_V4SI, > VREPLACE_ELT_UV4SI, VREPLACE_ELT_V4SF, VREPLACE_ELT_UV2DI, > VREPLACE_ELT_V2DF, VREPLACE_UN_V4SI, VREPLACE_UN_UV4SI, > VREPLACE_UN_V4SF, VREPLACE_UN_V2DI, VREPLACE_UN_UV2DI, > VREPLACE_UN_V2DF, (REPLACE_ELT, REPLACE_UN): New. New builtin entries. VREPLACE_ELT_V2DI is missing from list. > * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_REPLACE_ELT, > P10_BUILTIN_VEC_REPLACE_UN): New. New what? > (rs6000_expand_ternop_builtin): Add 3rd argument checks for diff suggests this is in rs6000_expand_quaternop_builtin() ? > CODE_FOR_vreplace_elt_v4si, CODE_FOR_vreplace_elt_v4sf, > CODE_FOR_vreplace_un_v4si, CODE_FOR_vreplace_un_v4sf. > (builtin_function_type) [P10_BUILTIN_VREPLACE_ELT_UV4SI, > P10_BUILTIN_VREPLACE_ELT_UV2DI, P10_BUILTIN_VREPLACE_UN_UV4SI, > P10_BUILTIN_VREPLACE_UN_UV2DI]: New cases. > * doc/extend.texi: Add description for vec_replace_elt and > vec_replace_unaligned builtins. > > gcc/testsuite/ChangeLog > > 2020-07-06 Carl Love <c...@us.ibm.com> > > * gcc.target/powerpc/vec-replace-word.c: Add new test. s/Add new/New/ Nothing else jumped out at me below. <snip> Thanks -Will