Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / LCSSA / 2006-06-12-MultipleExitsSameBlock.ll
blob51899c7f3221747709a1618d6a8f81aa63696abe
1 ; RUN: opt < %s -passes=lcssa -S | FileCheck %s
3 declare i1 @c1()
5 declare i1 @c2()
7 define i32 @foo() {
8 ; CHECK-LABEL: @foo
9 entry:
10         br label %loop_begin
11 loop_begin:             ; preds = %loop_body.2, %entry
12         br i1 true, label %loop_body.1, label %loop_exit2
13 loop_body.1:            ; preds = %loop_begin
14         %X.1 = add i32 0, 1             ; <i32> [#uses=1]
15         %rel.1 = call i1 @c1( )         ; <i1> [#uses=1]
16         br i1 %rel.1, label %loop_exit, label %loop_body.2
17 loop_body.2:            ; preds = %loop_body.1
18         %rel.2 = call i1 @c2( )         ; <i1> [#uses=1]
19         br i1 %rel.2, label %loop_exit, label %loop_begin
20 loop_exit:              ; preds = %loop_body.2, %loop_body.1
21 ; CHECK: %X.1.lcssa = phi
22         ret i32 %X.1
23 loop_exit2:             ; preds = %loop_begin
24         ret i32 1
25 ; CHECK-NOT: %X.1.lcssa1