; RUN: opt -basicaa -loop-accesses -analyze < %s | FileCheck %s
; RUN: opt -passes='require<scalar-evolution>,require<aa>,loop(print-access-info)' -disable-output  < %s 2>&1 | FileCheck %s

; In:
;
;   store_ptr = A;
;   load_ptr = &A[2];
;   for (i = 0; i < n; i++)
;    *store_ptr++ = *load_ptr++ *10;  // A[i] = A[i+2] * 10
;
; make sure, we look through the PHI to conclude that store_ptr and load_ptr
; both have A as their underlying object.  The dependence is safe for
; vectorization requiring no memchecks.
;
; Otherwise we would try to prove independence with a memcheck that is going
; to always fail.

target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.10.0"

; CHECK: Memory dependences are safe{{$}}

define void @f(i8* noalias %A, i64 %width) {
for.body.preheader:
  %A_ahead = getelementptr inbounds i8, i8* %A, i64 2
  br label %for.body

for.body:
  %i = phi i64 [ %i.1, %for.body ], [ 0, %for.body.preheader ]
  %load_ptr = phi i8* [ %load_ptr.1, %for.body ], [ %A_ahead, %for.body.preheader ]
  %store_ptr = phi i8* [ %store_ptr.1, %for.body ], [ %A, %for.body.preheader ]

  %loadA = load i8, i8* %load_ptr, align 1

  %mul = mul i8 %loadA, 10

  store i8 %mul, i8* %store_ptr, align 1

  %load_ptr.1 = getelementptr inbounds i8, i8* %load_ptr, i64 1
  %store_ptr.1 = getelementptr inbounds i8, i8* %store_ptr, i64 1
  %i.1 = add nuw i64 %i, 1

  %exitcond = icmp eq i64 %i.1, %width
  br i1 %exitcond, label %for.end, label %for.body

for.end:
  ret void
}
