| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py | |
| ; RUN: opt < %s -passes=simplifycfg -S | FileCheck %s | |
| declare void @foo() | |
| ; FIXME: We can replace %phi with true. | |
| define void @test_01(i1 %cond) { | |
| ; CHECK-LABEL: @test_01( | |
| ; CHECK-NEXT: entry: | |
| ; CHECK-NEXT: [[DOT:%.*]] = select i1 [[COND:%.*]], i1 true, i1 undef | |
| ; CHECK-NEXT: br i1 [[DOT]], label [[RET_1:%.*]], label [[COMMON_RET:%.*]] | |
| ; CHECK: common.ret: | |
| ; CHECK-NEXT: ret void | |
| ; CHECK: ret_1: | |
| ; CHECK-NEXT: call void @foo() | |
| ; CHECK-NEXT: br label [[COMMON_RET]] | |
| ; | |
| entry: | |
| br i1 %cond, label %if.true, label %if.false | |
| if.true: | |
| br label %merge | |
| if.false: | |
| br label %merge | |
| merge: | |
| %phi = phi i1 [true, %if.true], [undef, %if.false] | |
| br i1 %phi, label %ret_1, label %ret_2 | |
| ret_1: | |
| call void @foo() | |
| ret void | |
| ret_2: | |
| ret void | |
| } |