; RUN: opt < %s -loop-unroll -S | not grep undef
; PR1385

target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
target triple = "i686-apple-darwin8"
        %struct.__mpz_struct = type { i32, i32, i32* }


define void @Foo(%struct.__mpz_struct* %base) {
entry:
        %want = alloca [1 x %struct.__mpz_struct], align 16             ; <[1 x %struct.__mpz_struct]*> [#uses=4]
        %want1 = getelementptr [1 x %struct.__mpz_struct]* %want, i32 0, i32 0          ; <%struct.__mpz_struct*> [#uses=1]
        call void @__gmpz_init( %struct.__mpz_struct* %want1 )
        %want27 = getelementptr [1 x %struct.__mpz_struct]* %want, i32 0, i32 0         ; <%struct.__mpz_struct*> [#uses=1]
        %want3 = getelementptr [1 x %struct.__mpz_struct]* %want, i32 0, i32 0          ; <%struct.__mpz_struct*> [#uses=1]
        %want2 = getelementptr [1 x %struct.__mpz_struct]* %want, i32 0, i32 0          ; <%struct.__mpz_struct*> [#uses=2]
        br label %bb

bb:             ; preds = %bb, %entry
        %i.01.0 = phi i32 [ 0, %entry ], [ %indvar.next, %bb ]          ; <i32> [#uses=1]
        %want23.0 = phi %struct.__mpz_struct* [ %want27, %entry ], [ %want2, %bb ]              ; <%struct.__mpz_struct*> [#uses=1]
        call void @__gmpz_mul( %struct.__mpz_struct* %want23.0, %struct.__mpz_struct* %want3, %struct.__mpz_struct* %base )
        %indvar.next = add i32 %i.01.0, 1               ; <i32> [#uses=2]
        %exitcond = icmp ne i32 %indvar.next, 2         ; <i1> [#uses=1]
        br i1 %exitcond, label %bb, label %bb10

bb10:           ; preds = %bb
        %want2.lcssa = phi %struct.__mpz_struct* [ %want2, %bb ]                ; <%struct.__mpz_struct*> [#uses=1]
        call void @__gmpz_clear( %struct.__mpz_struct* %want2.lcssa )
        ret void
}

declare void @__gmpz_init(%struct.__mpz_struct*)
declare void @__gmpz_mul(%struct.__mpz_struct*, %struct.__mpz_struct*, %struct.__mpz_struct*)
declare void @__gmpz_clear(%struct.__mpz_struct*)

