[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / Examples / IRTransforms / SimplifyCFG / tut-simplify-cfg3-phis.ll
bloba4474d09df3209c534bb28f1fb6c1e77c941461f
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt %loadexampleirtransforms -passes=tut-simplifycfg -tut-simplifycfg-version=v1 -S < %s | FileCheck %s
3 ; RUN: opt %loadexampleirtransforms -passes=tut-simplifycfg -tut-simplifycfg-version=v2 -S < %s | FileCheck %s
4 ; RUN: opt %loadexampleirtransforms -passes=tut-simplifycfg -tut-simplifycfg-version=v3 -S < %s | FileCheck %s
6 define i32 @phi_cond_branch_eliminated() {
7 ; CHECK-LABEL: @phi_cond_branch_eliminated(
8 ; CHECK-NEXT:  entry:
9 ; CHECK-NEXT:    ret i32 20
11 entry:
12   br i1 true, label %bb.2, label %bb.3
14 bb.2:
15   br label %bb.3
17 bb.3:
18   %ret = phi i32 [ 10, %entry ], [ 20, %bb.2 ]
19   ret i32 %ret
22 define i32 @phi_removed() {
23 ; CHECK-LABEL: @phi_removed(
24 ; CHECK-NEXT:  entry:
25 ; CHECK-NEXT:    br label [[BB_3:%.*]]
26 ; CHECK:       bb.3:
27 ; CHECK-NEXT:    ret i32 0
29 entry:
30   br i1 false, label %bb.2, label %bb.3
32 bb.2:
33   %pv = phi i32 [ 10, %entry ]
34   br label %bb.3
36 bb.3:
37   ret i32 0
40 define i32 @phi_in_dead_region() {
41 ; CHECK-LABEL: @phi_in_dead_region(
42 ; CHECK-NEXT:  entry:
43 ; CHECK-NEXT:    ret i32 1
45 entry:
46   ret i32 1
48 bb.1:
49   br i1 true, label %bb.2, label %bb.3
51 bb.2:
52   br label %bb.3
54 bb.3:
55   %ret = phi i32 [ 10, %bb.1 ], [ 20, %bb.2 ]
56   ret i32 %ret
59 define i32 @phi_in_mergable_blocks() {
60 ; CHECK-LABEL: @phi_in_mergable_blocks(
61 ; CHECK-NEXT:  entry:
62 ; CHECK-NEXT:    ret i32 10
64 entry:
65   br label %bb.1
67 bb.1:
68   %pv = phi i32 [ 10, %entry ]
69   ret i32 %pv