forked from OSchip/llvm-project
39 lines
892 B
LLVM
39 lines
892 B
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
|
; RUN: opt < %s -simplifycfg -S | FileCheck %s
|
|
; 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
|
|
}
|