%Y = add i8 %X, 1 ;; Dead, because the only use (the store) is dead.
%P2 = getelementptr i8* %P, i32 2
- store i8 %Y, i8* %P2 ;; FIXME: Killed by llvm.lifetime.end, should be zapped.
-; CHECK: store i8 %Y, i8* %P2
+ store i8 %Y, i8* %P2
+; CHECK-NEXT: call void @llvm.lifetime.end
call void @llvm.lifetime.end(i64 10, i8* %P)
ret void
-; CHECK: ret void
+; CHECK-NEXT: ret void
}
@G1 = external global i32
ret i32 %sub
; CHECK: @test4
; CHECK: load i32* @G
-; CHECK: memset.i32
+; CHECK: memset.p0i8.i32
; CHECK-NOT: load
; CHECK: sub i32 %tmp, %tmp
}
ret i32 %sub
; CHECK: @test5
; CHECK: load i32* @G
-; CHECK: memcpy.i32
+; CHECK: memcpy.p0i8.p0i8.i32
; CHECK-NOT: load
; CHECK: sub i32 %tmp, %tmp
}
+define i8 @test6(i8* %p, i8* noalias %a) {
+ %x = load i8* %a
+ %t = va_arg i8* %p, float
+ %y = load i8* %a
+ %z = add i8 %x, %y
+ ret i8 %z
+; CHECK: @test6
+; CHECK: load i8* %a
+; CHECK-NOT: load
+; CHECK: ret
+}