--- /dev/null
+; RUN: as < %s | opt -preheaders
+
+implementation ; Functions:
+
+int %yylex() { ; No predecessors!
+ br label %loopentry.0
+
+loopentry.0: ; preds = %0, %yy_find_action, %else.4
+ br label %loopexit.2
+
+loopexit.2: ; preds = %loopentry.0, %else.4, %loopexit.2
+ br bool false, label %loopexit.2, label %else.4
+
+yy_find_action: ; preds = %loopexit.2, %else.4
+ br label %else.4
+
+else.4: ; preds = %yy_find_action
+ switch uint 0, label %loopexit.2 [
+ uint 2, label %yy_find_action
+ uint 0, label %loopentry.0
+ ]
+}
--- /dev/null
+; RUN: as < %s | opt -preheaders
+
+implementation ; Functions:
+
+int %yylex() { ; No predecessors!
+ br label %loopentry.0
+
+loopentry.0: ; preds = %0, %yy_find_action, %else.4
+ br label %loopexit.2
+
+loopexit.2: ; preds = %loopentry.0, %else.4, %loopexit.2
+ br bool false, label %loopexit.2, label %else.4
+
+yy_find_action: ; preds = %loopexit.2, %else.4
+ br label %else.4
+
+else.4: ; preds = %yy_find_action
+ switch uint 0, label %loopexit.2 [
+ uint 2, label %yy_find_action
+ uint 0, label %loopentry.0
+ ]
+}