Closed
Description
define i8 @src() {
entry:
%p = alloca i8
call void @llvm.lifetime.start.p0i8(i64 1, i8* %p)
store i8 1, i8* %p
call void @llvm.lifetime.start.p0i8(i64 1, i8* %p)
%v = load i8, i8* %p
call void @llvm.lifetime.end.p0i8(i64 1, i8* %p)
ret i8 %v
}
define i8 @tgt() {
%p = alloca i8, align 1
call void @llvm.lifetime.start.p0i8(i64 1, i8* %p)
store i8 1, i8* %p, align 1
call void @llvm.lifetime.start.p0i8(i64 1, i8* %p)
call void @llvm.lifetime.end.p0i8(i64 1, i8* %p)
ret i8 undef
}
LangRef says A load from the pointer that precedes this intrinsic can be replaced with 'undef'.