On Tue, Oct 25, 2011 at 2:17 AM, Richard Henderson <r...@redhat.com> wrote:
> 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.

I think we should go that far.  That would, of course, require that backends
always provide at least vec_perm_const patterns that handle
these cases, and not having that pattern would mean no support for
interleaved operations.

> Bootstrapped and tested on x86_64-linux only.  I've only cross-tested
> the ppc/spu patches.
>
> Ok?

Looks good to me.

Thanks,
Richard.

>
> 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
>
>

Reply via email to