; RUN: opt < %s -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* 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() | |