; RUN: opt < %s -instcombine -S | grep {ret i32 %A} | |
; RUN: opt < %s -die -S | not grep call.*llvm | |
define i32 @test(i32 %A) { | |
%X = or i1 false, false | |
br i1 %X, label %T, label %C | |
T: ; preds = %0 | |
%B = add i32 %A, 1 | |
br label %C | |
C: ; preds = %T, %0 | |
%C.upgrd.1 = phi i32 [ %B, %T ], [ %A, %0 ] | |
ret i32 %C.upgrd.1 | |
} | |
define i32* @test2(i32 %width) { | |
%tmp = call i8* @llvm.stacksave( ) | |
%tmp14 = alloca i32, i32 %width | |
ret i32* %tmp14 | |
} | |
declare i8* @llvm.stacksave() | |
declare void @llvm.lifetime.start(i64, i8*) | |
declare void @llvm.lifetime.end(i64, i8*) | |
define void @test3() { | |
call void @llvm.lifetime.start(i64 -1, i8* undef) | |
call void @llvm.lifetime.end(i64 -1, i8* undef) | |
ret void | |
} | |