xref: /llvm-project/llvm/test/Transforms/StructurizeCFG/nested-loop-subregion.ll (revision 85c308804966e52a14bc98874a6cc6e42cbb1d40)
1*85c30880SEhud Katz; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2*85c30880SEhud Katz; RUN: opt -S -structurizecfg %s -o - | FileCheck %s
3*85c30880SEhud Katz
4*85c30880SEhud Katzdefine void @test(i1 %b1, i1 %b2, i1 %b3, i1 %b4) {
5*85c30880SEhud Katz; CHECK-LABEL: @test(
6*85c30880SEhud Katz; CHECK-NEXT:  A:
7*85c30880SEhud Katz; CHECK-NEXT:    [[B2_INV:%.*]] = xor i1 [[B2:%.*]], true
8*85c30880SEhud Katz; CHECK-NEXT:    br i1 [[B1:%.*]], label [[B:%.*]], label [[H:%.*]]
9*85c30880SEhud Katz; CHECK:       B:
10*85c30880SEhud Katz; CHECK-NEXT:    br label [[C:%.*]]
11*85c30880SEhud Katz; CHECK:       C:
12*85c30880SEhud Katz; CHECK-NEXT:    br i1 [[B2_INV]], label [[E:%.*]], label [[FLOW:%.*]]
13*85c30880SEhud Katz; CHECK:       Flow:
14*85c30880SEhud Katz; CHECK-NEXT:    [[TMP0:%.*]] = phi i1 [ [[B3:%.*]], [[E]] ], [ true, [[C]] ]
15*85c30880SEhud Katz; CHECK-NEXT:    [[TMP1:%.*]] = phi i1 [ false, [[E]] ], [ true, [[C]] ]
16*85c30880SEhud Katz; CHECK-NEXT:    br i1 [[TMP0]], label [[FLOW1:%.*]], label [[C]]
17*85c30880SEhud Katz; CHECK:       Flow1:
18*85c30880SEhud Katz; CHECK-NEXT:    br i1 [[TMP1]], label [[D:%.*]], label [[F:%.*]]
19*85c30880SEhud Katz; CHECK:       D:
20*85c30880SEhud Katz; CHECK-NEXT:    br label [[F]]
21*85c30880SEhud Katz; CHECK:       E:
22*85c30880SEhud Katz; CHECK-NEXT:    br label [[FLOW]]
23*85c30880SEhud Katz; CHECK:       F:
24*85c30880SEhud Katz; CHECK-NEXT:    br label [[G:%.*]]
25*85c30880SEhud Katz; CHECK:       G:
26*85c30880SEhud Katz; CHECK-NEXT:    br i1 [[B4:%.*]], label [[FLOW2:%.*]], label [[B]]
27*85c30880SEhud Katz; CHECK:       Flow2:
28*85c30880SEhud Katz; CHECK-NEXT:    br label [[H]]
29*85c30880SEhud Katz; CHECK:       H:
30*85c30880SEhud Katz; CHECK-NEXT:    ret void
31*85c30880SEhud Katz;
32*85c30880SEhud KatzA:
33*85c30880SEhud Katz  br i1 %b1, label %B, label %H
34*85c30880SEhud Katz
35*85c30880SEhud KatzB:
36*85c30880SEhud Katz  br label %C
37*85c30880SEhud Katz
38*85c30880SEhud KatzC:
39*85c30880SEhud Katz  br i1 %b2, label %D, label %E
40*85c30880SEhud Katz
41*85c30880SEhud KatzD:
42*85c30880SEhud Katz  br label %F
43*85c30880SEhud Katz
44*85c30880SEhud KatzE:
45*85c30880SEhud Katz  br i1 %b3, label %F, label %C
46*85c30880SEhud Katz
47*85c30880SEhud KatzF:
48*85c30880SEhud Katz  br label %G
49*85c30880SEhud Katz
50*85c30880SEhud KatzG:
51*85c30880SEhud Katz  br i1 %b4, label %H, label %B
52*85c30880SEhud Katz
53*85c30880SEhud KatzH:
54*85c30880SEhud Katz  ret void
55*85c30880SEhud Katz}
56