1 ; RUN: llc -O0 -mtriple thumbv6m-arm-none-eabi < %s | FileCheck %s 2 3 @a = external hidden global i32*, align 4 4 @f = external hidden global i32, align 4 5 6 define hidden void @foo() { 7 entry: 8 ; CHECK-NOT: push {lr} 9 ; CHECK-NOT: pop {pc} 10 store i32 24654, i32* @f, align 4 11 br label %if.end 12 13 if.end: ; preds = %entry 14 %0 = load i32*, i32** @a, align 4 15 %arrayidx1 = getelementptr inbounds i32, i32* %0, i32 2 16 %1 = load i32, i32* %arrayidx1, align 4 17 %tobool2 = icmp ne i32 %1, 0 18 br i1 %tobool2, label %if.then3, label %if.end4 19 20 if.then3: ; preds = %if.end 21 store i32 17785, i32* @f, align 4 22 br label %if.end4 23 24 if.end4: ; preds = %if.then3, %if.end 25 %2 = load i32*, i32** @a, align 4 26 %arrayidx5 = getelementptr inbounds i32, i32* %2, i32 3 27 %3 = load i32, i32* %arrayidx5, align 4 28 %tobool6 = icmp ne i32 %3, 0 29 br i1 %tobool6, label %if.then7, label %if.end8 30 31 if.then7: ; preds = %if.end4 32 store i32 10342, i32* @f, align 4 33 br label %if.end8 34 35 if.end8: ; preds = %if.then7, %if.end4 36 %4 = load i32*, i32** @a, align 4 37 %arrayidx9 = getelementptr inbounds i32, i32* %4, i32 4 38 %5 = load i32, i32* %arrayidx9, align 4 39 %tobool10 = icmp ne i32 %5, 0 40 br i1 %tobool10, label %if.then11, label %if.end12 41 42 if.then11: ; preds = %if.end8 43 store i32 29082, i32* @f, align 4 44 br label %if.end12 45 46 if.end12: ; preds = %if.then11, %if.end8 47 %6 = load i32*, i32** @a, align 4 48 %arrayidx13 = getelementptr inbounds i32, i32* %6, i32 5 49 %7 = load i32, i32* %arrayidx13, align 4 50 %tobool14 = icmp ne i32 %7, 0 51 br i1 %tobool14, label %if.then15, label %if.end16 52 53 if.then15: ; preds = %if.end12 54 store i32 29893, i32* @f, align 4 55 br label %if.end16 56 57 if.end16: ; preds = %if.then15, %if.end12 58 %8 = load i32*, i32** @a, align 4 59 %arrayidx17 = getelementptr inbounds i32, i32* %8, i32 6 60 %9 = load i32, i32* %arrayidx17, align 4 61 %tobool18 = icmp ne i32 %9, 0 62 br i1 %tobool18, label %if.then19, label %if.end20 63 64 if.then19: ; preds = %if.end16 65 store i32 19071, i32* @f, align 4 66 br label %if.end20 67 68 if.end20: ; preds = %if.then19, %if.end16 69 %10 = load i32*, i32** @a, align 4 70 %arrayidx21 = getelementptr inbounds i32, i32* %10, i32 7 71 %11 = load i32, i32* %arrayidx21, align 4 72 %tobool22 = icmp ne i32 %11, 0 73 br i1 %tobool22, label %if.then23, label %if.end24 74 75 if.then23: ; preds = %if.end20 76 store i32 6154, i32* @f, align 4 77 br label %if.end24 78 79 if.end24: ; preds = %if.then23, %if.end20 80 %12 = load i32*, i32** @a, align 4 81 %arrayidx25 = getelementptr inbounds i32, i32* %12, i32 8 82 %13 = load i32, i32* %arrayidx25, align 4 83 %tobool26 = icmp ne i32 %13, 0 84 br i1 %tobool26, label %if.then27, label %if.end28 85 86 if.then27: ; preds = %if.end24 87 store i32 30498, i32* @f, align 4 88 br label %if.end28 89 90 if.end28: ; preds = %if.then27, %if.end24 91 %14 = load i32*, i32** @a, align 4 92 %arrayidx29 = getelementptr inbounds i32, i32* %14, i32 9 93 %15 = load i32, i32* %arrayidx29, align 4 94 %tobool30 = icmp ne i32 %15, 0 95 br i1 %tobool30, label %if.then31, label %if.end32 96 97 if.then31: ; preds = %if.end28 98 store i32 16667, i32* @f, align 4 99 br label %if.end32 100 101 if.end32: ; preds = %if.then31, %if.end28 102 %16 = load i32*, i32** @a, align 4 103 %arrayidx33 = getelementptr inbounds i32, i32* %16, i32 10 104 %17 = load i32, i32* %arrayidx33, align 4 105 %tobool34 = icmp ne i32 %17, 0 106 br i1 %tobool34, label %if.then35, label %if.end36 107 108 if.then35: ; preds = %if.end32 109 store i32 195, i32* @f, align 4 110 br label %if.end36 111 112 if.end36: ; preds = %if.then35, %if.end32 113 %18 = load i32*, i32** @a, align 4 114 %arrayidx37 = getelementptr inbounds i32, i32* %18, i32 11 115 %19 = load i32, i32* %arrayidx37, align 4 116 %tobool38 = icmp ne i32 %19, 0 117 br i1 %tobool38, label %if.then39, label %if.end40 118 119 if.then39: ; preds = %if.end36 120 store i32 14665, i32* @f, align 4 121 br label %if.end40 122 123 if.end40: ; preds = %if.then39, %if.end36 124 %20 = load i32*, i32** @a, align 4 125 %arrayidx41 = getelementptr inbounds i32, i32* %20, i32 12 126 %21 = load i32, i32* %arrayidx41, align 4 127 %tobool42 = icmp ne i32 %21, 0 128 br i1 %tobool42, label %if.then43, label %if.end44 129 130 if.then43: ; preds = %if.end40 131 store i32 19305, i32* @f, align 4 132 br label %if.end44 133 134 if.end44: ; preds = %if.then43, %if.end40 135 %22 = load i32*, i32** @a, align 4 136 %arrayidx45 = getelementptr inbounds i32, i32* %22, i32 13 137 %23 = load i32, i32* %arrayidx45, align 4 138 %tobool46 = icmp ne i32 %23, 0 139 br i1 %tobool46, label %if.then47, label %if.end48 140 141 if.then47: ; preds = %if.end44 142 store i32 15133, i32* @f, align 4 143 br label %if.end48 144 145 if.end48: ; preds = %if.then47, %if.end44 146 %24 = load i32*, i32** @a, align 4 147 %arrayidx49 = getelementptr inbounds i32, i32* %24, i32 14 148 %25 = load i32, i32* %arrayidx49, align 4 149 %tobool50 = icmp ne i32 %25, 0 150 br i1 %tobool50, label %if.then51, label %if.end52 151 152 if.then51: ; preds = %if.end48 153 store i32 19173, i32* @f, align 4 154 br label %if.end52 155 156 if.end52: ; preds = %if.then51, %if.end48 157 br label %if.then55 158 159 if.then55: ; preds = %if.end52 160 store i32 14025, i32* @f, align 4 161 br label %if.end56 162 163 if.end56: ; preds = %if.then55 164 %26 = load i32*, i32** @a, align 4 165 %arrayidx57 = getelementptr inbounds i32, i32* %26, i32 16 166 %27 = load i32, i32* %arrayidx57, align 4 167 %tobool58 = icmp ne i32 %27, 0 168 br i1 %tobool58, label %if.then59, label %if.end60 169 170 if.then59: ; preds = %if.end56 171 store i32 8209, i32* @f, align 4 172 br label %if.end60 173 174 if.end60: ; preds = %if.then59, %if.end56 175 %28 = load i32*, i32** @a, align 4 176 %arrayidx61 = getelementptr inbounds i32, i32* %28, i32 17 177 %29 = load i32, i32* %arrayidx61, align 4 178 %tobool62 = icmp ne i32 %29, 0 179 br i1 %tobool62, label %if.then63, label %if.end64 180 181 if.then63: ; preds = %if.end60 182 store i32 29621, i32* @f, align 4 183 br label %if.end64 184 185 if.end64: ; preds = %if.then63, %if.end60 186 %30 = load i32*, i32** @a, align 4 187 %arrayidx65 = getelementptr inbounds i32, i32* %30, i32 18 188 %31 = load i32, i32* %arrayidx65, align 4 189 %tobool66 = icmp ne i32 %31, 0 190 br i1 %tobool66, label %if.then67, label %if.end68 191 192 if.then67: ; preds = %if.end64 193 store i32 14963, i32* @f, align 4 194 br label %if.end68 195 196 if.end68: ; preds = %if.then67, %if.end64 197 %32 = load i32*, i32** @a, align 4 198 %arrayidx69 = getelementptr inbounds i32, i32* %32, i32 19 199 %33 = load i32, i32* %arrayidx69, align 4 200 %tobool70 = icmp ne i32 %33, 0 201 br i1 %tobool70, label %if.then71, label %if.end72 202 203 if.then71: ; preds = %if.end68 204 store i32 32282, i32* @f, align 4 205 br label %if.end72 206 207 if.end72: ; preds = %if.then71, %if.end68 208 %34 = load i32*, i32** @a, align 4 209 %arrayidx73 = getelementptr inbounds i32, i32* %34, i32 20 210 %35 = load i32, i32* %arrayidx73, align 4 211 %tobool74 = icmp ne i32 %35, 0 212 br i1 %tobool74, label %if.then75, label %if.end76 213 214 if.then75: ; preds = %if.end72 215 store i32 3072, i32* @f, align 4 216 br label %if.end76 217 218 if.end76: ; preds = %if.then75, %if.end72 219 %36 = load i32*, i32** @a, align 4 220 %arrayidx77 = getelementptr inbounds i32, i32* %36, i32 21 221 %37 = load i32, i32* %arrayidx77, align 4 222 %tobool78 = icmp ne i32 %37, 0 223 br i1 %tobool78, label %if.then79, label %if.end80 224 225 if.then79: ; preds = %if.end76 226 store i32 1992, i32* @f, align 4 227 br label %if.end80 228 229 if.end80: ; preds = %if.then79, %if.end76 230 %38 = load i32*, i32** @a, align 4 231 %arrayidx81 = getelementptr inbounds i32, i32* %38, i32 22 232 %39 = load i32, i32* %arrayidx81, align 4 233 %tobool82 = icmp ne i32 %39, 0 234 br i1 %tobool82, label %if.then83, label %if.end84 235 236 if.then83: ; preds = %if.end80 237 store i32 9614, i32* @f, align 4 238 br label %if.end84 239 240 if.end84: ; preds = %if.then83, %if.end80 241 %40 = load i32*, i32** @a, align 4 242 %arrayidx85 = getelementptr inbounds i32, i32* %40, i32 23 243 %41 = load i32, i32* %arrayidx85, align 4 244 %tobool86 = icmp ne i32 %41, 0 245 br i1 %tobool86, label %if.then87, label %if.end88 246 247 if.then87: ; preds = %if.end84 248 store i32 25931, i32* @f, align 4 249 br label %if.end88 250 251 if.end88: ; preds = %if.then87, %if.end84 252 %42 = load i32*, i32** @a, align 4 253 %arrayidx89 = getelementptr inbounds i32, i32* %42, i32 24 254 %43 = load i32, i32* %arrayidx89, align 4 255 %tobool90 = icmp ne i32 %43, 0 256 br i1 %tobool90, label %if.then91, label %if.end92 257 258 if.then91: ; preds = %if.end88 259 store i32 22035, i32* @f, align 4 260 br label %if.end92 261 262 if.end92: ; preds = %if.then91, %if.end88 263 %44 = load i32*, i32** @a, align 4 264 %arrayidx93 = getelementptr inbounds i32, i32* %44, i32 25 265 %45 = load i32, i32* %arrayidx93, align 4 266 %tobool94 = icmp ne i32 %45, 0 267 br i1 %tobool94, label %if.then95, label %if.end96 268 269 if.then95: ; preds = %if.end92 270 store i32 10712, i32* @f, align 4 271 br label %if.end96 272 273 if.end96: ; preds = %if.then95, %if.end92 274 %46 = load i32*, i32** @a, align 4 275 %arrayidx97 = getelementptr inbounds i32, i32* %46, i32 26 276 %47 = load i32, i32* %arrayidx97, align 4 277 %tobool98 = icmp ne i32 %47, 0 278 br i1 %tobool98, label %if.then99, label %if.end100 279 280 if.then99: ; preds = %if.end96 281 store i32 18267, i32* @f, align 4 282 br label %if.end100 283 284 if.end100: ; preds = %if.then99, %if.end96 285 %48 = load i32*, i32** @a, align 4 286 %arrayidx101 = getelementptr inbounds i32, i32* %48, i32 27 287 %49 = load i32, i32* %arrayidx101, align 4 288 %tobool102 = icmp ne i32 %49, 0 289 br i1 %tobool102, label %if.then103, label %if.end104 290 291 if.then103: ; preds = %if.end100 292 store i32 30432, i32* @f, align 4 293 br label %if.end104 294 295 if.end104: ; preds = %if.then103, %if.end100 296 %50 = load i32*, i32** @a, align 4 297 %arrayidx105 = getelementptr inbounds i32, i32* %50, i32 28 298 %51 = load i32, i32* %arrayidx105, align 4 299 %tobool106 = icmp ne i32 %51, 0 300 br i1 %tobool106, label %if.then107, label %if.end108 301 302 if.then107: ; preds = %if.end104 303 store i32 5847, i32* @f, align 4 304 br label %if.end108 305 306 if.end108: ; preds = %if.then107, %if.end104 307 %52 = load i32*, i32** @a, align 4 308 %arrayidx109 = getelementptr inbounds i32, i32* %52, i32 29 309 %53 = load i32, i32* %arrayidx109, align 4 310 %tobool110 = icmp ne i32 %53, 0 311 br i1 %tobool110, label %if.then111, label %if.end112 312 313 if.then111: ; preds = %if.end108 314 store i32 14705, i32* @f, align 4 315 br label %if.end112 316 317 if.end112: ; preds = %if.then111, %if.end108 318 %54 = load i32*, i32** @a, align 4 319 %arrayidx113 = getelementptr inbounds i32, i32* %54, i32 30 320 %55 = load i32, i32* %arrayidx113, align 4 321 %tobool114 = icmp ne i32 %55, 0 322 br i1 %tobool114, label %if.then115, label %if.end116 323 324 if.then115: ; preds = %if.end112 325 store i32 28488, i32* @f, align 4 326 br label %if.end116 327 328 if.end116: ; preds = %if.then115, %if.end112 329 %56 = load i32*, i32** @a, align 4 330 %arrayidx117 = getelementptr inbounds i32, i32* %56, i32 31 331 %57 = load i32, i32* %arrayidx117, align 4 332 %tobool118 = icmp ne i32 %57, 0 333 br i1 %tobool118, label %if.then119, label %if.end120 334 335 if.then119: ; preds = %if.end116 336 store i32 13853, i32* @f, align 4 337 br label %if.end120 338 339 if.end120: ; preds = %if.then119, %if.end116 340 %58 = load i32*, i32** @a, align 4 341 %arrayidx121 = getelementptr inbounds i32, i32* %58, i32 32 342 %59 = load i32, i32* %arrayidx121, align 4 343 %tobool122 = icmp ne i32 %59, 0 344 br i1 %tobool122, label %if.then123, label %if.end124 345 346 if.then123: ; preds = %if.end120 347 store i32 31379, i32* @f, align 4 348 br label %if.end124 349 350 if.end124: ; preds = %if.then123, %if.end120 351 %60 = load i32*, i32** @a, align 4 352 %arrayidx125 = getelementptr inbounds i32, i32* %60, i32 33 353 %61 = load i32, i32* %arrayidx125, align 4 354 %tobool126 = icmp ne i32 %61, 0 355 br i1 %tobool126, label %if.then127, label %if.end128 356 357 if.then127: ; preds = %if.end124 358 store i32 7010, i32* @f, align 4 359 br label %if.end128 360 361 if.end128: ; preds = %if.then127, %if.end124 362 br label %if.then131 363 364 if.then131: ; preds = %if.end128 365 store i32 31840, i32* @f, align 4 366 br label %if.end132 367 368 if.end132: ; preds = %if.then131 369 %62 = load i32*, i32** @a, align 4 370 %arrayidx133 = getelementptr inbounds i32, i32* %62, i32 35 371 %63 = load i32, i32* %arrayidx133, align 4 372 %tobool134 = icmp ne i32 %63, 0 373 br i1 %tobool134, label %if.then135, label %if.end136 374 375 if.then135: ; preds = %if.end132 376 store i32 16119, i32* @f, align 4 377 br label %if.end136 378 379 if.end136: ; preds = %if.then135, %if.end132 380 %64 = load i32*, i32** @a, align 4 381 %arrayidx137 = getelementptr inbounds i32, i32* %64, i32 36 382 %65 = load i32, i32* %arrayidx137, align 4 383 %tobool138 = icmp ne i32 %65, 0 384 br i1 %tobool138, label %if.then139, label %if.end140 385 386 if.then139: ; preds = %if.end136 387 store i32 7119, i32* @f, align 4 388 br label %if.end140 389 390 if.end140: ; preds = %if.then139, %if.end136 391 %66 = load i32*, i32** @a, align 4 392 %arrayidx141 = getelementptr inbounds i32, i32* %66, i32 37 393 %67 = load i32, i32* %arrayidx141, align 4 394 %tobool142 = icmp ne i32 %67, 0 395 br i1 %tobool142, label %if.then143, label %if.end144 396 397 if.then143: ; preds = %if.end140 398 store i32 3333, i32* @f, align 4 399 br label %if.end144 400 401 if.end144: ; preds = %if.then143, %if.end140 402 %68 = load i32*, i32** @a, align 4 403 %arrayidx145 = getelementptr inbounds i32, i32* %68, i32 38 404 %69 = load i32, i32* %arrayidx145, align 4 405 %tobool146 = icmp ne i32 %69, 0 406 br i1 %tobool146, label %if.then147, label %if.end148 407 408 if.then147: ; preds = %if.end144 409 store i32 6430, i32* @f, align 4 410 br label %if.end148 411 412 if.end148: ; preds = %if.then147, %if.end144 413 %70 = load i32*, i32** @a, align 4 414 %arrayidx149 = getelementptr inbounds i32, i32* %70, i32 39 415 %71 = load i32, i32* %arrayidx149, align 4 416 %tobool150 = icmp ne i32 %71, 0 417 br i1 %tobool150, label %if.then151, label %if.end152 418 419 if.then151: ; preds = %if.end148 420 store i32 19857, i32* @f, align 4 421 br label %if.end152 422 423 if.end152: ; preds = %if.then151, %if.end148 424 %72 = load i32*, i32** @a, align 4 425 %arrayidx153 = getelementptr inbounds i32, i32* %72, i32 40 426 %73 = load i32, i32* %arrayidx153, align 4 427 %tobool154 = icmp ne i32 %73, 0 428 br i1 %tobool154, label %if.then155, label %if.end156 429 430 if.then155: ; preds = %if.end152 431 store i32 13237, i32* @f, align 4 432 br label %if.end156 433 434 if.end156: ; preds = %if.then155, %if.end152 435 br label %if.then159 436 437 if.then159: ; preds = %if.end156 438 store i32 163, i32* @f, align 4 439 br label %if.end160 440 441 if.end160: ; preds = %if.then159 442 %74 = load i32*, i32** @a, align 4 443 %arrayidx161 = getelementptr inbounds i32, i32* %74, i32 42 444 %75 = load i32, i32* %arrayidx161, align 4 445 %tobool162 = icmp ne i32 %75, 0 446 br i1 %tobool162, label %if.then163, label %if.end164 447 448 if.then163: ; preds = %if.end160 449 store i32 1961, i32* @f, align 4 450 br label %if.end164 451 452 if.end164: ; preds = %if.then163, %if.end160 453 %76 = load i32*, i32** @a, align 4 454 %arrayidx165 = getelementptr inbounds i32, i32* %76, i32 43 455 %77 = load i32, i32* %arrayidx165, align 4 456 %tobool166 = icmp ne i32 %77, 0 457 br i1 %tobool166, label %if.then167, label %if.end168 458 459 if.then167: ; preds = %if.end164 460 store i32 11325, i32* @f, align 4 461 br label %if.end168 462 463 if.end168: ; preds = %if.then167, %if.end164 464 %78 = load i32*, i32** @a, align 4 465 %arrayidx169 = getelementptr inbounds i32, i32* %78, i32 44 466 %79 = load i32, i32* %arrayidx169, align 4 467 %tobool170 = icmp ne i32 %79, 0 468 br i1 %tobool170, label %if.then171, label %if.end172 469 470 if.then171: ; preds = %if.end168 471 store i32 12189, i32* @f, align 4 472 br label %if.end172 473 474 if.end172: ; preds = %if.then171, %if.end168 475 %80 = load i32*, i32** @a, align 4 476 %arrayidx173 = getelementptr inbounds i32, i32* %80, i32 45 477 %81 = load i32, i32* %arrayidx173, align 4 478 %tobool174 = icmp ne i32 %81, 0 479 br i1 %tobool174, label %if.then175, label %if.end176 480 481 if.then175: ; preds = %if.end172 482 store i32 15172, i32* @f, align 4 483 br label %if.end176 484 485 if.end176: ; preds = %if.then175, %if.end172 486 br label %if.then179 487 488 if.then179: ; preds = %if.end176 489 store i32 13491, i32* @f, align 4 490 br label %if.end180 491 492 if.end180: ; preds = %if.then179 493 %82 = load i32*, i32** @a, align 4 494 %arrayidx181 = getelementptr inbounds i32, i32* %82, i32 47 495 %83 = load i32, i32* %arrayidx181, align 4 496 %tobool182 = icmp ne i32 %83, 0 497 br i1 %tobool182, label %if.then183, label %if.end184 498 499 if.then183: ; preds = %if.end180 500 store i32 9521, i32* @f, align 4 501 br label %if.end184 502 503 if.end184: ; preds = %if.then183, %if.end180 504 %84 = load i32*, i32** @a, align 4 505 %arrayidx185 = getelementptr inbounds i32, i32* %84, i32 48 506 %85 = load i32, i32* %arrayidx185, align 4 507 %tobool186 = icmp ne i32 %85, 0 508 br i1 %tobool186, label %if.then187, label %if.end188 509 510 if.then187: ; preds = %if.end184 511 store i32 448, i32* @f, align 4 512 br label %if.end188 513 514 if.end188: ; preds = %if.then187, %if.end184 515 %86 = load i32*, i32** @a, align 4 516 %arrayidx189 = getelementptr inbounds i32, i32* %86, i32 49 517 %87 = load i32, i32* %arrayidx189, align 4 518 %tobool190 = icmp ne i32 %87, 0 519 br i1 %tobool190, label %if.then191, label %if.end192 520 521 if.then191: ; preds = %if.end188 522 store i32 13468, i32* @f, align 4 523 br label %if.end192 524 525 if.end192: ; preds = %if.then191, %if.end188 526 %88 = load i32*, i32** @a, align 4 527 %arrayidx193 = getelementptr inbounds i32, i32* %88, i32 50 528 %89 = load i32, i32* %arrayidx193, align 4 529 %tobool194 = icmp ne i32 %89, 0 530 br i1 %tobool194, label %if.then195, label %if.end196 531 532 if.then195: ; preds = %if.end192 533 store i32 16190, i32* @f, align 4 534 br label %if.end196 535 536 if.end196: ; preds = %if.then195, %if.end192 537 %90 = load i32*, i32** @a, align 4 538 %arrayidx197 = getelementptr inbounds i32, i32* %90, i32 51 539 %91 = load i32, i32* %arrayidx197, align 4 540 %tobool198 = icmp ne i32 %91, 0 541 br i1 %tobool198, label %if.then199, label %if.end200 542 543 if.then199: ; preds = %if.end196 544 store i32 8602, i32* @f, align 4 545 br label %if.end200 546 547 if.end200: ; preds = %if.then199, %if.end196 548 %92 = load i32*, i32** @a, align 4 549 %arrayidx201 = getelementptr inbounds i32, i32* %92, i32 52 550 %93 = load i32, i32* %arrayidx201, align 4 551 %tobool202 = icmp ne i32 %93, 0 552 br i1 %tobool202, label %if.then203, label %if.end204 553 554 if.then203: ; preds = %if.end200 555 store i32 21083, i32* @f, align 4 556 br label %if.end204 557 558 if.end204: ; preds = %if.then203, %if.end200 559 %94 = load i32*, i32** @a, align 4 560 %arrayidx205 = getelementptr inbounds i32, i32* %94, i32 53 561 %95 = load i32, i32* %arrayidx205, align 4 562 %tobool206 = icmp ne i32 %95, 0 563 br i1 %tobool206, label %if.then207, label %if.end208 564 565 if.then207: ; preds = %if.end204 566 store i32 5172, i32* @f, align 4 567 br label %if.end208 568 569 if.end208: ; preds = %if.then207, %if.end204 570 %96 = load i32*, i32** @a, align 4 571 %arrayidx209 = getelementptr inbounds i32, i32* %96, i32 54 572 %97 = load i32, i32* %arrayidx209, align 4 573 %tobool210 = icmp ne i32 %97, 0 574 br i1 %tobool210, label %if.then211, label %if.end212 575 576 if.then211: ; preds = %if.end208 577 store i32 32505, i32* @f, align 4 578 br label %if.end212 579 580 if.end212: ; preds = %if.then211, %if.end208 581 br label %if.then215 582 583 if.then215: ; preds = %if.end212 584 store i32 23490, i32* @f, align 4 585 br label %if.end216 586 587 if.end216: ; preds = %if.then215 588 %98 = load i32*, i32** @a, align 4 589 %arrayidx217 = getelementptr inbounds i32, i32* %98, i32 56 590 %99 = load i32, i32* %arrayidx217, align 4 591 %tobool218 = icmp ne i32 %99, 0 592 br i1 %tobool218, label %if.then219, label %if.end220 593 594 if.then219: ; preds = %if.end216 595 store i32 30699, i32* @f, align 4 596 br label %if.end220 597 598 if.end220: ; preds = %if.then219, %if.end216 599 %100 = load i32*, i32** @a, align 4 600 %arrayidx221 = getelementptr inbounds i32, i32* %100, i32 57 601 %101 = load i32, i32* %arrayidx221, align 4 602 %tobool222 = icmp ne i32 %101, 0 603 br i1 %tobool222, label %if.then223, label %if.end224 604 605 if.then223: ; preds = %if.end220 606 store i32 16286, i32* @f, align 4 607 br label %if.end224 608 609 if.end224: ; preds = %if.then223, %if.end220 610 %102 = load i32*, i32** @a, align 4 611 %arrayidx225 = getelementptr inbounds i32, i32* %102, i32 58 612 %103 = load i32, i32* %arrayidx225, align 4 613 %tobool226 = icmp ne i32 %103, 0 614 br i1 %tobool226, label %if.then227, label %if.end228 615 616 if.then227: ; preds = %if.end224 617 store i32 17939, i32* @f, align 4 618 br label %if.end228 619 620 if.end228: ; preds = %if.then227, %if.end224 621 %104 = load i32*, i32** @a, align 4 622 %arrayidx229 = getelementptr inbounds i32, i32* %104, i32 59 623 %105 = load i32, i32* %arrayidx229, align 4 624 %tobool230 = icmp ne i32 %105, 0 625 br i1 %tobool230, label %if.then231, label %if.end232 626 627 if.then231: ; preds = %if.end228 628 store i32 25148, i32* @f, align 4 629 br label %if.end232 630 631 if.end232: ; preds = %if.then231, %if.end228 632 %106 = load i32*, i32** @a, align 4 633 %arrayidx233 = getelementptr inbounds i32, i32* %106, i32 60 634 %107 = load i32, i32* %arrayidx233, align 4 635 %tobool234 = icmp ne i32 %107, 0 636 br i1 %tobool234, label %if.then235, label %if.end236 637 638 if.then235: ; preds = %if.end232 639 store i32 644, i32* @f, align 4 640 br label %if.end236 641 642 if.end236: ; preds = %if.then235, %if.end232 643 br label %if.then239 644 645 if.then239: ; preds = %if.end236 646 store i32 23457, i32* @f, align 4 647 br label %if.end240 648 649 if.end240: ; preds = %if.then239 650 %108 = load i32*, i32** @a, align 4 651 %arrayidx241 = getelementptr inbounds i32, i32* %108, i32 62 652 %109 = load i32, i32* %arrayidx241, align 4 653 %tobool242 = icmp ne i32 %109, 0 654 br i1 %tobool242, label %if.then243, label %if.end244 655 656 if.then243: ; preds = %if.end240 657 store i32 21116, i32* @f, align 4 658 br label %if.end244 659 660 if.end244: ; preds = %if.then243, %if.end240 661 br label %if.then247 662 663 if.then247: ; preds = %if.end244 664 store i32 10066, i32* @f, align 4 665 br label %if.end248 666 667 if.end248: ; preds = %if.then247 668 %110 = load i32*, i32** @a, align 4 669 %arrayidx249 = getelementptr inbounds i32, i32* %110, i32 64 670 %111 = load i32, i32* %arrayidx249, align 4 671 %tobool250 = icmp ne i32 %111, 0 672 br i1 %tobool250, label %if.then251, label %if.end252 673 674 if.then251: ; preds = %if.end248 675 store i32 9058, i32* @f, align 4 676 br label %if.end252 677 678 if.end252: ; preds = %if.then251, %if.end248 679 %112 = load i32*, i32** @a, align 4 680 %arrayidx253 = getelementptr inbounds i32, i32* %112, i32 65 681 %113 = load i32, i32* %arrayidx253, align 4 682 %tobool254 = icmp ne i32 %113, 0 683 br i1 %tobool254, label %if.then255, label %if.end256 684 685 if.then255: ; preds = %if.end252 686 store i32 8383, i32* @f, align 4 687 br label %if.end256 688 689 if.end256: ; preds = %if.then255, %if.end252 690 %114 = load i32*, i32** @a, align 4 691 %arrayidx257 = getelementptr inbounds i32, i32* %114, i32 66 692 %115 = load i32, i32* %arrayidx257, align 4 693 %tobool258 = icmp ne i32 %115, 0 694 br i1 %tobool258, label %if.then259, label %if.end260 695 696 if.then259: ; preds = %if.end256 697 store i32 31069, i32* @f, align 4 698 br label %if.end260 699 700 if.end260: ; preds = %if.then259, %if.end256 701 %116 = load i32*, i32** @a, align 4 702 %arrayidx261 = getelementptr inbounds i32, i32* %116, i32 67 703 %117 = load i32, i32* %arrayidx261, align 4 704 %tobool262 = icmp ne i32 %117, 0 705 br i1 %tobool262, label %if.then263, label %if.end264 706 707 if.then263: ; preds = %if.end260 708 store i32 32280, i32* @f, align 4 709 br label %if.end264 710 711 if.end264: ; preds = %if.then263, %if.end260 712 br label %if.then267 713 714 if.then267: ; preds = %if.end264 715 store i32 1553, i32* @f, align 4 716 br label %if.end268 717 718 if.end268: ; preds = %if.then267 719 %118 = load i32*, i32** @a, align 4 720 %arrayidx269 = getelementptr inbounds i32, i32* %118, i32 69 721 %119 = load i32, i32* %arrayidx269, align 4 722 %tobool270 = icmp ne i32 %119, 0 723 br i1 %tobool270, label %if.then271, label %if.end272 724 725 if.then271: ; preds = %if.end268 726 store i32 8118, i32* @f, align 4 727 br label %if.end272 728 729 if.end272: ; preds = %if.then271, %if.end268 730 %120 = load i32*, i32** @a, align 4 731 %arrayidx273 = getelementptr inbounds i32, i32* %120, i32 70 732 %121 = load i32, i32* %arrayidx273, align 4 733 %tobool274 = icmp ne i32 %121, 0 734 br i1 %tobool274, label %if.then275, label %if.end276 735 736 if.then275: ; preds = %if.end272 737 store i32 12959, i32* @f, align 4 738 br label %if.end276 739 740 if.end276: ; preds = %if.then275, %if.end272 741 %122 = load i32*, i32** @a, align 4 742 %arrayidx277 = getelementptr inbounds i32, i32* %122, i32 71 743 %123 = load i32, i32* %arrayidx277, align 4 744 %tobool278 = icmp ne i32 %123, 0 745 br i1 %tobool278, label %if.then279, label %if.end280 746 747 if.then279: ; preds = %if.end276 748 store i32 675, i32* @f, align 4 749 br label %if.end280 750 751 if.end280: ; preds = %if.then279, %if.end276 752 %124 = load i32*, i32** @a, align 4 753 %arrayidx281 = getelementptr inbounds i32, i32* %124, i32 72 754 %125 = load i32, i32* %arrayidx281, align 4 755 %tobool282 = icmp ne i32 %125, 0 756 br i1 %tobool282, label %if.then283, label %if.end284 757 758 if.then283: ; preds = %if.end280 759 store i32 29144, i32* @f, align 4 760 br label %if.end284 761 762 if.end284: ; preds = %if.then283, %if.end280 763 %126 = load i32*, i32** @a, align 4 764 %arrayidx285 = getelementptr inbounds i32, i32* %126, i32 73 765 %127 = load i32, i32* %arrayidx285, align 4 766 %tobool286 = icmp ne i32 %127, 0 767 br i1 %tobool286, label %if.then287, label %if.end288 768 769 if.then287: ; preds = %if.end284 770 store i32 26130, i32* @f, align 4 771 br label %if.end288 772 773 if.end288: ; preds = %if.then287, %if.end284 774 %128 = load i32*, i32** @a, align 4 775 %arrayidx289 = getelementptr inbounds i32, i32* %128, i32 74 776 %129 = load i32, i32* %arrayidx289, align 4 777 %tobool290 = icmp ne i32 %129, 0 778 br i1 %tobool290, label %if.then291, label %if.end292 779 780 if.then291: ; preds = %if.end288 781 store i32 31934, i32* @f, align 4 782 br label %if.end292 783 784 if.end292: ; preds = %if.then291, %if.end288 785 %130 = load i32*, i32** @a, align 4 786 %arrayidx293 = getelementptr inbounds i32, i32* %130, i32 75 787 %131 = load i32, i32* %arrayidx293, align 4 788 %tobool294 = icmp ne i32 %131, 0 789 br i1 %tobool294, label %if.then295, label %if.end296 790 791 if.then295: ; preds = %if.end292 792 store i32 25862, i32* @f, align 4 793 br label %if.end296 794 795 if.end296: ; preds = %if.then295, %if.end292 796 %132 = load i32*, i32** @a, align 4 797 %arrayidx297 = getelementptr inbounds i32, i32* %132, i32 76 798 %133 = load i32, i32* %arrayidx297, align 4 799 %tobool298 = icmp ne i32 %133, 0 800 br i1 %tobool298, label %if.then299, label %if.end300 801 802 if.then299: ; preds = %if.end296 803 store i32 10642, i32* @f, align 4 804 br label %if.end300 805 806 if.end300: ; preds = %if.then299, %if.end296 807 %134 = load i32*, i32** @a, align 4 808 %arrayidx301 = getelementptr inbounds i32, i32* %134, i32 77 809 %135 = load i32, i32* %arrayidx301, align 4 810 %tobool302 = icmp ne i32 %135, 0 811 br i1 %tobool302, label %if.then303, label %if.end304 812 813 if.then303: ; preds = %if.end300 814 store i32 20209, i32* @f, align 4 815 br label %if.end304 816 817 if.end304: ; preds = %if.then303, %if.end300 818 %136 = load i32*, i32** @a, align 4 819 %arrayidx305 = getelementptr inbounds i32, i32* %136, i32 78 820 %137 = load i32, i32* %arrayidx305, align 4 821 %tobool306 = icmp ne i32 %137, 0 822 br i1 %tobool306, label %if.then307, label %if.end308 823 824 if.then307: ; preds = %if.end304 825 store i32 30889, i32* @f, align 4 826 br label %if.end308 827 828 if.end308: ; preds = %if.then307, %if.end304 829 %138 = load i32*, i32** @a, align 4 830 %arrayidx309 = getelementptr inbounds i32, i32* %138, i32 79 831 %139 = load i32, i32* %arrayidx309, align 4 832 %tobool310 = icmp ne i32 %139, 0 833 br i1 %tobool310, label %if.then311, label %if.end312 834 835 if.then311: ; preds = %if.end308 836 store i32 18688, i32* @f, align 4 837 br label %if.end312 838 839 if.end312: ; preds = %if.then311, %if.end308 840 %140 = load i32*, i32** @a, align 4 841 %arrayidx313 = getelementptr inbounds i32, i32* %140, i32 80 842 %141 = load i32, i32* %arrayidx313, align 4 843 %tobool314 = icmp ne i32 %141, 0 844 br i1 %tobool314, label %if.then315, label %if.end316 845 846 if.then315: ; preds = %if.end312 847 store i32 28726, i32* @f, align 4 848 br label %if.end316 849 850 if.end316: ; preds = %if.then315, %if.end312 851 %142 = load i32*, i32** @a, align 4 852 %arrayidx317 = getelementptr inbounds i32, i32* %142, i32 81 853 %143 = load i32, i32* %arrayidx317, align 4 854 %tobool318 = icmp ne i32 %143, 0 855 br i1 %tobool318, label %if.then319, label %if.end320 856 857 if.then319: ; preds = %if.end316 858 store i32 4266, i32* @f, align 4 859 br label %if.end320 860 861 if.end320: ; preds = %if.then319, %if.end316 862 %144 = load i32*, i32** @a, align 4 863 %arrayidx321 = getelementptr inbounds i32, i32* %144, i32 82 864 %145 = load i32, i32* %arrayidx321, align 4 865 %tobool322 = icmp ne i32 %145, 0 866 br i1 %tobool322, label %if.then323, label %if.end324 867 868 if.then323: ; preds = %if.end320 869 store i32 15461, i32* @f, align 4 870 br label %if.end324 871 872 if.end324: ; preds = %if.then323, %if.end320 873 %146 = load i32*, i32** @a, align 4 874 %arrayidx325 = getelementptr inbounds i32, i32* %146, i32 83 875 %147 = load i32, i32* %arrayidx325, align 4 876 %tobool326 = icmp ne i32 %147, 0 877 br i1 %tobool326, label %if.then327, label %if.end328 878 879 if.then327: ; preds = %if.end324 880 store i32 24716, i32* @f, align 4 881 br label %if.end328 882 883 if.end328: ; preds = %if.then327, %if.end324 884 br label %if.then331 885 886 if.then331: ; preds = %if.end328 887 store i32 18727, i32* @f, align 4 888 br label %if.end332 889 890 if.end332: ; preds = %if.then331 891 %148 = load i32*, i32** @a, align 4 892 %arrayidx333 = getelementptr inbounds i32, i32* %148, i32 85 893 %149 = load i32, i32* %arrayidx333, align 4 894 %tobool334 = icmp ne i32 %149, 0 895 br i1 %tobool334, label %if.then335, label %if.end336 896 897 if.then335: ; preds = %if.end332 898 store i32 29505, i32* @f, align 4 899 br label %if.end336 900 901 if.end336: ; preds = %if.then335, %if.end332 902 %150 = load i32*, i32** @a, align 4 903 %arrayidx337 = getelementptr inbounds i32, i32* %150, i32 86 904 %151 = load i32, i32* %arrayidx337, align 4 905 %tobool338 = icmp ne i32 %151, 0 906 br i1 %tobool338, label %if.then339, label %if.end340 907 908 if.then339: ; preds = %if.end336 909 store i32 27008, i32* @f, align 4 910 br label %if.end340 911 912 if.end340: ; preds = %if.then339, %if.end336 913 %152 = load i32*, i32** @a, align 4 914 %arrayidx341 = getelementptr inbounds i32, i32* %152, i32 87 915 %153 = load i32, i32* %arrayidx341, align 4 916 %tobool342 = icmp ne i32 %153, 0 917 br i1 %tobool342, label %if.then343, label %if.end344 918 919 if.then343: ; preds = %if.end340 920 store i32 6550, i32* @f, align 4 921 br label %if.end344 922 923 if.end344: ; preds = %if.then343, %if.end340 924 br label %if.then347 925 926 if.then347: ; preds = %if.end344 927 store i32 1117, i32* @f, align 4 928 br label %if.end348 929 930 if.end348: ; preds = %if.then347 931 %154 = load i32*, i32** @a, align 4 932 %arrayidx349 = getelementptr inbounds i32, i32* %154, i32 89 933 %155 = load i32, i32* %arrayidx349, align 4 934 %tobool350 = icmp ne i32 %155, 0 935 br i1 %tobool350, label %if.then351, label %if.end352 936 937 if.then351: ; preds = %if.end348 938 store i32 20118, i32* @f, align 4 939 br label %if.end352 940 941 if.end352: ; preds = %if.then351, %if.end348 942 %156 = load i32*, i32** @a, align 4 943 %arrayidx353 = getelementptr inbounds i32, i32* %156, i32 90 944 %157 = load i32, i32* %arrayidx353, align 4 945 %tobool354 = icmp ne i32 %157, 0 946 br i1 %tobool354, label %if.then355, label %if.end356 947 948 if.then355: ; preds = %if.end352 949 store i32 13650, i32* @f, align 4 950 br label %if.end356 951 952 if.end356: ; preds = %if.then355, %if.end352 953 br label %if.then359 954 955 if.then359: ; preds = %if.end356 956 store i32 18642, i32* @f, align 4 957 br label %if.end360 958 959 if.end360: ; preds = %if.then359 960 %158 = load i32*, i32** @a, align 4 961 %arrayidx361 = getelementptr inbounds i32, i32* %158, i32 92 962 %159 = load i32, i32* %arrayidx361, align 4 963 %tobool362 = icmp ne i32 %159, 0 964 br i1 %tobool362, label %if.then363, label %if.end364 965 966 if.then363: ; preds = %if.end360 967 store i32 30662, i32* @f, align 4 968 br label %if.end364 969 970 if.end364: ; preds = %if.then363, %if.end360 971 %160 = load i32*, i32** @a, align 4 972 %arrayidx365 = getelementptr inbounds i32, i32* %160, i32 93 973 %161 = load i32, i32* %arrayidx365, align 4 974 %tobool366 = icmp ne i32 %161, 0 975 br i1 %tobool366, label %if.then367, label %if.end368 976 977 if.then367: ; preds = %if.end364 978 store i32 8095, i32* @f, align 4 979 br label %if.end368 980 981 if.end368: ; preds = %if.then367, %if.end364 982 %162 = load i32*, i32** @a, align 4 983 %arrayidx369 = getelementptr inbounds i32, i32* %162, i32 94 984 %163 = load i32, i32* %arrayidx369, align 4 985 %tobool370 = icmp ne i32 %163, 0 986 br i1 %tobool370, label %if.then371, label %if.end372 987 988 if.then371: ; preds = %if.end368 989 store i32 8442, i32* @f, align 4 990 br label %if.end372 991 992 if.end372: ; preds = %if.then371, %if.end368 993 %164 = load i32*, i32** @a, align 4 994 %arrayidx373 = getelementptr inbounds i32, i32* %164, i32 95 995 %165 = load i32, i32* %arrayidx373, align 4 996 %tobool374 = icmp ne i32 %165, 0 997 br i1 %tobool374, label %if.then375, label %if.end376 998 999 if.then375: ; preds = %if.end372 1000 store i32 8153, i32* @f, align 4 1001 br label %if.end376 1002 1003 if.end376: ; preds = %if.then375, %if.end372 1004 br label %if.then379 1005 1006 if.then379: ; preds = %if.end376 1007 store i32 12965, i32* @f, align 4 1008 br label %if.end380 1009 1010 if.end380: ; preds = %if.then379 1011 %166 = load i32*, i32** @a, align 4 1012 %arrayidx381 = getelementptr inbounds i32, i32* %166, i32 97 1013 %167 = load i32, i32* %arrayidx381, align 4 1014 %tobool382 = icmp ne i32 %167, 0 1015 br i1 %tobool382, label %if.then383, label %if.end384 1016 1017 if.then383: ; preds = %if.end380 1018 store i32 14277, i32* @f, align 4 1019 br label %if.end384 1020 1021 if.end384: ; preds = %if.then383, %if.end380 1022 br label %if.then387 1023 1024 if.then387: ; preds = %if.end384 1025 store i32 1997, i32* @f, align 4 1026 br label %if.end388 1027 1028 if.end388: ; preds = %if.then387 1029 %168 = load i32*, i32** @a, align 4 1030 %arrayidx389 = getelementptr inbounds i32, i32* %168, i32 99 1031 %169 = load i32, i32* %arrayidx389, align 4 1032 %tobool390 = icmp ne i32 %169, 0 1033 br i1 %tobool390, label %if.then391, label %if.end392 1034 1035 if.then391: ; preds = %if.end388 1036 store i32 31385, i32* @f, align 4 1037 br label %if.end392 1038 1039 if.end392: ; preds = %if.then391, %if.end388 1040 %170 = load i32*, i32** @a, align 4 1041 %arrayidx393 = getelementptr inbounds i32, i32* %170, i32 100 1042 %171 = load i32, i32* %arrayidx393, align 4 1043 %tobool394 = icmp ne i32 %171, 0 1044 br i1 %tobool394, label %if.then395, label %if.end396 1045 1046 if.then395: ; preds = %if.end392 1047 store i32 8286, i32* @f, align 4 1048 br label %if.end396 1049 1050 if.end396: ; preds = %if.then395, %if.end392 1051 ret void 1052 } 1053