1 ; RUN: opt < %s -loop-unswitch -disable-output 2 ; PR1559 3 4 target triple = "i686-pc-linux-gnu" 5 %struct.re_pattern_buffer = type { i8*, i32, i32, i32, i8*, i8*, i32, i8 } 6 7 define fastcc i32 @byte_regex_compile(i8* %pattern, i32 %size, i32 %syntax, %struct.re_pattern_buffer* %bufp) { 8 entry: 9 br i1 false, label %bb147, label %cond_next123 10 11 cond_next123: ; preds = %entry 12 ret i32 0 13 14 bb147: ; preds = %entry 15 switch i32 0, label %normal_char [ 16 i32 91, label %bb1734 17 i32 92, label %bb5700 18 ] 19 20 bb1734: ; preds = %bb147 21 br label %bb1855.outer.outer 22 23 cond_true1831: ; preds = %bb1855.outer 24 br i1 %tmp1837, label %cond_next1844, label %cond_true1840 25 26 cond_true1840: ; preds = %cond_true1831 27 ret i32 0 28 29 cond_next1844: ; preds = %cond_true1831 30 br i1 false, label %bb1855.outer, label %cond_true1849 31 32 cond_true1849: ; preds = %cond_next1844 33 br label %bb1855.outer.outer 34 35 bb1855.outer.outer: ; preds = %cond_true1849, %bb1734 36 %b.10.ph.ph = phi i8* [ null, %cond_true1849 ], [ null, %bb1734 ] ; <i8*> [#uses=1] 37 br label %bb1855.outer 38 39 bb1855.outer: ; preds = %bb1855.outer.outer, %cond_next1844 40 %b.10.ph = phi i8* [ null, %cond_next1844 ], [ %b.10.ph.ph, %bb1855.outer.outer ] ; <i8*> [#uses=1] 41 %tmp1837 = icmp eq i8* null, null ; <i1> [#uses=2] 42 br i1 false, label %cond_true1831, label %cond_next1915 43 44 cond_next1915: ; preds = %cond_next1961, %bb1855.outer 45 store i8* null, i8** null 46 br i1 %tmp1837, label %cond_next1929, label %cond_true1923 47 48 cond_true1923: ; preds = %cond_next1915 49 ret i32 0 50 51 cond_next1929: ; preds = %cond_next1915 52 br i1 false, label %cond_next1961, label %cond_next2009 53 54 cond_next1961: ; preds = %cond_next1929 55 %tmp1992 = getelementptr i8, i8* %b.10.ph, i32 0 ; <i8*> [#uses=0] 56 br label %cond_next1915 57 58 cond_next2009: ; preds = %cond_next1929 59 ret i32 0 60 61 bb5700: ; preds = %bb147 62 ret i32 0 63 64 normal_char: ; preds = %bb147 65 ret i32 0 66 } 67