1*cee313d2SEric Christopher; RUN: opt < %s -indvars
2*cee313d2SEric Christopher; PR4436
3*cee313d2SEric Christopher
4*cee313d2SEric Christophertarget 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-f80:32:32"
5*cee313d2SEric Christophertarget triple = "i386-pc-linux-gnu"
6*cee313d2SEric Christopher
7*cee313d2SEric Christopherdefine i8* @string_expandtabs(i32 %n, i8* %m) nounwind {
8*cee313d2SEric Christopherentry:
9*cee313d2SEric Christopher	br i1 undef, label %bb33, label %bb1
10*cee313d2SEric Christopher
11*cee313d2SEric Christopherbb1:		; preds = %entry
12*cee313d2SEric Christopher	br i1 undef, label %overflow1, label %bb15
13*cee313d2SEric Christopher
14*cee313d2SEric Christopherbb15:		; preds = %bb1
15*cee313d2SEric Christopher	br i1 undef, label %bb33, label %bb17
16*cee313d2SEric Christopher
17*cee313d2SEric Christopherbb17:		; preds = %bb15
18*cee313d2SEric Christopher	br label %bb30
19*cee313d2SEric Christopher
20*cee313d2SEric Christopherbb19:		; preds = %bb30
21*cee313d2SEric Christopher	br i1 undef, label %bb20, label %bb29
22*cee313d2SEric Christopher
23*cee313d2SEric Christopherbb20:		; preds = %bb19
24*cee313d2SEric Christopher	%0 = load i32, i32* undef, align 4		; <i32> [#uses=1]
25*cee313d2SEric Christopher	%1 = sub i32 %0, %n		; <i32> [#uses=1]
26*cee313d2SEric Christopher	br label %bb23
27*cee313d2SEric Christopher
28*cee313d2SEric Christopherbb21:		; preds = %bb23
29*cee313d2SEric Christopher	%2 = icmp ult i8* %q.0, %m		; <i1> [#uses=1]
30*cee313d2SEric Christopher	br i1 %2, label %bb22, label %overflow2
31*cee313d2SEric Christopher
32*cee313d2SEric Christopherbb22:		; preds = %bb21
33*cee313d2SEric Christopher	%3 = getelementptr i8, i8* %q.0, i32 1		; <i8*> [#uses=1]
34*cee313d2SEric Christopher	br label %bb23
35*cee313d2SEric Christopher
36*cee313d2SEric Christopherbb23:		; preds = %bb22, %bb20
37*cee313d2SEric Christopher	%i.2 = phi i32 [ %1, %bb20 ], [ %4, %bb22 ]		; <i32> [#uses=1]
38*cee313d2SEric Christopher	%q.0 = phi i8* [ undef, %bb20 ], [ %3, %bb22 ]		; <i8*> [#uses=3]
39*cee313d2SEric Christopher	%4 = add i32 %i.2, -1		; <i32> [#uses=2]
40*cee313d2SEric Christopher	%5 = icmp eq i32 %4, -1		; <i1> [#uses=1]
41*cee313d2SEric Christopher	br i1 %5, label %bb29, label %bb21
42*cee313d2SEric Christopher
43*cee313d2SEric Christopherbb29:		; preds = %bb23, %bb19
44*cee313d2SEric Christopher	%q.1 = phi i8* [ undef, %bb19 ], [ %q.0, %bb23 ]		; <i8*> [#uses=0]
45*cee313d2SEric Christopher	br label %bb30
46*cee313d2SEric Christopher
47*cee313d2SEric Christopherbb30:		; preds = %bb29, %bb17
48*cee313d2SEric Christopher	br i1 undef, label %bb19, label %bb33
49*cee313d2SEric Christopher
50*cee313d2SEric Christopheroverflow2:		; preds = %bb21
51*cee313d2SEric Christopher	br i1 undef, label %bb32, label %overflow1
52*cee313d2SEric Christopher
53*cee313d2SEric Christopherbb32:		; preds = %overflow2
54*cee313d2SEric Christopher	br label %overflow1
55*cee313d2SEric Christopher
56*cee313d2SEric Christopheroverflow1:		; preds = %bb32, %overflow2, %bb1
57*cee313d2SEric Christopher	ret i8* null
58*cee313d2SEric Christopher
59*cee313d2SEric Christopherbb33:		; preds = %bb30, %bb15, %entry
60*cee313d2SEric Christopher	ret i8* undef
61*cee313d2SEric Christopher}
62