;RUN: dsaopt %s -dsa-td -analyze -verify-flags "test:b2:0+HM"
;RUN: dsaopt %s -dsa-stdlib -analyze -verify-flags "test:b2:0+HI"

; ModuleID = 'recur2.bc'
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-unknown-linux-gnu"

define i32* @test() nounwind {
entry:
  %retval = alloca i32*                           ; <i32**> [#uses=2]
  %0 = alloca i32*                                ; <i32**> [#uses=3]
  %a2 = alloca i32*                               ; <i32**> [#uses=3]
  %b2 = alloca i32*                               ; <i32**> [#uses=2]
  %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
  %1 = call noalias i8* @malloc(i64 4) nounwind   ; <i8*> [#uses=1]
  %2 = bitcast i8* %1 to i32*                     ; <i32*> [#uses=1]
  store i32* %2, i32** %a2, align 8
  %3 = load i32** %a2, align 8                    ; <i32*> [#uses=1]
  store i32 10, i32* %3, align 4
  %4 = load i32** %a2, align 8                    ; <i32*> [#uses=1]
  %5 = load i32* %4, align 4                      ; <i32> [#uses=1]
  %6 = icmp sgt i32 %5, 5                         ; <i1> [#uses=1]
  br i1 %6, label %bb, label %bb1

bb:                                               ; preds = %entry
  %7 = call i32* @test() nounwind                 ; <i32*> [#uses=1]
  store i32* %7, i32** %0, align 8
  br label %bb2

bb1:                                              ; preds = %entry
  %8 = call noalias i8* @malloc(i64 4) nounwind   ; <i8*> [#uses=1]
  %9 = bitcast i8* %8 to i32*                     ; <i32*> [#uses=1]
  store i32* %9, i32** %b2, align 8
  %10 = load i32** %b2, align 8                   ; <i32*> [#uses=1]
  %11 = call i32* @test1(i32* %10) nounwind       ; <i32*> [#uses=1]
  store i32* %11, i32** %0, align 8
  br label %bb2

bb2:                                              ; preds = %bb1, %bb
  %12 = load i32** %0, align 8                    ; <i32*> [#uses=1]
  store i32* %12, i32** %retval, align 8
  br label %return

return:                                           ; preds = %bb2
  %retval3 = load i32** %retval                   ; <i32*> [#uses=1]
  ret i32* %retval3
}

declare noalias i8* @malloc(i64) nounwind

define i32* @test1(i32* %b3) nounwind {
entry:
  %b3_addr = alloca i32*                          ; <i32**> [#uses=2]
  %retval = alloca i32*                           ; <i32**> [#uses=2]
  %0 = alloca i32*                                ; <i32**> [#uses=2]
  %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
  store i32* %b3, i32** %b3_addr
  %1 = call i32* @test() nounwind                 ; <i32*> [#uses=1]
  %2 = load i32** %b3_addr, align 8               ; <i32*> [#uses=1]
  %3 = load i32* %2, align 4                      ; <i32> [#uses=1]
  %4 = sext i32 %3 to i64                         ; <i64> [#uses=1]
  %5 = getelementptr inbounds i32* %1, i64 %4     ; <i32*> [#uses=1]
  store i32* %5, i32** %0, align 8
  %6 = load i32** %0, align 8                     ; <i32*> [#uses=1]
  store i32* %6, i32** %retval, align 8
  br label %return

return:                                           ; preds = %entry
  %retval1 = load i32** %retval                   ; <i32*> [#uses=1]
  ret i32* %retval1
}

define void @func() nounwind {
entry:
  %a1 = alloca i32*                               ; <i32**> [#uses=1]
  %b1 = alloca i32*                               ; <i32**> [#uses=1]
  %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
  %0 = call i32* @test() nounwind                 ; <i32*> [#uses=1]
  store i32* %0, i32** %a1, align 8
  %1 = call i32* @test() nounwind                 ; <i32*> [#uses=1]
  store i32* %1, i32** %b1, align 8
  br label %return

return:                                           ; preds = %entry
  ret void
}
