This is the mail archive of the 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]

Re: [PATCH] Improve { x, x + 3, x + 6, x + 9 } expansion

On Wed, 20 Nov 2013, Jakub Jelinek wrote:

> On Wed, Nov 20, 2013 at 10:31:38AM +0100, Richard Biener wrote:
> > Aww ;)  Nice improvement.  Generally when I see this I always wonder
> > whether we want to do this kind of stuff pre RTL expansion.
> > 1st to not rely on being able to TER, 2nd to finally eventually
> > get rid of TER.
> > 
> > These patches are unfortunately a step backward for #2.
> > 
> > As of the patch, do we have a way to query whether the target
> > can efficiently broadcast?  If so this IMHO belongs in generic
> We don't.  Perhaps if we'd add optab for vec_dup<mode> and mentioned
> clearly in the documentation that it should be used only if it is reasonably
> efficient.  But still, even with optab, it would probably better to do it
> in the veclower* passes than in the vectorizer itself.

Yes, veclower would be a good fit.

I was of course thinking of a new "apply TER" pass right before cfgexpand
(for the cases where TER ends up doing some kind of "folding").


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