2009-09-11 20:01:28 +02:00
|
|
|
; RUN: opt < %s -tailduplicate -disable-output
|
2004-04-01 22:28:35 +02:00
|
|
|
|
2008-03-10 08:21:50 +01:00
|
|
|
define void @interpret() {
|
2004-04-01 22:28:35 +02:00
|
|
|
entry:
|
|
|
|
br label %retry
|
2008-03-10 08:21:50 +01:00
|
|
|
retry: ; preds = %endif.4, %entry
|
|
|
|
%tmp.8 = call i32 @interp( ) ; <i32> [#uses=3]
|
|
|
|
switch i32 0, label %endif.4 [
|
|
|
|
i32 -25, label %return
|
|
|
|
i32 -16, label %return
|
2004-04-01 22:28:35 +02:00
|
|
|
]
|
2008-03-10 08:21:50 +01:00
|
|
|
endif.4: ; preds = %retry
|
|
|
|
br i1 false, label %return, label %retry
|
|
|
|
return: ; preds = %endif.4, %retry, %retry
|
|
|
|
%result.0 = phi i32 [ %tmp.8, %retry ], [ %tmp.8, %retry ], [ %tmp.8, %endif.4 ] ; <i32> [#uses=0]
|
2004-04-01 22:28:35 +02:00
|
|
|
ret void
|
|
|
|
}
|
|
|
|
|
2008-03-10 08:21:50 +01:00
|
|
|
declare i32 @interp()
|
|
|
|
|