|  | ; 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.p0i8(i64, i8*) | 
|  | declare void @llvm.lifetime.end.p0i8(i64, i8*) | 
|  |  | 
|  | define void @test3() { | 
|  | call void @llvm.lifetime.start.p0i8(i64 -1, i8* undef) | 
|  | call void @llvm.lifetime.end.p0i8(i64 -1, i8* undef) | 
|  | ret void | 
|  | } | 
|  |  |