; RUN: opt < %s -basicaa -globalsmodref-aa -gvn -S | FileCheck %s

declare void @llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
define void @foo(i8* %x, i8* %y) {
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %x, i8* %y, i32 1, i32 1, i1 false);
  ret void
}

define void @bar(i8* %y, i8* %z) {
  %x = alloca i8
  call void @foo(i8* %x, i8* %y)
  %t = load i8* %x
  store i8 %t, i8* %y
; CHECK: store i8 %t, i8* %y
  ret void
}


define i32 @foo2() {
  %foo = alloca i32
  call void @bar2(i32* %foo)
  %t0 = load i32* %foo, align 4
; CHECK: %t0 = load i32* %foo, align 4
  ret i32 %t0
}

define void @bar2(i32* %foo)  {
  store i32 0, i32* %foo, align 4
  tail call void @llvm.dbg.value(metadata !{}, i64 0, metadata !{})
  ret void
}

declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
