]> git.ipfire.org Git - thirdparty/gcc.git/commit
rs6000: Enable new built-in support, with test suite and altivec.h changes
authorBill Schmidt <wschmidt@linux.ibm.com>
Thu, 2 Dec 2021 03:11:55 +0000 (21:11 -0600)
committerBill Schmidt <wschmidt@linux.ibm.com>
Thu, 2 Dec 2021 16:40:14 +0000 (10:40 -0600)
commitd08236359eb22918ba067489edcec02857109d09
tree4b7af886707655d1628ff9636cb19be5a158ed89
parentc9dd01314d8467e3f6615b6e800ba25706d70320
rs6000: Enable new built-in support, with test suite and altivec.h changes

This patch enables the new built-in infastructure for the Power back end.
To avoid any patches causing regressions that would affect bisection, this is a
combined patch that also includes all the test suite changes and the necessary
modifications to altivec.h.  The patches included here are the following:

https://gcc.gnu.org/pipermail/gcc-patches/2021-November/584638.html
https://gcc.gnu.org/pipermail/gcc-patches/2021-September/578613.html
https://gcc.gnu.org/pipermail/gcc-patches/2021-November/584829.html
https://gcc.gnu.org/pipermail/gcc-patches/2021-September/578614.html

The third of these four was broken up into multiple patches for review, but
effectively all pieces of it were accepted after an independent patch that
modified the error handling for overloaded builtins.

2021-12-02  Bill Schmidt  <wschmidt@linux.ibm.com>

gcc/
* config/rs6000/altivec.h: Delete a number of #defines that are now
superfluous.  Alphabetize.  Include rs6000-vecdefines.h.  Include some
synonyms.
* config/rs6000/rs6000-builtin-new.def (CMPB): Flag as no32bit.
(BPERMD): Flag as 32bit (needing special handling for 32-bit).
(UNPACK_TD): Return unsigned long long instead of unsigned long.
(GET_TEXASR): Return unsigned long instead of unsigned long long.
(GET_TEXASRU): Likewise.
(GET_TFHAR): Likewise.
(GET_TFIAR): Likewise.
(SET_TEXASR): Pass unsigned long instead of unsigned long long.
(SET_TEXASRU): Likewise.
(SET_TFHAR): Likewise.
(SET_TFIAR): Likewise.
(TABORTDC): Likewise.
(TABORTDCI): Likewise.
* config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): Fix error
handling for no32bit.  Add 32bit handling for RS6000_BIF_BPERMD.
* config/rs6000/rs6000-gen-builtins.c (write_init_file): Initialize
new_builtins_are_live to 1.

gcc/testsuite/
* gcc.target/powerpc/bfp/scalar-extract-exp-2.c: Adjust expected error
message.
* gcc.target/powerpc/bfp/scalar-extract-sig-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-5.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-8.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-neg-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-neg-3.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-neg-5.c: Likewise.
* gcc.target/powerpc/byte-in-set-2.c: Likewise.
* gcc.target/powerpc/cmpb-2.c: Likewise.
* gcc.target/powerpc/cmpb-3.c: Likewise.
* gcc.target/powerpc/cmpb32-2.c: Likewise.
* gcc.target/powerpc/crypto-builtin-2.c: Likewise.
* gcc.target/powerpc/fold-vec-splat-floatdouble.c: Remove invalid
test and adjust xxpermdi count.
* gcc.target/powerpc/fold-vec-splat-longlong.c: Remove invalid
tests and adjust instruction counts.
* gcc.target/powerpc/fold-vec-splat-misc-invalid.c: Adjust expected
error messages.
* gcc.target/powerpc/int_128bit-runnable.c: Adjust instruction counts.
* gcc.target/powerpc/pr80315-1.c: Adjust expected error message.
* gcc.target/powerpc/pr80315-2.c: Likewise.
* gcc.target/powerpc/pr80315-3.c: Likewise.
* gcc.target/powerpc/pr80315-4.c: Likewise.
* gcc.target/powerpc/pr88100.c: Likewise.
* gcc.target/powerpc/pragma_misc9.c: Likewise.
* gcc.target/powerpc/pragma_power8.c: Undef _RS6000_VECDEFINES_H.
* gcc.target/powerpc/pragma_power9.c: Likewise.
* gcc.target/powerpc/test_fpscr_drn_builtin_error.c: Adjust expected
error messages.
* gcc.target/powerpc/test_fpscr_rn_builtin_error.c: Likewise.
* gcc.target/powerpc/vec-gnb-2.c: Likewise.
* gcc.target/powerpc/vsu/vec-all-nez-7.c: Likewise.
* gcc.target/powerpc/vsu/vec-any-eqz-7.c: Likewise.
* gcc.target/powerpc/vsu/vec-cmpnez-7.c: Likewise.
* gcc.target/powerpc/vsu/vec-cntlz-lsbb-2.c: Likewise.
* gcc.target/powerpc/vsu/vec-cnttz-lsbb-2.c: Likewise.
* gcc.target/powerpc/vsu/vec-xl-len-13.c: Likewise.
* gcc.target/powerpc/vsu/vec-xst-len-12.c: Likewise.
39 files changed:
gcc/config/rs6000/altivec.h
gcc/config/rs6000/rs6000-builtin-new.def
gcc/config/rs6000/rs6000-call.c
gcc/config/rs6000/rs6000-gen-builtins.c
gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-2.c
gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-2.c
gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-2.c
gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-5.c
gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-8.c
gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-2.c
gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-3.c
gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-5.c
gcc/testsuite/gcc.target/powerpc/byte-in-set-2.c
gcc/testsuite/gcc.target/powerpc/cmpb-2.c
gcc/testsuite/gcc.target/powerpc/cmpb-3.c
gcc/testsuite/gcc.target/powerpc/cmpb32-2.c
gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c
gcc/testsuite/gcc.target/powerpc/fold-vec-splat-floatdouble.c
gcc/testsuite/gcc.target/powerpc/fold-vec-splat-longlong.c
gcc/testsuite/gcc.target/powerpc/fold-vec-splat-misc-invalid.c
gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c
gcc/testsuite/gcc.target/powerpc/pr80315-1.c
gcc/testsuite/gcc.target/powerpc/pr80315-2.c
gcc/testsuite/gcc.target/powerpc/pr80315-3.c
gcc/testsuite/gcc.target/powerpc/pr80315-4.c
gcc/testsuite/gcc.target/powerpc/pr88100.c
gcc/testsuite/gcc.target/powerpc/pragma_misc9.c
gcc/testsuite/gcc.target/powerpc/pragma_power8.c
gcc/testsuite/gcc.target/powerpc/pragma_power9.c
gcc/testsuite/gcc.target/powerpc/test_fpscr_drn_builtin_error.c
gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin_error.c
gcc/testsuite/gcc.target/powerpc/vec-gnb-2.c
gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-7.c
gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-7.c
gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-7.c
gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-2.c
gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-2.c
gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-13.c
gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-12.c