[RFC][PATCH][LoopVectorize] Teach Loop Vectorizer about interleaved data accesses

Renato Golin renato.golin at linaro.org
Fri Mar 27 06:03:57 PDT 2015


On 24 March 2015 at 05:43, Hao Liu <Hao.Liu at arm.com> wrote:
> Does EOF mean the tail iterations that cannot be vectorized? Current Loop Vectorizer generates a scalar loop for the left several iterations.

Tail loops do get generated, yes. The issue here is detecting that the
same ranges work on all lane access in a homogeneous way.


> Yes, VLDN is beneficial even if we don't access all the sequential elements. But VSTN seems not beneficial. If we fail to match several apart intrinsics into VSTN, we need to load each scalar elements and insert them into corresponding vectors, which is very expensive.

Indeed. I mentioned vldN when I actually should have said "one
vldN/vstN pair is beneficial, even if the others aren't present".
Though that's even less common.

cheers,
--renato




More information about the llvm-commits mailing list