--- /dev/null
+; 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 ] ; <int> [#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 ; <int> [#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
+}