This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [rfc] new tree-codes/optabs for vectorization of non-unit-strideaccesses
- From: Dorit Naishlos <DORIT at il dot ibm dot com>
- To: Steven Bosscher <stevenb at suse dot de>
- Cc: gcc at gcc dot gnu dot org, Ira Rosen <IRAR at il dot ibm dot com>, Richard Henderson <rth at redhat dot com>
- Date: Thu, 17 Nov 2005 17:51:29 +0200
- Subject: Re: [rfc] new tree-codes/optabs for vectorization of non-unit-strideaccesses
Steven Bosscher <stevenb@suse.de> wrote on 11/16/2005 10:39:24 PM:
> On Wednesday 16 November 2005 15:35, Dorit Naishlos wrote:
> > We'd like to suggest a few new tree-codes/optabs in order to express
the
> > extraction and merging of elements from/to vectors.
>
> Watch out for tree code starvation:
>
> $ ~/devel/gomp-branch/gcc> grep ^DEFTREECODE *.def | wc
> 181 908 12483
> $ ~/devel/gomp-branch/gcc> cd cp
> $ ~/devel/gomp-branch/gcc/cp> grep ^DEFTREECODE *.def | wc
> 58 288 4262
> $ ~/devel/gomp-branch/gcc/cp>
>
> So for C++ on the GOMP-branch, we currently have 239 tree codes.
> There can be at nost 256 tree codes, because tree_common.code only
> can hold that many...
>
only thing I can suggest in the context of the vectorizer is to use an
extra argument to save a few tree-codes:
i.e. instead of:
VEC_EXTRACT_EVEN(v1,v2), VEC_EXTRACT_ODD(v1,v2)
VEC_INTERLEAVE_HIGH(v1,v2), VEC_INTERLEAVE_LOW(v1,v2)
have:
VEC_EXTRACT(even_odd_bool,v1,v2)
VEC_INTERLEAVE(high_low_bool,v1,v2)
if that's preferable (I don't like it so much...).
dorit
> Gr.
> Steven
>