[PATCH] [LoopVectorize]Teach Loop Vectorizer about interleaved memory access
Michael Zolotukhin
mzolotukhin at apple.com
Fri May 22 09:27:29 PDT 2015
================
Comment at: test/Transforms/LoopVectorize/interleaved-accesses.ll:1
@@ +1,2 @@
+; RUN: opt -S -loop-vectorize -instcombine -force-vector-width=4 -force-vector-interleave=1 -enable-interleaving=true -runtime-memory-check-threshold=24 < %s | FileCheck %s
+
----------------
HaoLiu wrote:
> mzolotukhin wrote:
> > Is it possible to use `noalias` attributes for arguments and drop `-runtime-memory-check-threshold=24`?
> Hi Michael,
>
> Do you mean by adding "-scoped-noalias". I tried but it doesn't work. I think maybe the runtime check is different from normal alias analysis.
>
>
No, I meant changing declaration from this:
```
define void @foo(%struct.ST2* nocapture readonly %A, %struct.ST2* nocapture %B)
```
to
```
define void @foo(%struct.ST2* noalias nocapture readonly %A, %struct.ST2* noalias nocapture %B)
```
It'll tell that `A` and `B` don't alias, and thus we won't need runtime checks for them.
http://reviews.llvm.org/D9368
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
More information about the llvm-commits
mailing list