2006-06-12-InfLoop.ll 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413
  1. ; RUN: opt < %s -simplifycfg -disable-output
  2. ; END.
  3. define void @main(i32 %c) {
  4. entry:
  5. %tmp.9 = icmp eq i32 %c, 2 ; <i1> [#uses=1]
  6. br i1 %tmp.9, label %endif.0, label %then.0
  7. then.0: ; preds = %entry
  8. ret void
  9. endif.0: ; preds = %entry
  10. br i1 false, label %then.1, label %endif.1
  11. then.1: ; preds = %endif.0
  12. ret void
  13. endif.1: ; preds = %endif.0
  14. br i1 false, label %then.2, label %endif.2
  15. then.2: ; preds = %endif.1
  16. ret void
  17. endif.2: ; preds = %endif.1
  18. br i1 false, label %then.3, label %loopentry.0
  19. then.3: ; preds = %endif.2
  20. ret void
  21. loopentry.0: ; preds = %endif.2
  22. br i1 false, label %no_exit.0.preheader, label %loopexit.0
  23. no_exit.0.preheader: ; preds = %loopentry.0
  24. br label %no_exit.0
  25. no_exit.0: ; preds = %endif.4, %no_exit.0.preheader
  26. br i1 false, label %then.4, label %endif.4
  27. then.4: ; preds = %no_exit.0
  28. ret void
  29. endif.4: ; preds = %no_exit.0
  30. br i1 false, label %no_exit.0, label %loopexit.0.loopexit
  31. loopexit.0.loopexit: ; preds = %endif.4
  32. br label %loopexit.0
  33. loopexit.0: ; preds = %loopexit.0.loopexit, %loopentry.0
  34. br i1 false, label %then.5, label %loopentry.1
  35. then.5: ; preds = %loopexit.0
  36. ret void
  37. loopentry.1: ; preds = %loopexit.0
  38. %tmp.143 = icmp sgt i32 0, 0 ; <i1> [#uses=4]
  39. br i1 %tmp.143, label %no_exit.1.preheader, label %loopexit.1
  40. no_exit.1.preheader: ; preds = %loopentry.1
  41. br label %no_exit.1
  42. no_exit.1: ; preds = %endif.6, %no_exit.1.preheader
  43. br i1 false, label %then.6, label %shortcirc_next.3
  44. shortcirc_next.3: ; preds = %no_exit.1
  45. br i1 false, label %then.6, label %shortcirc_next.4
  46. shortcirc_next.4: ; preds = %shortcirc_next.3
  47. br i1 false, label %then.6, label %endif.6
  48. then.6: ; preds = %shortcirc_next.4, %shortcirc_next.3, %no_exit.1
  49. ret void
  50. endif.6: ; preds = %shortcirc_next.4
  51. br i1 false, label %no_exit.1, label %loopexit.1.loopexit
  52. loopexit.1.loopexit: ; preds = %endif.6
  53. br label %loopexit.1
  54. loopexit.1: ; preds = %loopexit.1.loopexit, %loopentry.1
  55. br i1 false, label %then.i, label %loopentry.0.i
  56. then.i: ; preds = %loopexit.1
  57. ret void
  58. loopentry.0.i: ; preds = %loopexit.1
  59. br i1 %tmp.143, label %no_exit.0.i.preheader, label %readvector.exit
  60. no_exit.0.i.preheader: ; preds = %loopentry.0.i
  61. br label %no_exit.0.i
  62. no_exit.0.i: ; preds = %loopexit.1.i, %no_exit.0.i.preheader
  63. br i1 false, label %no_exit.1.i.preheader, label %loopexit.1.i
  64. no_exit.1.i.preheader: ; preds = %no_exit.0.i
  65. br label %no_exit.1.i
  66. no_exit.1.i: ; preds = %loopexit.2.i, %no_exit.1.i.preheader
  67. br i1 false, label %no_exit.2.i.preheader, label %loopexit.2.i
  68. no_exit.2.i.preheader: ; preds = %no_exit.1.i
  69. br label %no_exit.2.i
  70. no_exit.2.i: ; preds = %no_exit.2.i, %no_exit.2.i.preheader
  71. br i1 false, label %no_exit.2.i, label %loopexit.2.i.loopexit
  72. loopexit.2.i.loopexit: ; preds = %no_exit.2.i
  73. br label %loopexit.2.i
  74. loopexit.2.i: ; preds = %loopexit.2.i.loopexit, %no_exit.1.i
  75. br i1 false, label %no_exit.1.i, label %loopexit.1.i.loopexit
  76. loopexit.1.i.loopexit: ; preds = %loopexit.2.i
  77. br label %loopexit.1.i
  78. loopexit.1.i: ; preds = %loopexit.1.i.loopexit, %no_exit.0.i
  79. br i1 false, label %no_exit.0.i, label %readvector.exit.loopexit
  80. readvector.exit.loopexit: ; preds = %loopexit.1.i
  81. br label %readvector.exit
  82. readvector.exit: ; preds = %readvector.exit.loopexit, %loopentry.0.i
  83. br i1 %tmp.143, label %loopentry.1.preheader.i, label %loopexit.0.i
  84. loopentry.1.preheader.i: ; preds = %readvector.exit
  85. br label %loopentry.1.outer.i
  86. loopentry.1.outer.i: ; preds = %loopexit.1.i110, %loopentry.1.preheader.i
  87. br label %loopentry.1.i85
  88. loopentry.1.i85.loopexit: ; preds = %hamming.exit16.i
  89. br label %loopentry.1.i85
  90. loopentry.1.i85: ; preds = %loopentry.1.i85.loopexit, %loopentry.1.outer.i
  91. br i1 false, label %no_exit.1.preheader.i, label %loopexit.1.i110.loopexit1
  92. no_exit.1.preheader.i: ; preds = %loopentry.1.i85
  93. br label %no_exit.1.i87
  94. no_exit.1.i87: ; preds = %then.1.i107, %no_exit.1.preheader.i
  95. br i1 false, label %no_exit.i.i101.preheader, label %hamming.exit.i104
  96. no_exit.i.i101.preheader: ; preds = %no_exit.1.i87
  97. br label %no_exit.i.i101
  98. no_exit.i.i101: ; preds = %no_exit.i.i101, %no_exit.i.i101.preheader
  99. br i1 false, label %no_exit.i.i101, label %hamming.exit.i104.loopexit
  100. hamming.exit.i104.loopexit: ; preds = %no_exit.i.i101
  101. br label %hamming.exit.i104
  102. hamming.exit.i104: ; preds = %hamming.exit.i104.loopexit, %no_exit.1.i87
  103. br i1 false, label %no_exit.i15.i.preheader, label %hamming.exit16.i
  104. no_exit.i15.i.preheader: ; preds = %hamming.exit.i104
  105. br label %no_exit.i15.i
  106. no_exit.i15.i: ; preds = %no_exit.i15.i, %no_exit.i15.i.preheader
  107. br i1 false, label %no_exit.i15.i, label %hamming.exit16.i.loopexit
  108. hamming.exit16.i.loopexit: ; preds = %no_exit.i15.i
  109. br label %hamming.exit16.i
  110. hamming.exit16.i: ; preds = %hamming.exit16.i.loopexit, %hamming.exit.i104
  111. br i1 false, label %loopentry.1.i85.loopexit, label %then.1.i107
  112. then.1.i107: ; preds = %hamming.exit16.i
  113. br i1 false, label %no_exit.1.i87, label %loopexit.1.i110.loopexit
  114. loopexit.1.i110.loopexit: ; preds = %then.1.i107
  115. br label %loopexit.1.i110
  116. loopexit.1.i110.loopexit1: ; preds = %loopentry.1.i85
  117. br label %loopexit.1.i110
  118. loopexit.1.i110: ; preds = %loopexit.1.i110.loopexit1, %loopexit.1.i110.loopexit
  119. br i1 false, label %loopentry.1.outer.i, label %loopexit.0.i.loopexit
  120. loopexit.0.i.loopexit: ; preds = %loopexit.1.i110
  121. br label %loopexit.0.i
  122. loopexit.0.i: ; preds = %loopexit.0.i.loopexit, %readvector.exit
  123. br i1 false, label %UnifiedReturnBlock.i113, label %then.2.i112
  124. then.2.i112: ; preds = %loopexit.0.i
  125. br label %checkham.exit
  126. UnifiedReturnBlock.i113: ; preds = %loopexit.0.i
  127. br label %checkham.exit
  128. checkham.exit: ; preds = %UnifiedReturnBlock.i113, %then.2.i112
  129. br i1 false, label %loopentry.1.i14.preheader, label %loopentry.3.i.preheader
  130. loopentry.1.i14.preheader: ; preds = %checkham.exit
  131. br label %loopentry.1.i14
  132. loopentry.1.i14: ; preds = %loopexit.1.i18, %loopentry.1.i14.preheader
  133. br i1 false, label %no_exit.1.i16.preheader, label %loopexit.1.i18
  134. no_exit.1.i16.preheader: ; preds = %loopentry.1.i14
  135. br label %no_exit.1.i16
  136. no_exit.1.i16: ; preds = %no_exit.1.i16, %no_exit.1.i16.preheader
  137. br i1 false, label %no_exit.1.i16, label %loopexit.1.i18.loopexit
  138. loopexit.1.i18.loopexit: ; preds = %no_exit.1.i16
  139. br label %loopexit.1.i18
  140. loopexit.1.i18: ; preds = %loopexit.1.i18.loopexit, %loopentry.1.i14
  141. br i1 false, label %loopentry.1.i14, label %loopentry.3.i.loopexit
  142. loopentry.3.i.loopexit: ; preds = %loopexit.1.i18
  143. br label %loopentry.3.i.preheader
  144. loopentry.3.i.preheader: ; preds = %loopentry.3.i.loopexit, %checkham.exit
  145. br label %loopentry.3.i
  146. loopentry.3.i: ; preds = %endif.1.i, %loopentry.3.i.preheader
  147. br i1 false, label %loopentry.4.i.preheader, label %endif.1.i
  148. loopentry.4.i.preheader: ; preds = %loopentry.3.i
  149. br label %loopentry.4.i
  150. loopentry.4.i: ; preds = %loopexit.4.i, %loopentry.4.i.preheader
  151. br i1 false, label %no_exit.4.i.preheader, label %loopexit.4.i
  152. no_exit.4.i.preheader: ; preds = %loopentry.4.i
  153. br label %no_exit.4.i
  154. no_exit.4.i: ; preds = %no_exit.4.i.backedge, %no_exit.4.i.preheader
  155. br i1 false, label %endif.0.i, label %else.i
  156. else.i: ; preds = %no_exit.4.i
  157. br i1 false, label %no_exit.4.i.backedge, label %loopexit.4.i.loopexit
  158. no_exit.4.i.backedge: ; preds = %endif.0.i, %else.i
  159. br label %no_exit.4.i
  160. endif.0.i: ; preds = %no_exit.4.i
  161. br i1 false, label %no_exit.4.i.backedge, label %loopexit.4.i.loopexit
  162. loopexit.4.i.loopexit: ; preds = %endif.0.i, %else.i
  163. br label %loopexit.4.i
  164. loopexit.4.i: ; preds = %loopexit.4.i.loopexit, %loopentry.4.i
  165. br i1 false, label %loopentry.4.i, label %endif.1.i.loopexit
  166. endif.1.i.loopexit: ; preds = %loopexit.4.i
  167. br label %endif.1.i
  168. endif.1.i: ; preds = %endif.1.i.loopexit, %loopentry.3.i
  169. %exitcond = icmp eq i32 0, 10 ; <i1> [#uses=1]
  170. br i1 %exitcond, label %generateT.exit, label %loopentry.3.i
  171. generateT.exit: ; preds = %endif.1.i
  172. br i1 false, label %then.0.i, label %loopentry.1.i30.preheader
  173. then.0.i: ; preds = %generateT.exit
  174. ret void
  175. loopentry.1.i30.loopexit: ; preds = %loopexit.3.i
  176. br label %loopentry.1.i30.backedge
  177. loopentry.1.i30.preheader: ; preds = %generateT.exit
  178. br label %loopentry.1.i30
  179. loopentry.1.i30: ; preds = %loopentry.1.i30.backedge, %loopentry.1.i30.preheader
  180. br i1 %tmp.143, label %no_exit.0.i31.preheader, label %loopentry.1.i30.backedge
  181. loopentry.1.i30.backedge: ; preds = %loopentry.1.i30, %loopentry.1.i30.loopexit
  182. br label %loopentry.1.i30
  183. no_exit.0.i31.preheader: ; preds = %loopentry.1.i30
  184. br label %no_exit.0.i31
  185. no_exit.0.i31: ; preds = %loopexit.3.i, %no_exit.0.i31.preheader
  186. br i1 false, label %then.1.i, label %else.0.i
  187. then.1.i: ; preds = %no_exit.0.i31
  188. br i1 undef, label %then.0.i29, label %loopentry.0.i31
  189. then.0.i29: ; preds = %then.1.i
  190. unreachable
  191. loopentry.0.i31: ; preds = %then.1.i
  192. br i1 false, label %no_exit.0.i38.preheader, label %loopentry.1.i.preheader
  193. no_exit.0.i38.preheader: ; preds = %loopentry.0.i31
  194. br label %no_exit.0.i38
  195. no_exit.0.i38: ; preds = %no_exit.0.i38, %no_exit.0.i38.preheader
  196. br i1 undef, label %no_exit.0.i38, label %loopentry.1.i.preheader.loopexit
  197. loopentry.1.i.preheader.loopexit: ; preds = %no_exit.0.i38
  198. br label %loopentry.1.i.preheader
  199. loopentry.1.i.preheader: ; preds = %loopentry.1.i.preheader.loopexit, %loopentry.0.i31
  200. br label %loopentry.1.i
  201. loopentry.1.i: ; preds = %endif.2.i, %loopentry.1.i.preheader
  202. br i1 undef, label %loopentry.2.i39.preheader, label %loopexit.1.i79.loopexit2
  203. loopentry.2.i39.preheader: ; preds = %loopentry.1.i
  204. br label %loopentry.2.i39
  205. loopentry.2.i39: ; preds = %loopexit.5.i77, %loopentry.2.i39.preheader
  206. br i1 false, label %loopentry.3.i40.preheader, label %hamming.exit.i71
  207. loopentry.3.i40.preheader: ; preds = %loopentry.2.i39
  208. br label %loopentry.3.i40
  209. loopentry.3.i40: ; preds = %loopexit.3.i51, %loopentry.3.i40.preheader
  210. br i1 false, label %no_exit.3.preheader.i42, label %loopexit.3.i51
  211. no_exit.3.preheader.i42: ; preds = %loopentry.3.i40
  212. br label %no_exit.3.i49
  213. no_exit.3.i49: ; preds = %no_exit.3.i49, %no_exit.3.preheader.i42
  214. br i1 undef, label %no_exit.3.i49, label %loopexit.3.i51.loopexit
  215. loopexit.3.i51.loopexit: ; preds = %no_exit.3.i49
  216. br label %loopexit.3.i51
  217. loopexit.3.i51: ; preds = %loopexit.3.i51.loopexit, %loopentry.3.i40
  218. br i1 undef, label %loopentry.3.i40, label %loopentry.4.i52
  219. loopentry.4.i52: ; preds = %loopexit.3.i51
  220. br i1 false, label %no_exit.4.i54.preheader, label %hamming.exit.i71
  221. no_exit.4.i54.preheader: ; preds = %loopentry.4.i52
  222. br label %no_exit.4.i54
  223. no_exit.4.i54: ; preds = %no_exit.4.backedge.i, %no_exit.4.i54.preheader
  224. br i1 undef, label %then.1.i55, label %endif.1.i56
  225. then.1.i55: ; preds = %no_exit.4.i54
  226. br i1 undef, label %no_exit.4.backedge.i, label %loopexit.4.i57
  227. no_exit.4.backedge.i: ; preds = %endif.1.i56, %then.1.i55
  228. br label %no_exit.4.i54
  229. endif.1.i56: ; preds = %no_exit.4.i54
  230. br i1 undef, label %no_exit.4.backedge.i, label %loopexit.4.i57
  231. loopexit.4.i57: ; preds = %endif.1.i56, %then.1.i55
  232. br i1 false, label %no_exit.i.i69.preheader, label %hamming.exit.i71
  233. no_exit.i.i69.preheader: ; preds = %loopexit.4.i57
  234. br label %no_exit.i.i69
  235. no_exit.i.i69: ; preds = %no_exit.i.i69, %no_exit.i.i69.preheader
  236. br i1 undef, label %no_exit.i.i69, label %hamming.exit.i71.loopexit
  237. hamming.exit.i71.loopexit: ; preds = %no_exit.i.i69
  238. br label %hamming.exit.i71
  239. hamming.exit.i71: ; preds = %hamming.exit.i71.loopexit, %loopexit.4.i57, %loopentry.4.i52, %loopentry.2.i39
  240. br i1 undef, label %endif.2.i, label %loopentry.5.i72
  241. loopentry.5.i72: ; preds = %hamming.exit.i71
  242. br i1 false, label %shortcirc_next.i74.preheader, label %loopexit.5.i77
  243. shortcirc_next.i74.preheader: ; preds = %loopentry.5.i72
  244. br label %shortcirc_next.i74
  245. shortcirc_next.i74: ; preds = %no_exit.5.i76, %shortcirc_next.i74.preheader
  246. br i1 undef, label %no_exit.5.i76, label %loopexit.5.i77.loopexit
  247. no_exit.5.i76: ; preds = %shortcirc_next.i74
  248. br i1 undef, label %shortcirc_next.i74, label %loopexit.5.i77.loopexit
  249. loopexit.5.i77.loopexit: ; preds = %no_exit.5.i76, %shortcirc_next.i74
  250. br label %loopexit.5.i77
  251. loopexit.5.i77: ; preds = %loopexit.5.i77.loopexit, %loopentry.5.i72
  252. br i1 undef, label %loopentry.2.i39, label %loopexit.1.i79.loopexit
  253. endif.2.i: ; preds = %hamming.exit.i71
  254. br label %loopentry.1.i
  255. loopexit.1.i79.loopexit: ; preds = %loopexit.5.i77
  256. br label %loopexit.1.i79
  257. loopexit.1.i79.loopexit2: ; preds = %loopentry.1.i
  258. br label %loopexit.1.i79
  259. loopexit.1.i79: ; preds = %loopexit.1.i79.loopexit2, %loopexit.1.i79.loopexit
  260. br i1 undef, label %then.3.i, label %loopentry.6.i80
  261. then.3.i: ; preds = %loopexit.1.i79
  262. br i1 false, label %no_exit.6.i82.preheader, label %run.exit
  263. loopentry.6.i80: ; preds = %loopexit.1.i79
  264. br i1 false, label %no_exit.6.i82.preheader, label %run.exit
  265. no_exit.6.i82.preheader: ; preds = %loopentry.6.i80, %then.3.i
  266. br label %no_exit.6.i82
  267. no_exit.6.i82: ; preds = %no_exit.6.i82, %no_exit.6.i82.preheader
  268. br i1 undef, label %no_exit.6.i82, label %run.exit.loopexit
  269. run.exit.loopexit: ; preds = %no_exit.6.i82
  270. br label %run.exit
  271. run.exit: ; preds = %run.exit.loopexit, %loopentry.6.i80, %then.3.i
  272. br i1 false, label %no_exit.1.i36.preheader, label %loopentry.3.i37
  273. else.0.i: ; preds = %no_exit.0.i31
  274. br i1 false, label %then.0.i4, label %loopentry.0.i6
  275. then.0.i4: ; preds = %else.0.i
  276. unreachable
  277. loopentry.0.i6: ; preds = %else.0.i
  278. br i1 false, label %no_exit.0.i8.preheader, label %loopentry.2.i.preheader
  279. no_exit.0.i8.preheader: ; preds = %loopentry.0.i6
  280. br label %no_exit.0.i8
  281. no_exit.0.i8: ; preds = %no_exit.0.i8, %no_exit.0.i8.preheader
  282. br i1 false, label %no_exit.0.i8, label %loopentry.2.i.preheader.loopexit
  283. loopentry.2.i.preheader.loopexit: ; preds = %no_exit.0.i8
  284. br label %loopentry.2.i.preheader
  285. loopentry.2.i.preheader: ; preds = %loopentry.2.i.preheader.loopexit, %loopentry.0.i6
  286. br label %loopentry.2.i
  287. loopentry.2.i: ; preds = %endif.3.i19, %loopentry.2.i.preheader
  288. br i1 false, label %loopentry.3.i10.preheader, label %loopentry.4.i15
  289. loopentry.3.i10.preheader: ; preds = %loopentry.2.i
  290. br label %loopentry.3.i10
  291. loopentry.3.i10: ; preds = %loopexit.3.i14, %loopentry.3.i10.preheader
  292. br i1 false, label %no_exit.3.preheader.i, label %loopexit.3.i14
  293. no_exit.3.preheader.i: ; preds = %loopentry.3.i10
  294. br label %no_exit.3.i12
  295. no_exit.3.i12: ; preds = %no_exit.3.i12, %no_exit.3.preheader.i
  296. br i1 false, label %no_exit.3.i12, label %loopexit.3.i14.loopexit
  297. loopexit.3.i14.loopexit: ; preds = %no_exit.3.i12
  298. br label %loopexit.3.i14
  299. loopexit.3.i14: ; preds = %loopexit.3.i14.loopexit, %loopentry.3.i10
  300. br i1 false, label %loopentry.3.i10, label %loopentry.4.i15.loopexit
  301. loopentry.4.i15.loopexit: ; preds = %loopexit.3.i14
  302. br label %loopentry.4.i15
  303. loopentry.4.i15: ; preds = %loopentry.4.i15.loopexit, %loopentry.2.i
  304. br i1 false, label %loopentry.5.outer.i.preheader, label %loopentry.7.i
  305. loopentry.5.outer.i.preheader: ; preds = %loopentry.4.i15
  306. br label %loopentry.5.outer.i
  307. loopentry.5.outer.i: ; preds = %loopexit.5.i, %loopentry.5.outer.i.preheader
  308. br label %loopentry.5.i
  309. loopentry.5.i: ; preds = %endif.1.i18, %loopentry.5.outer.i
  310. br i1 false, label %no_exit.5.i.preheader, label %loopexit.5.i.loopexit3
  311. no_exit.5.i.preheader: ; preds = %loopentry.5.i
  312. br label %no_exit.5.i
  313. no_exit.5.i: ; preds = %then.2.i, %no_exit.5.i.preheader
  314. br i1 false, label %loopentry.6.i, label %endif.1.i18
  315. loopentry.6.i: ; preds = %no_exit.5.i
  316. br i1 false, label %no_exit.6.preheader.i, label %loopexit.6.i
  317. no_exit.6.preheader.i: ; preds = %loopentry.6.i
  318. br label %no_exit.6.i
  319. no_exit.6.i: ; preds = %no_exit.6.i, %no_exit.6.preheader.i
  320. br i1 false, label %no_exit.6.i, label %loopexit.6.i.loopexit
  321. loopexit.6.i.loopexit: ; preds = %no_exit.6.i
  322. br label %loopexit.6.i
  323. loopexit.6.i: ; preds = %loopexit.6.i.loopexit, %loopentry.6.i
  324. br i1 false, label %then.2.i, label %endif.1.i18
  325. then.2.i: ; preds = %loopexit.6.i
  326. br i1 false, label %no_exit.5.i, label %loopexit.5.i.loopexit
  327. endif.1.i18: ; preds = %loopexit.6.i, %no_exit.5.i
  328. br label %loopentry.5.i
  329. loopexit.5.i.loopexit: ; preds = %then.2.i
  330. br label %loopexit.5.i
  331. loopexit.5.i.loopexit3: ; preds = %loopentry.5.i
  332. br label %loopexit.5.i
  333. loopexit.5.i: ; preds = %loopexit.5.i.loopexit3, %loopexit.5.i.loopexit
  334. br i1 false, label %loopentry.5.outer.i, label %loopentry.7.i.loopexit
  335. loopentry.7.i.loopexit: ; preds = %loopexit.5.i
  336. br label %loopentry.7.i
  337. loopentry.7.i: ; preds = %loopentry.7.i.loopexit, %loopentry.4.i15
  338. br i1 false, label %no_exit.7.i.preheader, label %hamming.exit.i
  339. no_exit.7.i.preheader: ; preds = %loopentry.7.i
  340. br label %no_exit.7.i
  341. no_exit.7.i: ; preds = %no_exit.7.i, %no_exit.7.i.preheader
  342. br i1 false, label %no_exit.7.i, label %loopexit.7.i
  343. loopexit.7.i: ; preds = %no_exit.7.i
  344. br i1 false, label %no_exit.i.i.preheader, label %hamming.exit.i
  345. no_exit.i.i.preheader: ; preds = %loopexit.7.i
  346. br label %no_exit.i.i
  347. no_exit.i.i: ; preds = %no_exit.i.i, %no_exit.i.i.preheader
  348. br i1 false, label %no_exit.i.i, label %hamming.exit.i.loopexit
  349. hamming.exit.i.loopexit: ; preds = %no_exit.i.i
  350. br label %hamming.exit.i
  351. hamming.exit.i: ; preds = %hamming.exit.i.loopexit, %loopexit.7.i, %loopentry.7.i
  352. br i1 false, label %endif.3.i19, label %loopentry.8.i
  353. loopentry.8.i: ; preds = %hamming.exit.i
  354. br i1 false, label %shortcirc_next.i.preheader, label %loopexit.8.i
  355. shortcirc_next.i.preheader: ; preds = %loopentry.8.i
  356. br label %shortcirc_next.i
  357. shortcirc_next.i: ; preds = %no_exit.8.i, %shortcirc_next.i.preheader
  358. br i1 false, label %no_exit.8.i, label %loopexit.8.i.loopexit
  359. no_exit.8.i: ; preds = %shortcirc_next.i
  360. br i1 false, label %shortcirc_next.i, label %loopexit.8.i.loopexit
  361. loopexit.8.i.loopexit: ; preds = %no_exit.8.i, %shortcirc_next.i
  362. br label %loopexit.8.i
  363. loopexit.8.i: ; preds = %loopexit.8.i.loopexit, %loopentry.8.i
  364. br i1 false, label %no_exit.9.i.preheader, label %endif.3.i19
  365. no_exit.9.i.preheader: ; preds = %loopexit.8.i
  366. br label %no_exit.9.i
  367. no_exit.9.i: ; preds = %no_exit.9.i, %no_exit.9.i.preheader
  368. br i1 false, label %no_exit.9.i, label %endif.3.i19.loopexit
  369. endif.3.i19.loopexit: ; preds = %no_exit.9.i
  370. br label %endif.3.i19
  371. endif.3.i19: ; preds = %endif.3.i19.loopexit, %loopexit.8.i, %hamming.exit.i
  372. br i1 false, label %loopentry.2.i, label %loopexit.1.i20
  373. loopexit.1.i20: ; preds = %endif.3.i19
  374. br i1 false, label %then.4.i, label %UnifiedReturnBlock.i
  375. then.4.i: ; preds = %loopexit.1.i20
  376. br label %runcont.exit
  377. UnifiedReturnBlock.i: ; preds = %loopexit.1.i20
  378. br label %runcont.exit
  379. runcont.exit: ; preds = %UnifiedReturnBlock.i, %then.4.i
  380. br i1 false, label %no_exit.1.i36.preheader, label %loopentry.3.i37
  381. no_exit.1.i36.preheader: ; preds = %runcont.exit, %run.exit
  382. br label %no_exit.1.i36
  383. no_exit.1.i36: ; preds = %no_exit.1.i36, %no_exit.1.i36.preheader
  384. br i1 false, label %no_exit.1.i36, label %loopentry.3.i37.loopexit
  385. loopentry.3.i37.loopexit: ; preds = %no_exit.1.i36
  386. br label %loopentry.3.i37
  387. loopentry.3.i37: ; preds = %loopentry.3.i37.loopexit, %runcont.exit, %run.exit
  388. br i1 false, label %loopentry.4.i38.preheader, label %loopexit.3.i
  389. loopentry.4.i38.preheader: ; preds = %loopentry.3.i37
  390. br label %loopentry.4.i38
  391. loopentry.4.i38: ; preds = %loopexit.4.i42, %loopentry.4.i38.preheader
  392. br i1 false, label %no_exit.3.i.preheader, label %loopexit.4.i42
  393. no_exit.3.i.preheader: ; preds = %loopentry.4.i38
  394. br label %no_exit.3.i
  395. no_exit.3.i: ; preds = %no_exit.3.i.backedge, %no_exit.3.i.preheader
  396. br i1 false, label %endif.3.i, label %else.1.i
  397. else.1.i: ; preds = %no_exit.3.i
  398. br i1 false, label %no_exit.3.i.backedge, label %loopexit.4.i42.loopexit
  399. no_exit.3.i.backedge: ; preds = %endif.3.i, %else.1.i
  400. br label %no_exit.3.i
  401. endif.3.i: ; preds = %no_exit.3.i
  402. br i1 false, label %no_exit.3.i.backedge, label %loopexit.4.i42.loopexit
  403. loopexit.4.i42.loopexit: ; preds = %endif.3.i, %else.1.i
  404. br label %loopexit.4.i42
  405. loopexit.4.i42: ; preds = %loopexit.4.i42.loopexit, %loopentry.4.i38
  406. br i1 false, label %loopentry.4.i38, label %loopexit.3.i.loopexit
  407. loopexit.3.i.loopexit: ; preds = %loopexit.4.i42
  408. br label %loopexit.3.i
  409. loopexit.3.i: ; preds = %loopexit.3.i.loopexit, %loopentry.3.i37
  410. %tmp.13.i155 = icmp slt i32 0, 0 ; <i1> [#uses=1]
  411. br i1 %tmp.13.i155, label %no_exit.0.i31, label %loopentry.1.i30.loopexit
  412. }