512 lines · plain
1; RUN: opt < %s -codegenprepare | llvm-dis2; PR31133target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"4target triple = "x86_64-unknown-linux-gnu"5 6define fastcc i32 @ascii2flt(ptr %str, i1 %arg) nounwind {7entry:8 br label %bb2.i9 10bb2.i: ; preds = %bb4.i.bb2.i_crit_edge, %entry11 br i1 false, label %bb4.i, label %base2flt.exit12 13bb4.i: ; preds = %bb2.i14 br i1 false, label %bb11.i, label %bb4.i.bb2.i_crit_edge15 16bb4.i.bb2.i_crit_edge: ; preds = %bb4.i17 br label %bb2.i18 19bb11.i: ; preds = %bb4.i20 br label %bb11.i.base2flt.exit204_crit_edge21 22bb11.i.base2flt.exit204_crit_edge: ; preds = %bb11.i23 br label %base2flt.exit20424 25bb11.i.bb7.i197_crit_edge: ; No predecessors!26 br label %bb7.i19727 28base2flt.exit: ; preds = %bb2.i29 br label %base2flt.exit.base2flt.exit204_crit_edge30 31base2flt.exit.base2flt.exit204_crit_edge: ; preds = %base2flt.exit32 br label %base2flt.exit20433 34base2flt.exit.bb7.i197_crit_edge: ; No predecessors!35 br label %bb7.i19736 37bb10.i196: ; preds = %bb7.i19738 br label %bb10.i196.base2flt.exit204_crit_edge39 40bb10.i196.base2flt.exit204_crit_edge: ; preds = %bb7.i197, %bb10.i19641 br label %base2flt.exit20442 43bb10.i196.bb7.i197_crit_edge: ; No predecessors!44 br label %bb7.i19745 46bb7.i197: ; preds = %bb10.i196.bb7.i197_crit_edge, %base2flt.exit.bb7.i197_crit_edge, %bb11.i.bb7.i197_crit_edge47 %.reg2mem.0 = phi i32 [ 0, %base2flt.exit.bb7.i197_crit_edge ], [ %.reg2mem.0, %bb10.i196.bb7.i197_crit_edge ], [ 0, %bb11.i.bb7.i197_crit_edge ] ; <i32> [#uses=1]48 br i1 %arg, label %bb10.i196.base2flt.exit204_crit_edge, label %bb10.i19649 50base2flt.exit204: ; preds = %bb10.i196.base2flt.exit204_crit_edge, %base2flt.exit.base2flt.exit204_crit_edge, %bb11.i.base2flt.exit204_crit_edge51 br i1 false, label %base2flt.exit204.bb8_crit_edge, label %bb52 53base2flt.exit204.bb8_crit_edge: ; preds = %base2flt.exit20454 br label %bb855 56bb: ; preds = %base2flt.exit20457 br i1 false, label %bb.bb18_crit_edge, label %bb1.i58 59bb.bb18_crit_edge: ; preds = %bb9, %bb60 br label %bb1861 62bb1.i: ; preds = %bb63 br i1 false, label %bb1.i.bb7_crit_edge, label %bb1.i15864 65bb1.i.bb7_crit_edge.loopexit: ; preds = %bb2.i16466 br label %bb1.i.bb7_crit_edge67 68bb1.i.bb7_crit_edge: ; preds = %bb1.i.bb7_crit_edge.loopexit, %bb1.i69 br label %bb7.preheader70 71bb1.i158: ; preds = %bb1.i72 br i1 false, label %bb1.i158.bb10.i179_crit_edge, label %bb1.i158.bb2.i164_crit_edge73 74bb1.i158.bb2.i164_crit_edge: ; preds = %bb1.i15875 br label %bb2.i16476 77bb1.i158.bb10.i179_crit_edge: ; preds = %bb1.i15878 br label %bb10.i17979 80bb2.i164: ; preds = %bb4.i166.bb2.i164_crit_edge, %bb1.i158.bb2.i164_crit_edge81 br i1 false, label %bb4.i166, label %bb1.i.bb7_crit_edge.loopexit82 83bb4.i166: ; preds = %bb2.i16484 br i1 false, label %bb4.i166.bb11.i172_crit_edge, label %bb4.i166.bb2.i164_crit_edge85 86bb4.i166.bb2.i164_crit_edge: ; preds = %bb4.i16687 br label %bb2.i16488 89bb4.i166.bb11.i172_crit_edge: ; preds = %bb4.i16690 br label %bb11.i17291 92bb11.i172: ; preds = %bb10.i179.bb11.i172_crit_edge, %bb4.i166.bb11.i172_crit_edge93 br label %bb7.preheader94 95bb10.i179: ; preds = %bb9.i182, %bb1.i158.bb10.i179_crit_edge96 br i1 false, label %bb7.i180, label %bb10.i179.bb11.i172_crit_edge97 98bb10.i179.bb11.i172_crit_edge: ; preds = %bb10.i17999 br label %bb11.i172100 101bb7.i180: ; preds = %bb10.i179102 br i1 false, label %bb7.i180.bb7_crit_edge, label %bb9.i182103 104bb7.i180.bb7_crit_edge: ; preds = %bb7.i180105 br label %bb7.preheader106 107bb7.preheader: ; preds = %bb7.i180.bb7_crit_edge, %bb11.i172, %bb1.i.bb7_crit_edge108 br label %bb7109 110bb9.i182: ; preds = %bb7.i180111 br label %bb10.i179112 113bb7: ; preds = %addflt.exit114, %bb7.preheader114 switch i8 0, label %bb4 [115 i8 0, label %bb7.bb8_crit_edge116 i8 46, label %bb7.bb8_crit_edge117 ]118 119bb7.bb8_crit_edge: ; preds = %bb7, %bb7120 br label %bb8121 122bb4: ; preds = %bb7123 br i1 false, label %bb18.loopexit1, label %bb1.i5124 125bb1.i5: ; preds = %bb4126 br i1 false, label %bb1.i5.mulflt.exit157_crit_edge, label %bb3.i147127 128bb1.i5.mulflt.exit157_crit_edge: ; preds = %bb5.i148, %bb1.i5129 br label %mulflt.exit157130 131bb3.i147: ; preds = %bb1.i5132 br i1 false, label %bb3.i147.mulflt.exit157_crit_edge, label %bb5.i148133 134bb3.i147.mulflt.exit157_crit_edge: ; preds = %bb8.i150, %bb3.i147135 br label %mulflt.exit157136 137bb5.i148: ; preds = %bb3.i147138 br i1 false, label %bb1.i5.mulflt.exit157_crit_edge, label %bb7.i149139 140bb7.i149: ; preds = %bb5.i148141 br i1 false, label %bb8.i150, label %bb7.i149.bb12.i154_crit_edge142 143bb7.i149.bb12.i154_crit_edge: ; preds = %bb7.i149144 br label %bb12.i154145 146bb8.i150: ; preds = %bb7.i149147 br i1 false, label %bb3.i147.mulflt.exit157_crit_edge, label %bb10.i151148 149bb10.i151: ; preds = %bb8.i150150 br label %bb12.i154151 152bb12.i154: ; preds = %bb10.i151, %bb7.i149.bb12.i154_crit_edge153 br label %mulflt.exit157154 155mulflt.exit157: ; preds = %bb12.i154, %bb3.i147.mulflt.exit157_crit_edge, %bb1.i5.mulflt.exit157_crit_edge156 br i1 false, label %mulflt.exit157.base2flt.exit144_crit_edge, label %bb1.i115157 158mulflt.exit157.base2flt.exit144_crit_edge.loopexit: ; preds = %bb2.i121159 br label %mulflt.exit157.base2flt.exit144_crit_edge160 161mulflt.exit157.base2flt.exit144_crit_edge: ; preds = %mulflt.exit157.base2flt.exit144_crit_edge.loopexit, %mulflt.exit157162 br label %base2flt.exit144163 164bb1.i115: ; preds = %mulflt.exit157165 br i1 false, label %bb1.i115.bb10.i136_crit_edge, label %bb1.i115.bb2.i121_crit_edge166 167bb1.i115.bb2.i121_crit_edge: ; preds = %bb1.i115168 br label %bb2.i121169 170bb1.i115.bb10.i136_crit_edge: ; preds = %bb1.i115171 br label %bb10.i136172 173bb2.i121: ; preds = %bb4.i123.bb2.i121_crit_edge, %bb1.i115.bb2.i121_crit_edge174 br i1 false, label %bb4.i123, label %mulflt.exit157.base2flt.exit144_crit_edge.loopexit175 176bb4.i123: ; preds = %bb2.i121177 br i1 false, label %bb4.i123.bb11.i129_crit_edge, label %bb4.i123.bb2.i121_crit_edge178 179bb4.i123.bb2.i121_crit_edge: ; preds = %bb4.i123180 br label %bb2.i121181 182bb4.i123.bb11.i129_crit_edge: ; preds = %bb4.i123183 br label %bb11.i129184 185bb11.i129: ; preds = %bb10.i136.bb11.i129_crit_edge, %bb4.i123.bb11.i129_crit_edge186 br label %base2flt.exit144187 188bb10.i136: ; preds = %bb9.i139, %bb1.i115.bb10.i136_crit_edge189 br i1 false, label %bb7.i137, label %bb10.i136.bb11.i129_crit_edge190 191bb10.i136.bb11.i129_crit_edge: ; preds = %bb10.i136192 br label %bb11.i129193 194bb7.i137: ; preds = %bb10.i136195 br i1 false, label %bb7.i137.base2flt.exit144_crit_edge, label %bb9.i139196 197bb7.i137.base2flt.exit144_crit_edge: ; preds = %bb7.i137198 br label %base2flt.exit144199 200bb9.i139: ; preds = %bb7.i137201 br label %bb10.i136202 203base2flt.exit144: ; preds = %bb7.i137.base2flt.exit144_crit_edge, %bb11.i129, %mulflt.exit157.base2flt.exit144_crit_edge204 br i1 false, label %base2flt.exit144.addflt.exit114_crit_edge, label %bb3.i105205 206base2flt.exit144.addflt.exit114_crit_edge: ; preds = %bb3.i105, %base2flt.exit144207 br label %addflt.exit114208 209bb3.i105: ; preds = %base2flt.exit144210 br i1 false, label %base2flt.exit144.addflt.exit114_crit_edge, label %bb5.i106211 212bb5.i106: ; preds = %bb3.i105213 br i1 false, label %bb5.i106.bb9.i111_crit_edge, label %bb6.i107214 215bb5.i106.bb9.i111_crit_edge: ; preds = %bb5.i106216 br label %bb9.i111217 218bb6.i107: ; preds = %bb5.i106219 br i1 false, label %bb6.i107.addflt.exit114_crit_edge, label %bb8.i108220 221bb6.i107.addflt.exit114_crit_edge: ; preds = %bb6.i107222 br label %addflt.exit114223 224bb8.i108: ; preds = %bb6.i107225 br label %bb9.i111226 227bb9.i111: ; preds = %bb8.i108, %bb5.i106.bb9.i111_crit_edge228 br label %addflt.exit114229 230addflt.exit114: ; preds = %bb9.i111, %bb6.i107.addflt.exit114_crit_edge, %base2flt.exit144.addflt.exit114_crit_edge231 br label %bb7232 233bb18.loopexit1: ; preds = %bb4234 ret i32 -1235 236bb18: ; preds = %bb8.bb18_crit_edge, %bb.bb18_crit_edge237 ret i32 0238 239bb8: ; preds = %bb7.bb8_crit_edge, %base2flt.exit204.bb8_crit_edge240 br i1 false, label %bb9, label %bb8.bb18_crit_edge241 242bb8.bb18_crit_edge: ; preds = %bb8243 br label %bb18244 245bb9: ; preds = %bb8246 br i1 false, label %bb.bb18_crit_edge, label %bb1.i13247 248bb1.i13: ; preds = %bb9249 br i1 false, label %bb1.i13.base2flt.exit102_crit_edge, label %bb1.i73250 251bb1.i13.base2flt.exit102_crit_edge.loopexit: ; preds = %bb2.i79252 br label %bb1.i13.base2flt.exit102_crit_edge253 254bb1.i13.base2flt.exit102_crit_edge: ; preds = %bb1.i13.base2flt.exit102_crit_edge.loopexit, %bb1.i13255 br label %base2flt.exit102256 257bb1.i73: ; preds = %bb1.i13258 br i1 false, label %bb1.i73.bb10.i94_crit_edge, label %bb1.i73.bb2.i79_crit_edge259 260bb1.i73.bb2.i79_crit_edge: ; preds = %bb1.i73261 br label %bb2.i79262 263bb1.i73.bb10.i94_crit_edge: ; preds = %bb1.i73264 br label %bb10.i94265 266bb2.i79: ; preds = %bb4.i81.bb2.i79_crit_edge, %bb1.i73.bb2.i79_crit_edge267 br i1 false, label %bb4.i81, label %bb1.i13.base2flt.exit102_crit_edge.loopexit268 269bb4.i81: ; preds = %bb2.i79270 br i1 false, label %bb4.i81.bb11.i87_crit_edge, label %bb4.i81.bb2.i79_crit_edge271 272bb4.i81.bb2.i79_crit_edge: ; preds = %bb4.i81273 br label %bb2.i79274 275bb4.i81.bb11.i87_crit_edge: ; preds = %bb4.i81276 br label %bb11.i87277 278bb11.i87: ; preds = %bb10.i94.bb11.i87_crit_edge, %bb4.i81.bb11.i87_crit_edge279 br label %base2flt.exit102280 281bb10.i94: ; preds = %bb9.i97, %bb1.i73.bb10.i94_crit_edge282 br i1 false, label %bb7.i95, label %bb10.i94.bb11.i87_crit_edge283 284bb10.i94.bb11.i87_crit_edge: ; preds = %bb10.i94285 br label %bb11.i87286 287bb7.i95: ; preds = %bb10.i94288 br i1 false, label %bb7.i95.base2flt.exit102_crit_edge, label %bb9.i97289 290bb7.i95.base2flt.exit102_crit_edge: ; preds = %bb7.i95291 br label %base2flt.exit102292 293bb9.i97: ; preds = %bb7.i95294 br label %bb10.i94295 296base2flt.exit102: ; preds = %bb7.i95.base2flt.exit102_crit_edge, %bb11.i87, %bb1.i13.base2flt.exit102_crit_edge297 br i1 false, label %base2flt.exit102.mulflt.exit72_crit_edge, label %bb3.i62298 299base2flt.exit102.mulflt.exit72_crit_edge: ; preds = %bb5.i63, %base2flt.exit102300 br label %mulflt.exit72301 302bb3.i62: ; preds = %base2flt.exit102303 br i1 false, label %bb3.i62.mulflt.exit72_crit_edge, label %bb5.i63304 305bb3.i62.mulflt.exit72_crit_edge: ; preds = %bb8.i65, %bb3.i62306 br label %mulflt.exit72307 308bb5.i63: ; preds = %bb3.i62309 br i1 false, label %base2flt.exit102.mulflt.exit72_crit_edge, label %bb7.i64310 311bb7.i64: ; preds = %bb5.i63312 br i1 false, label %bb8.i65, label %bb7.i64.bb12.i69_crit_edge313 314bb7.i64.bb12.i69_crit_edge: ; preds = %bb7.i64315 br label %bb12.i69316 317bb8.i65: ; preds = %bb7.i64318 br i1 false, label %bb3.i62.mulflt.exit72_crit_edge, label %bb10.i66319 320bb10.i66: ; preds = %bb8.i65321 br label %bb12.i69322 323bb12.i69: ; preds = %bb10.i66, %bb7.i64.bb12.i69_crit_edge324 br label %mulflt.exit72325 326mulflt.exit72: ; preds = %bb12.i69, %bb3.i62.mulflt.exit72_crit_edge, %base2flt.exit102.mulflt.exit72_crit_edge327 br i1 false, label %mulflt.exit72.bb10.i58_crit_edge, label %bb3.i50328 329mulflt.exit72.bb10.i58_crit_edge: ; preds = %bb3.i50, %mulflt.exit72330 br label %bb10.i58331 332bb3.i50: ; preds = %mulflt.exit72333 br i1 false, label %mulflt.exit72.bb10.i58_crit_edge, label %bb5.i51334 335bb5.i51: ; preds = %bb3.i50336 br i1 false, label %bb5.i51.bb9.i56_crit_edge, label %bb6.i52337 338bb5.i51.bb9.i56_crit_edge: ; preds = %bb5.i51339 br label %bb9.i56340 341bb6.i52: ; preds = %bb5.i51342 br i1 false, label %bb6.i52.bb10.i58_crit_edge, label %bb8.i53343 344bb6.i52.bb10.i58_crit_edge: ; preds = %bb6.i52345 br label %bb10.i58346 347bb8.i53: ; preds = %bb6.i52348 br label %bb9.i56349 350bb9.i56: ; preds = %bb8.i53, %bb5.i51.bb9.i56_crit_edge351 br label %bb15.preheader352 353bb10.i58: ; preds = %bb6.i52.bb10.i58_crit_edge, %mulflt.exit72.bb10.i58_crit_edge354 br label %bb15.preheader355 356bb15.preheader: ; preds = %bb10.i58, %bb9.i56357 br label %bb15358 359bb15: ; preds = %addflt.exit, %bb15.preheader360 br i1 false, label %bb15.bb18.loopexit_crit_edge, label %bb12361 362bb15.bb18.loopexit_crit_edge: ; preds = %bb15363 br label %bb18.loopexit364 365bb12: ; preds = %bb15366 br i1 false, label %bb12.bb18.loopexit_crit_edge, label %bb1.i21367 368bb12.bb18.loopexit_crit_edge: ; preds = %bb12369 br label %bb18.loopexit370 371bb1.i21: ; preds = %bb12372 br i1 false, label %bb1.i21.mulflt.exit47_crit_edge, label %bb3.i37373 374bb1.i21.mulflt.exit47_crit_edge: ; preds = %bb5.i38, %bb1.i21375 br label %mulflt.exit47376 377bb3.i37: ; preds = %bb1.i21378 br i1 false, label %bb3.i37.mulflt.exit47_crit_edge, label %bb5.i38379 380bb3.i37.mulflt.exit47_crit_edge: ; preds = %bb8.i40, %bb3.i37381 br label %mulflt.exit47382 383bb5.i38: ; preds = %bb3.i37384 br i1 false, label %bb1.i21.mulflt.exit47_crit_edge, label %bb7.i39385 386bb7.i39: ; preds = %bb5.i38387 br i1 false, label %bb8.i40, label %bb7.i39.bb12.i44_crit_edge388 389bb7.i39.bb12.i44_crit_edge: ; preds = %bb7.i39390 br label %bb12.i44391 392bb8.i40: ; preds = %bb7.i39393 br i1 false, label %bb3.i37.mulflt.exit47_crit_edge, label %bb10.i41394 395bb10.i41: ; preds = %bb8.i40396 br label %bb12.i44397 398bb12.i44: ; preds = %bb10.i41, %bb7.i39.bb12.i44_crit_edge399 br label %mulflt.exit47400 401mulflt.exit47: ; preds = %bb12.i44, %bb3.i37.mulflt.exit47_crit_edge, %bb1.i21.mulflt.exit47_crit_edge402 br i1 false, label %mulflt.exit47.base2flt.exit34_crit_edge, label %bb1.i15403 404mulflt.exit47.base2flt.exit34_crit_edge.loopexit: ; preds = %bb2.i20405 br label %mulflt.exit47.base2flt.exit34_crit_edge406 407mulflt.exit47.base2flt.exit34_crit_edge: ; preds = %mulflt.exit47.base2flt.exit34_crit_edge.loopexit, %mulflt.exit47408 br label %base2flt.exit34409 410bb1.i15: ; preds = %mulflt.exit47411 br i1 false, label %bb1.i15.bb10.i31_crit_edge, label %bb1.i15.bb2.i20_crit_edge412 413bb1.i15.bb2.i20_crit_edge: ; preds = %bb1.i15414 br label %bb2.i20415 416bb1.i15.bb10.i31_crit_edge: ; preds = %bb1.i15417 br label %bb10.i31418 419bb2.i20: ; preds = %bb4.i22.bb2.i20_crit_edge, %bb1.i15.bb2.i20_crit_edge420 br i1 false, label %bb4.i22, label %mulflt.exit47.base2flt.exit34_crit_edge.loopexit421 422bb4.i22: ; preds = %bb2.i20423 br i1 false, label %bb4.i22.bb11.i28_crit_edge, label %bb4.i22.bb2.i20_crit_edge424 425bb4.i22.bb2.i20_crit_edge: ; preds = %bb4.i22426 br label %bb2.i20427 428bb4.i22.bb11.i28_crit_edge: ; preds = %bb4.i22429 br label %bb11.i28430 431bb11.i28: ; preds = %bb10.i31.bb11.i28_crit_edge, %bb4.i22.bb11.i28_crit_edge432 br label %base2flt.exit34433 434bb10.i31: ; preds = %bb9.i33, %bb1.i15.bb10.i31_crit_edge435 br i1 false, label %bb7.i32, label %bb10.i31.bb11.i28_crit_edge436 437bb10.i31.bb11.i28_crit_edge: ; preds = %bb10.i31438 br label %bb11.i28439 440bb7.i32: ; preds = %bb10.i31441 br i1 false, label %bb7.i32.base2flt.exit34_crit_edge, label %bb9.i33442 443bb7.i32.base2flt.exit34_crit_edge: ; preds = %bb7.i32444 br label %base2flt.exit34445 446bb9.i33: ; preds = %bb7.i32447 br label %bb10.i31448 449base2flt.exit34: ; preds = %bb7.i32.base2flt.exit34_crit_edge, %bb11.i28, %mulflt.exit47.base2flt.exit34_crit_edge450 br i1 false, label %base2flt.exit34.mulflt.exit_crit_edge, label %bb3.i9451 452base2flt.exit34.mulflt.exit_crit_edge: ; preds = %bb5.i10, %base2flt.exit34453 br label %mulflt.exit454 455bb3.i9: ; preds = %base2flt.exit34456 br i1 false, label %bb3.i9.mulflt.exit_crit_edge, label %bb5.i10457 458bb3.i9.mulflt.exit_crit_edge: ; preds = %bb8.i11, %bb3.i9459 br label %mulflt.exit460 461bb5.i10: ; preds = %bb3.i9462 br i1 false, label %base2flt.exit34.mulflt.exit_crit_edge, label %bb7.i463 464bb7.i: ; preds = %bb5.i10465 br i1 false, label %bb8.i11, label %bb7.i.bb12.i_crit_edge466 467bb7.i.bb12.i_crit_edge: ; preds = %bb7.i468 br label %bb12.i469 470bb8.i11: ; preds = %bb7.i471 br i1 false, label %bb3.i9.mulflt.exit_crit_edge, label %bb10.i12472 473bb10.i12: ; preds = %bb8.i11474 br label %bb12.i475 476bb12.i: ; preds = %bb10.i12, %bb7.i.bb12.i_crit_edge477 br label %mulflt.exit478 479mulflt.exit: ; preds = %bb12.i, %bb3.i9.mulflt.exit_crit_edge, %base2flt.exit34.mulflt.exit_crit_edge480 br i1 false, label %mulflt.exit.addflt.exit_crit_edge, label %bb3.i481 482mulflt.exit.addflt.exit_crit_edge: ; preds = %bb3.i, %mulflt.exit483 br label %addflt.exit484 485bb3.i: ; preds = %mulflt.exit486 br i1 false, label %mulflt.exit.addflt.exit_crit_edge, label %bb5.i487 488bb5.i: ; preds = %bb3.i489 br i1 false, label %bb5.i.bb9.i_crit_edge, label %bb6.i490 491bb5.i.bb9.i_crit_edge: ; preds = %bb5.i492 br label %bb9.i493 494bb6.i: ; preds = %bb5.i495 br i1 false, label %bb6.i.addflt.exit_crit_edge, label %bb8.i496 497bb6.i.addflt.exit_crit_edge: ; preds = %bb6.i498 br label %addflt.exit499 500bb8.i: ; preds = %bb6.i501 br label %bb9.i502 503bb9.i: ; preds = %bb8.i, %bb5.i.bb9.i_crit_edge504 br label %addflt.exit505 506addflt.exit: ; preds = %bb9.i, %bb6.i.addflt.exit_crit_edge, %mulflt.exit.addflt.exit_crit_edge507 br label %bb15508 509bb18.loopexit: ; preds = %bb12.bb18.loopexit_crit_edge, %bb15.bb18.loopexit_crit_edge510 ret i32 0511}512