rs6000: Add xxgenpcvwm and xxgenpcvdm
authorCarl Love <cel@us.ibm.com>
Tue, 12 May 2020 02:22:07 +0000 (21:22 -0500)
committerBill Schmidt <wschmidt@linux.ibm.com>
Tue, 12 May 2020 02:22:07 +0000 (21:22 -0500)
commitb8eaa7545b643a418aa44054b8f2d79a2b3c6ef2
tree5e08d7cdae0ef533b9fa0adb968c0baf4a728f22
parent5ca575182338a2670f3e7d636c48a2e2ef2d32dc
rs6000: Add xxgenpcvwm and xxgenpcvdm

Add support for xxgenpcv[dw]m, along with individual and overloaded
built-in functions for access.

[gcc]

2020-05-11  Carl Love  <cel@us.ibm.com>

* config/rs6000/altivec.h (vec_genpcvm): New #define.
* config/rs6000/rs6000-builtin.def (XXGENPCVM_V16QI): New built-in
instantiation.
(XXGENPCVM_V8HI): Likewise.
(XXGENPCVM_V4SI): Likewise.
(XXGENPCVM_V2DI): Likewise.
(XXGENPCVM): New overloaded built-in instantiation.
* config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Add
entries for FUTURE_BUILTIN_VEC_XXGENPCVM.
(altivec_expand_builtin): Add special handling for
FUTURE_BUILTIN_VEC_XXGENPCVM.
(builtin_function_type): Add handling for
FUTURE_BUILTIN_XXGENPCVM_{V16QI,V8HI,V4SI,V2DI}.
* config/rs6000/vsx.md (VSX_EXTRACT_I4): New mode iterator.
(UNSPEC_XXGENPCV): New constant.
(xxgenpcvm_<mode>_internal): New insn.
(xxgenpcvm_<mode>): New expansion.
* doc/extend.texi: Add documentation for vec_genpcvm built-ins.

[gcc/testsuite]

2020-05-11  Carl Love  <cel@us.ibm.com>

* gcc.target/powerpc/xxgenpc-runnable.c: New.
gcc/ChangeLog
gcc/config/rs6000/altivec.h
gcc/config/rs6000/rs6000-builtin.def
gcc/config/rs6000/rs6000-call.c
gcc/config/rs6000/vsx.md
gcc/doc/extend.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/xxgenpc-runnable.c [new file with mode: 0644]