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"). Richard.