; 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
}

