LoopVectorizer: Add initial support for pointer induction variables (for example: *dst++ = *src++).

At the moment we still require to have an integer induction variable (for example: i++).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168231 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Nadav Rotem
2012-11-17 00:27:03 +00:00
parent 94e472832f
commit 9a6823516f
2 changed files with 127 additions and 35 deletions
@@ -565,9 +565,8 @@ define i32 @example21(i32* nocapture %b, i32 %n) nounwind uwtable readonly ssp {
ret i32 %a.0.lcssa
}
; Can't vectorize because there are multiple PHIs.
;CHECK: @example23
;CHECK-NOT: <4 x i32>
;CHECK: <4 x i32>
;CHECK: ret void
define void @example23(i16* nocapture %src, i32* nocapture %dst) nounwind uwtable ssp {
br label %1