diff options
author | kelvin <kelvin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-06-30 17:07:42 +0000 |
---|---|---|
committer | kelvin <kelvin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-06-30 17:07:42 +0000 |
commit | 23f060e41d893d7b1d17768694c1092a5fa5204c (patch) | |
tree | bbecae885b99395c4012e9eede022b4781dd6410 /gcc/doc | |
parent | c4f2f3f7d6d24201bdcb87d9736dbe7d04852256 (diff) | |
download | gcc-23f060e41d893d7b1d17768694c1092a5fa5204c.tar.gz |
gcc/ChangeLog:
2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
Backport from trunk r237390
2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
* config/rs6000/altivec.h (vec_absd): New macro for vector absolute
difference unsigned.
(vec_absdb): New macro for vector absolute difference unsigned
byte.
(vec_absdh): New macro for vector absolute difference unsigned
half-word.
(vec_absdw): New macro for vector absolute difference unsigned word.
* config/rs6000/altivec.md (UNSPEC_VADU): New value.
(vadu<mode>3): New insn.
(*p9_vadu<mode>3): New insn.
* config/rs6000/rs6000-builtin.def (vadub): New built-in
definition.
(vaduh): New built-in definition.
(vaduw): New built-in definition.
(vadu): New overloaded built-in definition.
(vadub): New overloaded built-in definition.
(vaduh): New overloaded built-in definition.
(vaduw): New overloaded built-in definition.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
overloaded vector absolute difference unsigned functions.
* doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
the ISA 3.0 vector absolute difference unsigned built-in functions.
gcc/testsuite/ChangeLog:
2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
Backport from trunk r237390
2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
Backport from trunk r237646
2016-06-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
* gcc.target/powerpc/vadsdu-0.c: New test.
* gcc.target/powerpc/vadsdu-1.c: New test.
* gcc.target/powerpc/vadsdu-2.c: New test.
* gcc.target/powerpc/vadsdu-3.c: New test.
* gcc.target/powerpc/vadsdu-4.c: New test.
* gcc.target/powerpc/vadsdu-5.c: New test.
* gcc.target/powerpc/vadsdub-1.c: New test.
* gcc.target/powerpc/vadsdub-2.c: New test.
* gcc.target/powerpc/vadsduh-1.c: New test.
* gcc.target/powerpc/vadsduh-2.c: New test.
* gcc.target/powerpc/vadsduw-1.c: New test.
* gcc.target/powerpc/vadsduw-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-6-branch@237886 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/extend.texi | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 4759ec912a3..b1d096e8bd5 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -16523,6 +16523,31 @@ vector __int128_t vec_vprtybq (vector __int128_t); vector __uint128_t vec_vprtybd (vector __uint128_t); @end smallexample +The following built-in functions are available for the PowerPC family +of processors, starting with ISA 3.0 or later (@option{-mcpu=power9}) +or with @option{-mpower9-vector}: +@smallexample +__vector unsigned char +vec_absd (__vector unsigned char arg1, __vector unsigned char arg2); +__vector unsigned short +vec_absd (__vector unsigned short arg1, __vector unsigned short arg2); +__vector unsigned int +vec_absd (__vector unsigned int arg1, __vector unsigned int arg2); + +__vector unsigned char +vec_absdb (__vector unsigned char arg1, __vector unsigned char arg2); +__vector unsigned short +vec_absdh (__vector unsigned short arg1, __vector unsigned short arg2); +__vector unsigned int +vec_absdw (__vector unsigned int arg1, __vector unsigned int arg2); +@end smallexample + +The @code{vec_absd}, @code{vec_absdb}, @code{vec_absdh}, and +@code{vec_absdw} built-in functions each computes the absolute +differences of the pairs of vector elements supplied in its two vector +arguments, placing the absolute differences into the corresponding +elements of the vector result. + If the cryptographic instructions are enabled (@option{-mcrypto} or @option{-mcpu=power8}), the following builtins are enabled. |