; RUN: llvm-as < %s | opt -loop-extract -disable-output implementation ; Functions: declare int %_IO_getc() declare void %__errno_location() void %yylex() { entry: switch uint 0, label %label.126 [ uint 0, label %return uint 61, label %combine uint 33, label %combine uint 94, label %combine uint 37, label %combine uint 47, label %combine uint 42, label %combine uint 62, label %combine uint 60, label %combine uint 58, label %combine uint 124, label %combine uint 38, label %combine uint 45, label %combine uint 43, label %combine uint 34, label %string_constant uint 39, label %char_constant uint 46, label %loopexit.2 uint 57, label %loopexit.2 uint 56, label %loopexit.2 uint 55, label %loopexit.2 uint 54, label %loopexit.2 uint 53, label %loopexit.2 uint 52, label %loopexit.2 uint 51, label %loopexit.2 uint 50, label %loopexit.2 uint 49, label %loopexit.2 uint 48, label %loopexit.2 uint 95, label %letter uint 122, label %letter uint 121, label %letter uint 120, label %letter uint 119, label %letter uint 118, label %letter uint 117, label %letter uint 116, label %letter uint 115, label %letter uint 114, label %letter uint 113, label %letter uint 112, label %letter uint 111, label %letter uint 110, label %letter uint 109, label %letter uint 108, label %letter uint 107, label %letter uint 106, label %letter uint 105, label %letter uint 104, label %letter uint 103, label %letter uint 102, label %letter uint 101, label %letter uint 100, label %letter uint 99, label %letter uint 98, label %letter uint 97, label %letter uint 90, label %letter uint 89, label %letter uint 88, label %letter uint 87, label %letter uint 86, label %letter uint 85, label %letter uint 84, label %letter uint 83, label %letter uint 82, label %letter uint 81, label %letter uint 80, label %letter uint 79, label %letter uint 78, label %letter uint 77, label %letter uint 75, label %letter uint 74, label %letter uint 73, label %letter uint 72, label %letter uint 71, label %letter uint 70, label %letter uint 69, label %letter uint 68, label %letter uint 67, label %letter uint 66, label %letter uint 65, label %letter uint 64, label %label.13 uint 76, label %label.12 uint 36, label %label.11 uint 4294967295, label %label.10 ] label.10: ; preds = %entry ret void label.11: ; preds = %entry ret void label.12: ; preds = %entry ret void label.13: ; preds = %entry ret void letter: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry ret void loopexit.2: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry switch int 0, label %shortcirc_next.14 [ int 48, label %then.20 int 46, label %endif.38 ] then.20: ; preds = %loopexit.2 switch int 0, label %else.4 [ int 120, label %then.21 int 88, label %then.21 ] then.21: ; preds = %then.20, %then.20 ret void else.4: ; preds = %then.20 ret void shortcirc_next.14: ; preds = %loopexit.2 ret void endif.38: ; preds = %loopexit.2 br bool false, label %then.40, label %then.39 then.39: ; preds = %endif.38 ret void then.40: ; preds = %endif.38 invoke void %__errno_location( ) to label %switchexit.2 unwind label %LongJmpBlkPre loopentry.6: ; preds = %endif.52 switch uint 0, label %switchexit.2 [ uint 73, label %label.82 uint 105, label %label.82 uint 76, label %label.80 uint 108, label %label.80 uint 70, label %label.78 uint 102, label %label.78 ] label.78: ; preds = %loopentry.6, %loopentry.6 ret void label.80: ; preds = %loopentry.6, %loopentry.6 ret void label.82: ; preds = %loopentry.6, %loopentry.6 %c.0.15.5 = phi int [ %tmp.79417, %loopentry.6 ], [ %tmp.79417, %loopentry.6 ] ; [#uses=0] ret void switchexit.2: ; preds = %then.40, %loopentry.6 br bool false, label %endif.51, label %loopexit.6 endif.51: ; preds = %switchexit.2 br bool false, label %endif.52, label %then.52 then.52: ; preds = %endif.51 ret void endif.52: ; preds = %endif.51 %tmp.79417 = invoke int %_IO_getc( ) to label %loopentry.6 unwind label %LongJmpBlkPre ; [#uses=2] loopexit.6: ; preds = %switchexit.2 ret void char_constant: ; preds = %entry ret void string_constant: ; preds = %entry ret void combine: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry ret void label.126: ; preds = %entry ret void return: ; preds = %entry ret void LongJmpBlkPre: ; preds = %then.40, %endif.52 ret void }