On Mon, 18 Oct 2010, Ira Rosen wrote:

> > > Does that mean that the vectorizer will be aware of specific
> instructions?
> >
> > I would imagine that it would need to know what permutations are
> > available, yes (GIMPLE and RTL would have some form of general permuting
> > load/store operation, which the vectorizer would only generate where
> > relevant instructions exist for the chosen permutation).
> 
> So, there will be a new tree code, e.g. PERM_LOAD_EXPR, and the vectorizer
> will use it for misaligned loads in big endian (or maybe for little endian
> as well), and for strided loads. The vectorizer will check if the
> instruction is supported giving the desired stride (1,2,3) as input, and
> will receive a mask. It will use the mask in order to permute all other
> relevant vectors (like vectors of constants) if necessary, making all the
> generic GIMPLE and RTL correct. And later, when assembly code is generated,
> everything should be permuted again?

Yes, something like that.

-- 
Joseph S. Myers
jos...@codesourcery.com

_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to