xref: /llvm-project/llvm/test/Transforms/SimplifyCFG/undef_phi.ll (revision 3528e63d89305907b3d6e0f59f7b03b94a12dacc)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt < %s -passes=simplifycfg -S | FileCheck %s
3
4declare void @foo()
5
6; FIXME: We can replace %phi with true.
7define void @test_01(i1 %cond) {
8; CHECK-LABEL: @test_01(
9; CHECK-NEXT:  entry:
10; CHECK-NEXT:    [[DOT:%.*]] = select i1 [[COND:%.*]], i1 true, i1 undef
11; CHECK-NEXT:    br i1 [[DOT]], label [[RET_1:%.*]], label [[COMMON_RET:%.*]]
12; CHECK:       common.ret:
13; CHECK-NEXT:    ret void
14; CHECK:       ret_1:
15; CHECK-NEXT:    call void @foo()
16; CHECK-NEXT:    br label [[COMMON_RET]]
17;
18entry:
19  br i1 %cond, label %if.true, label %if.false
20
21if.true:
22  br label %merge
23
24if.false:
25  br label %merge
26
27merge:
28  %phi = phi i1 [true, %if.true], [undef, %if.false]
29  br i1 %phi, label %ret_1, label %ret_2
30
31ret_1:
32  call void @foo()
33  ret void
34
35ret_2:
36  ret void
37}
38