]> gcc.gnu.org Git - gcc.git/commit
rs6000: Add vgnb
authorKelvin Nilsen <kelvin@gcc.gnu.org>
Mon, 11 May 2020 15:13:14 +0000 (10:13 -0500)
committerBill Schmidt <wschmidt@linux.ibm.com>
Mon, 11 May 2020 15:13:14 +0000 (10:13 -0500)
commit7c00c55914f89bf46ca5d01c7d76e2fcedf795f9
treee4a8d38848522133e27ca8cc30df265c04285bb1
parent894ac7bce590dc5036c7f1477b881dc767ce2e5a
rs6000: Add vgnb

Add support for the vgnb instruction, which gathers every Nth bit
per vector element.

[gcc]

2020-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
    Bill Schmidt  <wschmidt@linux.ibm.com>

* config/rs6000/altivec.h (vec_gnb): New #define.
* config/rs6000/altivec.md (UNSPEC_VGNB): New constant.
(vgnb): New insn.
* config/rs6000/rs6000-builtin.def (BU_FUTURE_OVERLOAD_1): New
#define.
(BU_FUTURE_OVERLOAD_2): Likewise.
(BU_FUTURE_OVERLOAD_3): Likewise.
(__builtin_altivec_gnb): New built-in function.
(__buiiltin_vec_gnb): New overloaded built-in function.
* config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
Define overloaded forms of __builtin_vec_gnb.
(rs6000_expand_binop_builtin): Add error checking for 2nd argument
of __builtin_vec_gnb.
(builtin_function_type): Mark return value and arguments unsigned
for FUTURE_BUILTIN_VGNB.
* doc/extend.texi (PowerPC AltiVec Built-in Functions Available
for a Future Architecture): Add description of vec_gnb built-in
function.

[gcc/testsuite]

2020-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
    Bill Schmidt  <wschmidt@linux.ibm.com>

* gcc.target/powerpc/vec-gnb-0.c: New test.
* gcc.target/powerpc/vec-gnb-1.c: New test.
* gcc.target/powerpc/vec-gnb-10.c: New test.
* gcc.target/powerpc/vec-gnb-2.c: New test.
* gcc.target/powerpc/vec-gnb-3.c: New test.
* gcc.target/powerpc/vec-gnb-4.c: New test.
* gcc.target/powerpc/vec-gnb-5.c: New test.
* gcc.target/powerpc/vec-gnb-6.c: New test.
* gcc.target/powerpc/vec-gnb-7.c: New test.
* gcc.target/powerpc/vec-gnb-8.c: New test.
* gcc.target/powerpc/vec-gnb-9.c: New test.
18 files changed:
gcc/ChangeLog
gcc/config/rs6000/altivec.h
gcc/config/rs6000/altivec.md
gcc/config/rs6000/rs6000-builtin.def
gcc/config/rs6000/rs6000-call.c
gcc/doc/extend.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/vec-gnb-0.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/vec-gnb-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/vec-gnb-10.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/vec-gnb-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/vec-gnb-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/vec-gnb-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/vec-gnb-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/vec-gnb-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/vec-gnb-7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/vec-gnb-8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/vec-gnb-9.c [new file with mode: 0644]
This page took 0.069673 seconds and 5 git commands to generate.