Implement SLP of internal functions
authorRichard Sandiford <richard.sandiford@linaro.org>
Thu, 12 Jul 2018 13:02:17 +0000 (13:02 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Thu, 12 Jul 2018 13:02:17 +0000 (13:02 +0000)
commit5249ee4d79855edda91b26bb07c9c8737cdfc96c
tree79b0f24d85f96dc00b4f8858b92f7df81b7181bf
parent2c58d42c3ed599b4c2976fc173eefd8e016ea216
Implement SLP of internal functions

SLP of calls was previously restricted to built-in functions.
This patch extends it to internal functions.

2018-07-12  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* internal-fn.h (vectorizable_internal_fn_p): New function.
* tree-vect-slp.c (compatible_calls_p): Likewise.
(vect_build_slp_tree_1): Remove nops argument.  Handle calls
to internal functions.
(vect_build_slp_tree_2): Update call to vect_build_slp_tree_1.

gcc/testsuite/
* gcc.dg/vect/vect-cond-arith-6.c: New test.
* gcc.target/aarch64/sve/cond_arith_4.c: Likewise.
* gcc.target/aarch64/sve/cond_arith_4_run.c: Likewise.
* gcc.target/aarch64/sve/cond_arith_5.c: Likewise.
* gcc.target/aarch64/sve/cond_arith_5_run.c: Likewise.
* gcc.target/aarch64/sve/slp_14.c: Likewise.
* gcc.target/aarch64/sve/slp_14_run.c: Likewise.

From-SVN: r262590
gcc/ChangeLog
gcc/internal-fn.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/vect-cond-arith-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_arith_4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_arith_4_run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_arith_5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_arith_5_run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/slp_14.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/slp_14_run.c [new file with mode: 0644]
gcc/tree-vect-slp.c