; RUN: opt < %s -deadargelim -die -S > %t
; RUN: cat %t | not grep DEAD
; RUN: cat %t | grep LIVE | count 4

@P = external global i32                ; <i32*> [#uses=1]

; Dead arg only used by dead retval
define internal i32 @test(i32 %DEADARG) {
        ret i32 %DEADARG
}

define internal i32 @test2(i32 %DEADARG) {
        %DEADRETVAL = call i32 @test( i32 %DEADARG )            ; <i32> [#uses=1]
        ret i32 %DEADRETVAL
}

define void @test3(i32 %X) {
        %DEADRETVAL = call i32 @test2( i32 %X )         ; <i32> [#uses=0]
        ret void
}

define internal i32 @foo() {
        %DEAD = load i32* @P            ; <i32> [#uses=1]
        ret i32 %DEAD
}

define internal i32 @id(i32 %X) {
        ret i32 %X
}

define void @test4() {
        %DEAD = call i32 @foo( )                ; <i32> [#uses=1]
        %DEAD2 = call i32 @id( i32 %DEAD )              ; <i32> [#uses=0]
        ret void
}

; These test if returning another functions return value properly marks that
; other function's return value as live. We do this twice, with the functions in
; different orders (ie, first the caller, than the callee and first the callee
; and then the caller) since DAE processes functions one by one and handles
; these cases slightly different.

define internal i32 @test5() {
  ret i32 123 
}

define i32 @test6() {
  %LIVE = call i32 @test5()
  ret i32 %LIVE
}

define i32 @test7() {
  %LIVE = call i32 @test8()
  ret i32 %LIVE
}

define internal i32 @test8() {
  ret i32 124
}
