[LLVMdev] Question about NoWrap flag for SCEVAddRecExpr

Tong Chen chentong at us.ibm.com
Wed Jun 10 06:21:04 PDT 2015


I am testing vectorization on the following test case:

float x[1024], y[1024];

void myloop1() {
        for (long int k = 0; k < 512; k++) {
           x[2*k] = x[2*k]+y[k];
        }
}

Vectorization failed due to "unsafe dependent memory operation". I traced 
the LoopAccessAnalysis.cpp and found the reason is the NoWrapFlag for 
SCEVAddRecExpr is not set and consequently the dependence distant became 
unknown. 

Can anyone familiar with ScalarRevolution tell me whether this is an 
expected behavior or a bug? 

Tong
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150610/7949fbac/attachment.html>


More information about the llvm-dev mailing list