| ; RUN: opt < %s -passes='function(loop-simplify),loop-extract' -disable-output |
| ; This testcase is failing the loop extractor because not all exit blocks |
| ; are dominated by all of the live-outs. |
| |
| define i32 @ab(i32 %alpha, i32 %beta) { |
| entry: |
| br label %loopentry.1.preheader |
| |
| loopentry.1.preheader: ; preds = %entry |
| br label %loopentry.1 |
| |
| loopentry.1: ; preds = %no_exit.1, %loopentry.1.preheader |
| br i1 false, label %no_exit.1, label %loopexit.0.loopexit1 |
| |
| no_exit.1: ; preds = %loopentry.1 |
| %tmp.53 = load i32, ptr null ; <i32> [#uses=1] |
| br i1 false, label %shortcirc_next.2, label %loopentry.1 |
| |
| shortcirc_next.2: ; preds = %no_exit.1 |
| %tmp.563 = call i32 @wins( i32 0, i32 %tmp.53, i32 3 ) ; <i32> [#uses=0] |
| ret i32 0 |
| |
| loopexit.0.loopexit1: ; preds = %loopentry.1 |
| br label %loopexit.0 |
| |
| loopexit.0: ; preds = %loopexit.0.loopexit1 |
| ret i32 0 |
| } |
| |
| declare i32 @wins(i32, i32, i32) |
| |
| declare i16 @ab_code() |
| |