This is the mail archive of the gcc-cvs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

r243063 - in /branches/ARM/sve-branch/gcc: conf...


Author: rsandifo
Date: Wed Nov 30 19:08:22 2016
New Revision: 243063

URL: https://gcc.gnu.org/viewcvs?rev=243063&root=gcc&view=rev
Log:
SLP reductions with variable-length vectors

[Branch only patch -- not intended for trunk in its current state]

Two things prevented us from using SLP reductions with variable-length
vectors:

(1) Previously we had no way of constructing the initial vector.
    This patch does it by creating a vector full of the neutral
    identity value and then using INSR to insert any non-identity
    inputs (which are needed for double reductions).

(2) Previously the epilogue would extract the vector elements
    associated with each SLP statement and do scalar arithmetic
    on these individual elements.  The patch instead creates
    a reduction vector for each SLP statement, replacing the
    elements for other SLP statements with the identity value.
    It then uses a hardware reduction instruction on each vector.

Added:
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_slp_5.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_slp_5_run.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_slp_6.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_slp_6_run.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_slp_7.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_slp_7_run.c
Modified:
    branches/ARM/sve-branch/gcc/config/aarch64/aarch64-sve.md
    branches/ARM/sve-branch/gcc/config/aarch64/aarch64.md
    branches/ARM/sve-branch/gcc/doc/md.texi
    branches/ARM/sve-branch/gcc/internal-fn.def
    branches/ARM/sve-branch/gcc/optabs.def
    branches/ARM/sve-branch/gcc/testsuite/gcc.dg/vect/pr37027.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.dg/vect/pr67790.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.dg/vect/slp-reduc-1.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.dg/vect/slp-reduc-2.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.dg/vect/slp-reduc-3.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.dg/vect/slp-reduc-5.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.dg/vect/slp-reduc-6.c
    branches/ARM/sve-branch/gcc/tree-vect-loop.c
    branches/ARM/sve-branch/gcc/tree-vect-slp.c


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]