1; RUN: opt < %s -postdomtree -analyze -enable-new-pm=0 | FileCheck %s 2; RUN: opt < %s -passes='print<postdomtree>' 2>&1 | FileCheck %s 3define internal void @f() { 4entry: 5 br i1 undef, label %bb35, label %bb3.i 6 7bb3.i: 8 br label %bb3.i 9 10bb: 11 br label %bb35 12 13bb.i: 14 br label %bb35 15 16_float32_unpack.exit: 17 br label %bb35 18 19bb.i5: 20 br label %bb35 21 22_float32_unpack.exit8: 23 br label %bb35 24 25bb32.preheader: 26 br label %bb35 27 28bb3: 29 br label %bb35 30 31bb3.split.us: 32 br label %bb35 33 34bb.i4.us: 35 br label %bb35 36 37bb7.i.us: 38 br label %bb35 39 40bb.i4.us.backedge: 41 br label %bb35 42 43bb1.i.us: 44 br label %bb35 45 46bb6.i.us: 47 br label %bb35 48 49bb4.i.us: 50 br label %bb35 51 52bb8.i.us: 53 br label %bb35 54 55bb3.i.loopexit.us: 56 br label %bb35 57 58bb.nph21: 59 br label %bb35 60 61bb4: 62 br label %bb35 63 64bb5: 65 br label %bb35 66 67bb14.preheader: 68 br label %bb35 69 70bb.nph18: 71 br label %bb35 72 73bb8.us.preheader: 74 br label %bb35 75 76bb8.preheader: 77 br label %bb35 78 79bb8.us: 80 br label %bb35 81 82bb8: 83 br label %bb35 84 85bb15.loopexit: 86 br label %bb35 87 88bb15.loopexit2: 89 br label %bb35 90 91bb15: 92 br label %bb35 93 94bb16: 95 br label %bb35 96 97bb17.loopexit.split: 98 br label %bb35 99 100bb.nph14: 101 br label %bb35 102 103bb19: 104 br label %bb35 105 106bb20: 107 br label %bb35 108 109bb29.preheader: 110 br label %bb35 111 112bb.nph: 113 br label %bb35 114 115bb23.us.preheader: 116 br label %bb35 117 118bb23.preheader: 119 br label %bb35 120 121bb23.us: 122 br label %bb35 123 124bb23: 125 br label %bb35 126 127bb30.loopexit: 128 br label %bb35 129 130bb30.loopexit1: 131 br label %bb35 132 133bb30: 134 br label %bb35 135 136bb31: 137 br label %bb35 138 139bb35.loopexit: 140 br label %bb35 141 142bb35.loopexit3: 143 br label %bb35 144 145bb35: 146 ret void 147} 148; CHECK: Inorder PostDominator Tree: 149; CHECK-NEXT: [1] <<exit node>> 150; CHECK-NEXT: [2] %bb35 151; CHECK-NEXT: [3] %bb 152; CHECK-NEXT: [3] %bb.i 153; CHECK-NEXT: [3] %_float32_unpack.exit 154; CHECK-NEXT: [3] %bb.i5 155; CHECK-NEXT: [3] %_float32_unpack.exit8 156; CHECK-NEXT: [3] %bb32.preheader 157; CHECK-NEXT: [3] %bb3 158; CHECK-NEXT: [3] %bb3.split.us 159; CHECK-NEXT: [3] %bb.i4.us 160; CHECK-NEXT: [3] %bb7.i.us 161; CHECK-NEXT: [3] %bb.i4.us.backedge 162; CHECK-NEXT: [3] %bb1.i.us 163; CHECK-NEXT: [3] %bb6.i.us 164; CHECK-NEXT: [3] %bb4.i.us 165; CHECK-NEXT: [3] %bb8.i.us 166; CHECK-NEXT: [3] %bb3.i.loopexit.us 167; CHECK-NEXT: [3] %bb.nph21 168; CHECK-NEXT: [3] %bb4 169; CHECK-NEXT: [3] %bb5 170; CHECK-NEXT: [3] %bb14.preheader 171; CHECK-NEXT: [3] %bb.nph18 172; CHECK-NEXT: [3] %bb8.us.preheader 173; CHECK-NEXT: [3] %bb8.preheader 174; CHECK-NEXT: [3] %bb8.us 175; CHECK-NEXT: [3] %bb8 176; CHECK-NEXT: [3] %bb15.loopexit 177; CHECK-NEXT: [3] %bb15.loopexit2 178; CHECK-NEXT: [3] %bb15 179; CHECK-NEXT: [3] %bb16 180; CHECK-NEXT: [3] %bb17.loopexit.split 181; CHECK-NEXT: [3] %bb.nph14 182; CHECK-NEXT: [3] %bb19 183; CHECK-NEXT: [3] %bb20 184; CHECK-NEXT: [3] %bb29.preheader 185; CHECK-NEXT: [3] %bb.nph 186; CHECK-NEXT: [3] %bb23.us.preheader 187; CHECK-NEXT: [3] %bb23.preheader 188; CHECK-NEXT: [3] %bb23.us 189; CHECK-NEXT: [3] %bb23 190; CHECK-NEXT: [3] %bb30.loopexit 191; CHECK-NEXT: [3] %bb30.loopexit1 192; CHECK-NEXT: [3] %bb30 193; CHECK-NEXT: [3] %bb31 194; CHECK-NEXT: [3] %bb35.loopexit 195; CHECK-NEXT: [3] %bb35.loopexit3 196; CHECK-NEXT: [2] %entry 197; CHECK-NEXT: [2] %bb3.i 198; CHECK-NEXT: Roots: %bb35 %bb3.i 199