This is an archive of the discontinued LLVM Phabricator instance.

[PATCH 15/38] [noalias] D9382: llvm.noalias - don't prevent loop vectorization
AbandonedPublic

Authored by jeroen.dobbelaere on Oct 4 2019, 2:42 PM.

Details

Reviewers
hfinkel
jdoerfert
Summary

This is part of the series started by D68484.

Rebase D9382

Diff Detail

Event Timeline

Herald added a project: Restricted Project. · View Herald TranscriptOct 4 2019, 2:42 PM
lebedev.ri added inline comments.
llvm/test/Transforms/LoopVectorize/noalias.ll
6

s/lifetime/aliasing/ ?

8–10

It might be good to check a bit more context - *how* did it get vectorized?

a.elovikov added inline comments.
llvm/test/Transforms/LoopVectorize/noalias.ll
8–10

And, in addition to this, it might be good to see how it's vectorized for the interleaved accesses (especially how the intrinsics/shuffles "interaction" looks like), e.g (similar to interleaved-accesses-1.ll).

struct S {
  int * restrict i;
  float * restrict f;
};

S *p1, *p2;
for (int j = 0; j < N; ++j) {
  S t = p1[j];
  p2[j] = t;
}

For review convenience, all changes related to the original local restrict patches have now been incorporated in the full restrict patch series.