This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 0/6] More vector permutation work
- From: Richard Henderson <rth at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: irar at il dot ibm dot com, dje dot gcc at gmail dot com, davem at davemloft dot net, uweigand at de dot ibm dot com
- Date: Mon, 24 Oct 2011 17:17:23 -0700
- Subject: [PATCH 0/6] More vector permutation work
The Idea with this patch set is to re-arrange vector permutation
so that it can be used to implement other patterns automatically.
In particular, Altivec, SPU currently have (and Sparc VIS would need)
a large amount of boilerplate code that transforms several higher
level tree codes into vector permutation inside the backend. This
seems a bit unnecessary.
It's arguable that we could simply make VEC_PERM_EXPR the only code
that gets generated at the vectorizer level, and drop some of these
other patterns entirely. I'm not 100% sure we should go that far,
but even if we did, I still think this is a good cleanup.
Bootstrapped and tested on x86_64-linux only. I've only cross-tested
the ppc/spu patches.
Ok?
r~
Richard Henderson (6):
Fix typos in the names of vec_extract & vec_interleave tree codes.
Change vec_perm checking and expansion level.
Implement interleave via permutation.
spu: Remove vec_extract_even/odd and vec_interleave expanders.
rs6000: Remove some vec_extract_even/odd expanders.
i386: Delete the vec_extract_even/odd patterns.
gcc/config/i386/i386.c | 18 +--
gcc/config/i386/sse.md | 29 ---
gcc/config/rs6000/altivec.md | 134 +-------------
gcc/config/spu/spu.md | 433 ------------------------------------------
gcc/doc/tm.texi | 2 +-
gcc/expr.c | 28 +--
gcc/optabs.c | 331 ++++++++++++++++++++++----------
gcc/optabs.h | 7 +-
gcc/target.def | 7 +-
gcc/tree-vect-data-refs.c | 80 +++-----
gcc/tree-vect-generic.c | 23 ++-
gcc/tree-vect-slp.c | 36 ++--
gcc/tree-vect-stmts.c | 22 ++-
gcc/tree.def | 8 +-
14 files changed, 343 insertions(+), 815 deletions(-)
--
1.7.6.4