1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -gvn | llvm-dis 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker %"struct.Block::$_16" = type { i32 } 4*9880d681SAndroid Build Coastguard Worker %struct.Exp = type { %struct.Exp_*, i32, i32, i32, %struct.Exp*, %struct.Exp*, %"struct.Exp::$_10", %"struct.Block::$_16", %"struct.Exp::$_12" } 5*9880d681SAndroid Build Coastguard Worker %"struct.Exp::$_10" = type { %struct.Exp* } 6*9880d681SAndroid Build Coastguard Worker %"struct.Exp::$_12" = type { %struct.Exp** } 7*9880d681SAndroid Build Coastguard Worker %struct.Exp_ = type { i32, i32, i32, i32, %struct.Id* } 8*9880d681SAndroid Build Coastguard Worker %struct.Id = type { i8*, i32, i32, i32, %"struct.Id::$_13" } 9*9880d681SAndroid Build Coastguard Worker %"struct.Id::$_13" = type { double } 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workerdefine i8* @_ZN3Exp8toStringEj(%struct.Exp* %this, i32 %nextpc) { 12*9880d681SAndroid Build Coastguard Workerentry: 13*9880d681SAndroid Build Coastguard Worker switch i32 0, label %bb970 [ 14*9880d681SAndroid Build Coastguard Worker i32 1, label %bb 15*9880d681SAndroid Build Coastguard Worker i32 2, label %bb39 16*9880d681SAndroid Build Coastguard Worker i32 3, label %bb195 17*9880d681SAndroid Build Coastguard Worker i32 4, label %bb270 18*9880d681SAndroid Build Coastguard Worker i32 5, label %bb418 19*9880d681SAndroid Build Coastguard Worker i32 6, label %bb633 20*9880d681SAndroid Build Coastguard Worker i32 7, label %bb810 21*9880d681SAndroid Build Coastguard Worker i32 8, label %bb882 22*9880d681SAndroid Build Coastguard Worker i32 9, label %bb925 23*9880d681SAndroid Build Coastguard Worker ] 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Workerbb: ; preds = %entry 26*9880d681SAndroid Build Coastguard Worker store i8* null, i8** null 27*9880d681SAndroid Build Coastguard Worker br label %return 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Workerbb39: ; preds = %entry 30*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true, label %cond_false132 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Workercond_true: ; preds = %bb39 33*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true73, label %cond_false 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Workercond_true73: ; preds = %cond_true 36*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true108, label %cond_next 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Workercond_true108: ; preds = %cond_true73 39*9880d681SAndroid Build Coastguard Worker br label %cond_next 40*9880d681SAndroid Build Coastguard Worker 41*9880d681SAndroid Build Coastguard Workercond_next: ; preds = %cond_true108, %cond_true73 42*9880d681SAndroid Build Coastguard Worker br label %cond_next131 43*9880d681SAndroid Build Coastguard Worker 44*9880d681SAndroid Build Coastguard Workercond_false: ; preds = %cond_true 45*9880d681SAndroid Build Coastguard Worker br label %cond_next131 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Workercond_next131: ; preds = %cond_false, %cond_next 48*9880d681SAndroid Build Coastguard Worker br label %cond_next141 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Workercond_false132: ; preds = %bb39 51*9880d681SAndroid Build Coastguard Worker br label %cond_next141 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Workercond_next141: ; preds = %cond_false132, %cond_next131 54*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true169, label %cond_false175 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Workercond_true169: ; preds = %cond_next141 57*9880d681SAndroid Build Coastguard Worker br label %cond_next181 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Workercond_false175: ; preds = %cond_next141 60*9880d681SAndroid Build Coastguard Worker br label %cond_next181 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Workercond_next181: ; preds = %cond_false175, %cond_true169 63*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true189, label %cond_next191 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Workercond_true189: ; preds = %cond_next181 66*9880d681SAndroid Build Coastguard Worker br label %cond_next191 67*9880d681SAndroid Build Coastguard Worker 68*9880d681SAndroid Build Coastguard Workercond_next191: ; preds = %cond_true189, %cond_next181 69*9880d681SAndroid Build Coastguard Worker store i8* null, i8** null 70*9880d681SAndroid Build Coastguard Worker br label %return 71*9880d681SAndroid Build Coastguard Worker 72*9880d681SAndroid Build Coastguard Workerbb195: ; preds = %entry 73*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true248, label %cond_false250 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard Workercond_true248: ; preds = %bb195 76*9880d681SAndroid Build Coastguard Worker br label %cond_next252 77*9880d681SAndroid Build Coastguard Worker 78*9880d681SAndroid Build Coastguard Workercond_false250: ; preds = %bb195 79*9880d681SAndroid Build Coastguard Worker br label %cond_next252 80*9880d681SAndroid Build Coastguard Worker 81*9880d681SAndroid Build Coastguard Workercond_next252: ; preds = %cond_false250, %cond_true248 82*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true265, label %cond_next267 83*9880d681SAndroid Build Coastguard Worker 84*9880d681SAndroid Build Coastguard Workercond_true265: ; preds = %cond_next252 85*9880d681SAndroid Build Coastguard Worker br label %cond_next267 86*9880d681SAndroid Build Coastguard Worker 87*9880d681SAndroid Build Coastguard Workercond_next267: ; preds = %cond_true265, %cond_next252 88*9880d681SAndroid Build Coastguard Worker store i8* null, i8** null 89*9880d681SAndroid Build Coastguard Worker br label %return 90*9880d681SAndroid Build Coastguard Worker 91*9880d681SAndroid Build Coastguard Workerbb270: ; preds = %entry 92*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true338, label %cond_false340 93*9880d681SAndroid Build Coastguard Worker 94*9880d681SAndroid Build Coastguard Workercond_true338: ; preds = %bb270 95*9880d681SAndroid Build Coastguard Worker br label %cond_next342 96*9880d681SAndroid Build Coastguard Worker 97*9880d681SAndroid Build Coastguard Workercond_false340: ; preds = %bb270 98*9880d681SAndroid Build Coastguard Worker br label %cond_next342 99*9880d681SAndroid Build Coastguard Worker 100*9880d681SAndroid Build Coastguard Workercond_next342: ; preds = %cond_false340, %cond_true338 101*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true362, label %cond_false364 102*9880d681SAndroid Build Coastguard Worker 103*9880d681SAndroid Build Coastguard Workercond_true362: ; preds = %cond_next342 104*9880d681SAndroid Build Coastguard Worker br label %cond_next366 105*9880d681SAndroid Build Coastguard Worker 106*9880d681SAndroid Build Coastguard Workercond_false364: ; preds = %cond_next342 107*9880d681SAndroid Build Coastguard Worker br label %cond_next366 108*9880d681SAndroid Build Coastguard Worker 109*9880d681SAndroid Build Coastguard Workercond_next366: ; preds = %cond_false364, %cond_true362 110*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true393, label %cond_next395 111*9880d681SAndroid Build Coastguard Worker 112*9880d681SAndroid Build Coastguard Workercond_true393: ; preds = %cond_next366 113*9880d681SAndroid Build Coastguard Worker br label %cond_next395 114*9880d681SAndroid Build Coastguard Worker 115*9880d681SAndroid Build Coastguard Workercond_next395: ; preds = %cond_true393, %cond_next366 116*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true406, label %cond_next408 117*9880d681SAndroid Build Coastguard Worker 118*9880d681SAndroid Build Coastguard Workercond_true406: ; preds = %cond_next395 119*9880d681SAndroid Build Coastguard Worker br label %cond_next408 120*9880d681SAndroid Build Coastguard Worker 121*9880d681SAndroid Build Coastguard Workercond_next408: ; preds = %cond_true406, %cond_next395 122*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true413, label %cond_next415 123*9880d681SAndroid Build Coastguard Worker 124*9880d681SAndroid Build Coastguard Workercond_true413: ; preds = %cond_next408 125*9880d681SAndroid Build Coastguard Worker br label %cond_next415 126*9880d681SAndroid Build Coastguard Worker 127*9880d681SAndroid Build Coastguard Workercond_next415: ; preds = %cond_true413, %cond_next408 128*9880d681SAndroid Build Coastguard Worker store i8* null, i8** null 129*9880d681SAndroid Build Coastguard Worker br label %return 130*9880d681SAndroid Build Coastguard Worker 131*9880d681SAndroid Build Coastguard Workerbb418: ; preds = %entry 132*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true512, label %cond_false514 133*9880d681SAndroid Build Coastguard Worker 134*9880d681SAndroid Build Coastguard Workercond_true512: ; preds = %bb418 135*9880d681SAndroid Build Coastguard Worker br label %cond_next516 136*9880d681SAndroid Build Coastguard Worker 137*9880d681SAndroid Build Coastguard Workercond_false514: ; preds = %bb418 138*9880d681SAndroid Build Coastguard Worker br label %cond_next516 139*9880d681SAndroid Build Coastguard Worker 140*9880d681SAndroid Build Coastguard Workercond_next516: ; preds = %cond_false514, %cond_true512 141*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true536, label %cond_false538 142*9880d681SAndroid Build Coastguard Worker 143*9880d681SAndroid Build Coastguard Workercond_true536: ; preds = %cond_next516 144*9880d681SAndroid Build Coastguard Worker br label %cond_next540 145*9880d681SAndroid Build Coastguard Worker 146*9880d681SAndroid Build Coastguard Workercond_false538: ; preds = %cond_next516 147*9880d681SAndroid Build Coastguard Worker br label %cond_next540 148*9880d681SAndroid Build Coastguard Worker 149*9880d681SAndroid Build Coastguard Workercond_next540: ; preds = %cond_false538, %cond_true536 150*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true560, label %cond_false562 151*9880d681SAndroid Build Coastguard Worker 152*9880d681SAndroid Build Coastguard Workercond_true560: ; preds = %cond_next540 153*9880d681SAndroid Build Coastguard Worker br label %cond_next564 154*9880d681SAndroid Build Coastguard Worker 155*9880d681SAndroid Build Coastguard Workercond_false562: ; preds = %cond_next540 156*9880d681SAndroid Build Coastguard Worker br label %cond_next564 157*9880d681SAndroid Build Coastguard Worker 158*9880d681SAndroid Build Coastguard Workercond_next564: ; preds = %cond_false562, %cond_true560 159*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true597, label %cond_next599 160*9880d681SAndroid Build Coastguard Worker 161*9880d681SAndroid Build Coastguard Workercond_true597: ; preds = %cond_next564 162*9880d681SAndroid Build Coastguard Worker br label %cond_next599 163*9880d681SAndroid Build Coastguard Worker 164*9880d681SAndroid Build Coastguard Workercond_next599: ; preds = %cond_true597, %cond_next564 165*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true614, label %cond_next616 166*9880d681SAndroid Build Coastguard Worker 167*9880d681SAndroid Build Coastguard Workercond_true614: ; preds = %cond_next599 168*9880d681SAndroid Build Coastguard Worker br label %cond_next616 169*9880d681SAndroid Build Coastguard Worker 170*9880d681SAndroid Build Coastguard Workercond_next616: ; preds = %cond_true614, %cond_next599 171*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true621, label %cond_next623 172*9880d681SAndroid Build Coastguard Worker 173*9880d681SAndroid Build Coastguard Workercond_true621: ; preds = %cond_next616 174*9880d681SAndroid Build Coastguard Worker br label %cond_next623 175*9880d681SAndroid Build Coastguard Worker 176*9880d681SAndroid Build Coastguard Workercond_next623: ; preds = %cond_true621, %cond_next616 177*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true628, label %cond_next630 178*9880d681SAndroid Build Coastguard Worker 179*9880d681SAndroid Build Coastguard Workercond_true628: ; preds = %cond_next623 180*9880d681SAndroid Build Coastguard Worker br label %cond_next630 181*9880d681SAndroid Build Coastguard Worker 182*9880d681SAndroid Build Coastguard Workercond_next630: ; preds = %cond_true628, %cond_next623 183*9880d681SAndroid Build Coastguard Worker store i8* null, i8** null 184*9880d681SAndroid Build Coastguard Worker br label %return 185*9880d681SAndroid Build Coastguard Worker 186*9880d681SAndroid Build Coastguard Workerbb633: ; preds = %entry 187*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true667, label %cond_next669 188*9880d681SAndroid Build Coastguard Worker 189*9880d681SAndroid Build Coastguard Workercond_true667: ; preds = %bb633 190*9880d681SAndroid Build Coastguard Worker br label %cond_next669 191*9880d681SAndroid Build Coastguard Worker 192*9880d681SAndroid Build Coastguard Workercond_next669: ; preds = %cond_true667, %bb633 193*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true678, label %cond_next791 194*9880d681SAndroid Build Coastguard Worker 195*9880d681SAndroid Build Coastguard Workercond_true678: ; preds = %cond_next669 196*9880d681SAndroid Build Coastguard Worker br label %bb735 197*9880d681SAndroid Build Coastguard Worker 198*9880d681SAndroid Build Coastguard Workerbb679: ; preds = %bb735 199*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true729, label %cond_next731 200*9880d681SAndroid Build Coastguard Worker 201*9880d681SAndroid Build Coastguard Workercond_true729: ; preds = %bb679 202*9880d681SAndroid Build Coastguard Worker br label %cond_next731 203*9880d681SAndroid Build Coastguard Worker 204*9880d681SAndroid Build Coastguard Workercond_next731: ; preds = %cond_true729, %bb679 205*9880d681SAndroid Build Coastguard Worker br label %bb735 206*9880d681SAndroid Build Coastguard Worker 207*9880d681SAndroid Build Coastguard Workerbb735: ; preds = %cond_next731, %cond_true678 208*9880d681SAndroid Build Coastguard Worker br i1 false, label %bb679, label %bb743 209*9880d681SAndroid Build Coastguard Worker 210*9880d681SAndroid Build Coastguard Workerbb743: ; preds = %bb735 211*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true788, label %cond_next790 212*9880d681SAndroid Build Coastguard Worker 213*9880d681SAndroid Build Coastguard Workercond_true788: ; preds = %bb743 214*9880d681SAndroid Build Coastguard Worker br label %cond_next790 215*9880d681SAndroid Build Coastguard Worker 216*9880d681SAndroid Build Coastguard Workercond_next790: ; preds = %cond_true788, %bb743 217*9880d681SAndroid Build Coastguard Worker br label %cond_next791 218*9880d681SAndroid Build Coastguard Worker 219*9880d681SAndroid Build Coastguard Workercond_next791: ; preds = %cond_next790, %cond_next669 220*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true805, label %cond_next807 221*9880d681SAndroid Build Coastguard Worker 222*9880d681SAndroid Build Coastguard Workercond_true805: ; preds = %cond_next791 223*9880d681SAndroid Build Coastguard Worker br label %cond_next807 224*9880d681SAndroid Build Coastguard Worker 225*9880d681SAndroid Build Coastguard Workercond_next807: ; preds = %cond_true805, %cond_next791 226*9880d681SAndroid Build Coastguard Worker store i8* null, i8** null 227*9880d681SAndroid Build Coastguard Worker br label %return 228*9880d681SAndroid Build Coastguard Worker 229*9880d681SAndroid Build Coastguard Workerbb810: ; preds = %entry 230*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true870, label %cond_next872 231*9880d681SAndroid Build Coastguard Worker 232*9880d681SAndroid Build Coastguard Workercond_true870: ; preds = %bb810 233*9880d681SAndroid Build Coastguard Worker br label %cond_next872 234*9880d681SAndroid Build Coastguard Worker 235*9880d681SAndroid Build Coastguard Workercond_next872: ; preds = %cond_true870, %bb810 236*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true877, label %cond_next879 237*9880d681SAndroid Build Coastguard Worker 238*9880d681SAndroid Build Coastguard Workercond_true877: ; preds = %cond_next872 239*9880d681SAndroid Build Coastguard Worker br label %cond_next879 240*9880d681SAndroid Build Coastguard Worker 241*9880d681SAndroid Build Coastguard Workercond_next879: ; preds = %cond_true877, %cond_next872 242*9880d681SAndroid Build Coastguard Worker store i8* null, i8** null 243*9880d681SAndroid Build Coastguard Worker br label %return 244*9880d681SAndroid Build Coastguard Worker 245*9880d681SAndroid Build Coastguard Workerbb882: ; preds = %entry 246*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true920, label %cond_next922 247*9880d681SAndroid Build Coastguard Worker 248*9880d681SAndroid Build Coastguard Workercond_true920: ; preds = %bb882 249*9880d681SAndroid Build Coastguard Worker br label %cond_next922 250*9880d681SAndroid Build Coastguard Worker 251*9880d681SAndroid Build Coastguard Workercond_next922: ; preds = %cond_true920, %bb882 252*9880d681SAndroid Build Coastguard Worker store i8* null, i8** null 253*9880d681SAndroid Build Coastguard Worker br label %return 254*9880d681SAndroid Build Coastguard Worker 255*9880d681SAndroid Build Coastguard Workerbb925: ; preds = %entry 256*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true965, label %cond_next967 257*9880d681SAndroid Build Coastguard Worker 258*9880d681SAndroid Build Coastguard Workercond_true965: ; preds = %bb925 259*9880d681SAndroid Build Coastguard Worker br label %cond_next967 260*9880d681SAndroid Build Coastguard Worker 261*9880d681SAndroid Build Coastguard Workercond_next967: ; preds = %cond_true965, %bb925 262*9880d681SAndroid Build Coastguard Worker store i8* null, i8** null 263*9880d681SAndroid Build Coastguard Worker br label %return 264*9880d681SAndroid Build Coastguard Worker 265*9880d681SAndroid Build Coastguard Workerbb970: ; preds = %entry 266*9880d681SAndroid Build Coastguard Worker unreachable 267*9880d681SAndroid Build Coastguard Worker ; No predecessors! 268*9880d681SAndroid Build Coastguard Worker store i8* null, i8** null 269*9880d681SAndroid Build Coastguard Worker br label %return 270*9880d681SAndroid Build Coastguard Worker 271*9880d681SAndroid Build Coastguard Workerreturn: ; preds = %0, %cond_next967, %cond_next922, %cond_next879, %cond_next807, %cond_next630, %cond_next415, %cond_next267, %cond_next191, %bb 272*9880d681SAndroid Build Coastguard Worker %retval980 = load i8*, i8** null ; <i8*> [#uses=1] 273*9880d681SAndroid Build Coastguard Worker ret i8* %retval980 274*9880d681SAndroid Build Coastguard Worker} 275