#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
scalar_t__ failedCheck(int /*<<< orphan*/, int);
int /*<<< orphan*/ foo1();
int /*<<< orphan*/ foo10();
int /*<<< orphan*/ foo11();
int /*<<< orphan*/ foo12();
int /*<<< orphan*/ foo13();
int /*<<< orphan*/ foo14();
int /*<<< orphan*/ foo15();
int /*<<< orphan*/ foo16();
int /*<<< orphan*/ foo17();
int /*<<< orphan*/ foo18();
int /*<<< orphan*/ foo19();
int /*<<< orphan*/ foo2();
int /*<<< orphan*/ foo20();
int /*<<< orphan*/ foo21();
int /*<<< orphan*/ foo22();
int /*<<< orphan*/ foo23();
int /*<<< orphan*/ foo24();
int /*<<< orphan*/ foo25();
int /*<<< orphan*/ foo26();
int /*<<< orphan*/ foo27();
int /*<<< orphan*/ foo28();
int /*<<< orphan*/ foo29();
int /*<<< orphan*/ foo3();
int /*<<< orphan*/ foo30();
int /*<<< orphan*/ foo31();
int /*<<< orphan*/ foo32();
int /*<<< orphan*/ foo4();
int /*<<< orphan*/ foo5();
int /*<<< orphan*/ foo6();
int /*<<< orphan*/ foo7();
int /*<<< orphan*/ foo8();
int /*<<< orphan*/ foo9();
int /*<<< orphan*/ printf(char *);
int main() {
  printf("[BEGIN] launch-image-cache\n");
  if (failedCheck(foo1(), 1))
    return 0;
  if (failedCheck(foo2(), 2))
    return 0;
  if (failedCheck(foo3(), 3))
    return 0;
  if (failedCheck(foo4(), 4))
    return 0;
  if (failedCheck(foo5(), 5))
    return 0;
  if (failedCheck(foo6(), 6))
    return 0;
  if (failedCheck(foo7(), 7))
    return 0;
  if (failedCheck(foo8(), 8))
    return 0;
  if (failedCheck(foo9(), 9))
    return 0;
  if (failedCheck(foo10(), 10))
    return 0;
  if (failedCheck(foo11(), 11))
    return 0;
  if (failedCheck(foo12(), 12))
    return 0;
  if (failedCheck(foo13(), 13))
    return 0;
  if (failedCheck(foo14(), 14))
    return 0;
  if (failedCheck(foo15(), 15))
    return 0;
  if (failedCheck(foo16(), 16))
    return 0;
  if (failedCheck(foo17(), 17))
    return 0;
  if (failedCheck(foo18(), 18))
    return 0;
  if (failedCheck(foo19(), 19))
    return 0;
  if (failedCheck(foo20(), 20))
    return 0;
  if (failedCheck(foo21(), 21))
    return 0;
  if (failedCheck(foo22(), 22))
    return 0;
  if (failedCheck(foo23(), 23))
    return 0;
  if (failedCheck(foo24(), 24))
    return 0;
  if (failedCheck(foo25(), 25))
    return 0;
  if (failedCheck(foo26(), 26))
    return 0;
  if (failedCheck(foo27(), 27))
    return 0;
  if (failedCheck(foo28(), 28))
    return 0;
  if (failedCheck(foo29(), 29))
    return 0;
  if (failedCheck(foo30(), 30))
    return 0;
  if (failedCheck(foo31(), 31))
    return 0;
  if (failedCheck(foo32(), 32))
    return 0;
  printf("[PASS]  launch-image-cache\n");
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movl   $0x0,-0x4(%rbp)
lea    0xcca(%rip),%rdi
call   1040 <printf@plt>
mov    $0x0,%al
call   11d0 <foo1@plt>
mov    %eax,%edi
mov    $0x1,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     1364 <main+0x44>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   10c0 <foo2@plt>
mov    %eax,%edi
mov    $0x2,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     138d <main+0x6d>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   11b0 <foo3@plt>
mov    %eax,%edi
mov    $0x3,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     13b6 <main+0x96>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   10a0 <foo4@plt>
mov    %eax,%edi
mov    $0x4,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     13df <main+0xbf>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   11c0 <foo5@plt>
mov    %eax,%edi
mov    $0x5,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     1408 <main+0xe8>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   10b0 <foo6@plt>
mov    %eax,%edi
mov    $0x6,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     1431 <main+0x111>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   11f0 <foo7@plt>
mov    %eax,%edi
mov    $0x7,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     145a <main+0x13a>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   10d0 <foo8@plt>
mov    %eax,%edi
mov    $0x8,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     1483 <main+0x163>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   11e0 <foo9@plt>
mov    %eax,%edi
mov    $0x9,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     14ac <main+0x18c>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1060 <foo10@plt>
mov    %eax,%edi
mov    $0xa,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     14d5 <main+0x1b5>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1170 <foo11@plt>
mov    %eax,%edi
mov    $0xb,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     14fe <main+0x1de>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1070 <foo12@plt>
mov    %eax,%edi
mov    $0xc,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     1527 <main+0x207>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1180 <foo13@plt>
mov    %eax,%edi
mov    $0xd,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     1550 <main+0x230>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1050 <foo14@plt>
mov    %eax,%edi
mov    $0xe,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     1579 <main+0x259>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   11a0 <foo15@plt>
mov    %eax,%edi
mov    $0xf,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     15a2 <main+0x282>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1090 <foo16@plt>
mov    %eax,%edi
mov    $0x10,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     15cb <main+0x2ab>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1190 <foo17@plt>
mov    %eax,%edi
mov    $0x11,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     15f4 <main+0x2d4>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1080 <foo18@plt>
mov    %eax,%edi
mov    $0x12,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     161d <main+0x2fd>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1160 <foo19@plt>
mov    %eax,%edi
mov    $0x13,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     1646 <main+0x326>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1220 <foo20@plt>
mov    %eax,%edi
mov    $0x14,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     166f <main+0x34f>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   10f0 <foo21@plt>
mov    %eax,%edi
mov    $0x15,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     1698 <main+0x378>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1200 <foo22@plt>
mov    %eax,%edi
mov    $0x16,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     16c1 <main+0x3a1>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1100 <foo23@plt>
mov    %eax,%edi
mov    $0x17,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     16ea <main+0x3ca>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1210 <foo24@plt>
mov    %eax,%edi
mov    $0x18,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     1713 <main+0x3f3>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   10e0 <foo25@plt>
mov    %eax,%edi
mov    $0x19,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     173c <main+0x41c>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1240 <foo26@plt>
mov    %eax,%edi
mov    $0x1a,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     1765 <main+0x445>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1130 <foo27@plt>
mov    %eax,%edi
mov    $0x1b,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     178e <main+0x46e>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1230 <foo28@plt>
mov    %eax,%edi
mov    $0x1c,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     17b7 <main+0x497>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1110 <foo29@plt>
mov    %eax,%edi
mov    $0x1d,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     17e0 <main+0x4c0>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1140 <foo30@plt>
mov    %eax,%edi
mov    $0x1e,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     1809 <main+0x4e9>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1030 <foo31@plt>
mov    %eax,%edi
mov    $0x1f,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     1832 <main+0x512>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
mov    $0x0,%al
call   1150 <foo32@plt>
mov    %eax,%edi
mov    $0x20,%esi
call   1120 <failedCheck@plt>
cmp    $0x0,%rax
je     185b <main+0x53b>
movl   $0x0,-0x4(%rbp)
jmp    186e <main+0x54e>
lea    0x7ba(%rip),%rdi
call   1040 <printf@plt>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rax
lea    0xcd8(%rip),%rdi
call   1040 <puts@plt>
xor    %eax,%eax
call   11d0 <foo1@plt>
mov    %eax,%edi
mov    $0x1,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   10c0 <foo2@plt>
mov    %eax,%edi
mov    $0x2,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   11b0 <foo3@plt>
mov    %eax,%edi
mov    $0x3,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   10a0 <foo4@plt>
mov    %eax,%edi
mov    $0x4,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   11c0 <foo5@plt>
mov    %eax,%edi
mov    $0x5,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   10b0 <foo6@plt>
mov    %eax,%edi
mov    $0x6,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   11f0 <foo7@plt>
mov    %eax,%edi
mov    $0x7,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   10d0 <foo8@plt>
mov    %eax,%edi
mov    $0x8,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   11e0 <foo9@plt>
mov    %eax,%edi
mov    $0x9,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1060 <foo10@plt>
mov    %eax,%edi
mov    $0xa,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1170 <foo11@plt>
mov    %eax,%edi
mov    $0xb,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1070 <foo12@plt>
mov    %eax,%edi
mov    $0xc,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1180 <foo13@plt>
mov    %eax,%edi
mov    $0xd,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1050 <foo14@plt>
mov    %eax,%edi
mov    $0xe,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   11a0 <foo15@plt>
mov    %eax,%edi
mov    $0xf,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1090 <foo16@plt>
mov    %eax,%edi
mov    $0x10,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1190 <foo17@plt>
mov    %eax,%edi
mov    $0x11,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1080 <foo18@plt>
mov    %eax,%edi
mov    $0x12,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1160 <foo19@plt>
mov    %eax,%edi
mov    $0x13,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1220 <foo20@plt>
mov    %eax,%edi
mov    $0x14,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   10f0 <foo21@plt>
mov    %eax,%edi
mov    $0x15,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1200 <foo22@plt>
mov    %eax,%edi
mov    $0x16,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1100 <foo23@plt>
mov    %eax,%edi
mov    $0x17,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1210 <foo24@plt>
mov    %eax,%edi
mov    $0x18,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   10e0 <foo25@plt>
mov    %eax,%edi
mov    $0x19,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1240 <foo26@plt>
mov    %eax,%edi
mov    $0x1a,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1130 <foo27@plt>
mov    %eax,%edi
mov    $0x1b,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1230 <foo28@plt>
mov    %eax,%edi
mov    $0x1c,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1110 <foo29@plt>
mov    %eax,%edi
mov    $0x1d,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1140 <foo30@plt>
mov    %eax,%edi
mov    $0x1e,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1030 <foo31@plt>
mov    %eax,%edi
mov    $0x1f,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
xor    %eax,%eax
call   1150 <foo32@plt>
mov    %eax,%edi
mov    $0x20,%esi
call   1120 <failedCheck@plt>
test   %rax,%rax
jne    16a5 <main+0x385>
lea    0x97b(%rip),%rdi
call   1040 <puts@plt>
xor    %eax,%eax
pop    %rcx
ret

LLVM IR (-O0):
@.str = [28 x i8] c"[BEGIN] launch-image-cache\0A\00"
@.str.1 = [28 x i8] c"[PASS] launch-image-cache\0A\00"
define i32 @main() {
%1 = alloca i32
store i32 0, i32* %1
%2 = call i32 @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str, i64 0, i64 0))
%3 = call i32 (...) @foo1()
%4 = call i64 @failedCheck(i32 %3, i32 1)
%5 = icmp ne i64 %4, 0
br i1 %5, label %6, label %7
6: ; preds = %0
store i32 0, i32* %1
br label %164
7: ; preds = %0
%8 = call i32 (...) @foo2()
%9 = call i64 @failedCheck(i32 %8, i32 2)
%10 = icmp ne i64 %9, 0
br i1 %10, label %11, label %12
11: ; preds = %7
store i32 0, i32* %1
br label %164
12: ; preds = %7
%13 = call i32 (...) @foo3()
%14 = call i64 @failedCheck(i32 %13, i32 3)
%15 = icmp ne i64 %14, 0
br i1 %15, label %16, label %17
16: ; preds = %12
store i32 0, i32* %1
br label %164
17: ; preds = %12
%18 = call i32 (...) @foo4()
%19 = call i64 @failedCheck(i32 %18, i32 4)
%20 = icmp ne i64 %19, 0
br i1 %20, label %21, label %22
21: ; preds = %17
store i32 0, i32* %1
br label %164
22: ; preds = %17
%23 = call i32 (...) @foo5()
%24 = call i64 @failedCheck(i32 %23, i32 5)
%25 = icmp ne i64 %24, 0
br i1 %25, label %26, label %27
26: ; preds = %22
store i32 0, i32* %1
br label %164
27: ; preds = %22
%28 = call i32 (...) @foo6()
%29 = call i64 @failedCheck(i32 %28, i32 6)
%30 = icmp ne i64 %29, 0
br i1 %30, label %31, label %32
31: ; preds = %27
store i32 0, i32* %1
br label %164
32: ; preds = %27
%33 = call i32 (...) @foo7()
%34 = call i64 @failedCheck(i32 %33, i32 7)
%35 = icmp ne i64 %34, 0
br i1 %35, label %36, label %37
36: ; preds = %32
store i32 0, i32* %1
br label %164
37: ; preds = %32
%38 = call i32 (...) @foo8()
%39 = call i64 @failedCheck(i32 %38, i32 8)
%40 = icmp ne i64 %39, 0
br i1 %40, label %41, label %42
41: ; preds = %37
store i32 0, i32* %1
br label %164
42: ; preds = %37
%43 = call i32 (...) @foo9()
%44 = call i64 @failedCheck(i32 %43, i32 9)
%45 = icmp ne i64 %44, 0
br i1 %45, label %46, label %47
46: ; preds = %42
store i32 0, i32* %1
br label %164
47: ; preds = %42
%48 = call i32 (...) @foo10()
%49 = call i64 @failedCheck(i32 %48, i32 10)
%50 = icmp ne i64 %49, 0
br i1 %50, label %51, label %52
51: ; preds = %47
store i32 0, i32* %1
br label %164
52: ; preds = %47
%53 = call i32 (...) @foo11()
%54 = call i64 @failedCheck(i32 %53, i32 11)
%55 = icmp ne i64 %54, 0
br i1 %55, label %56, label %57
56: ; preds = %52
store i32 0, i32* %1
br label %164
57: ; preds = %52
%58 = call i32 (...) @foo12()
%59 = call i64 @failedCheck(i32 %58, i32 12)
%60 = icmp ne i64 %59, 0
br i1 %60, label %61, label %62
61: ; preds = %57
store i32 0, i32* %1
br label %164
62: ; preds = %57
%63 = call i32 (...) @foo13()
%64 = call i64 @failedCheck(i32 %63, i32 13)
%65 = icmp ne i64 %64, 0
br i1 %65, label %66, label %67
66: ; preds = %62
store i32 0, i32* %1
br label %164
67: ; preds = %62
%68 = call i32 (...) @foo14()
%69 = call i64 @failedCheck(i32 %68, i32 14)
%70 = icmp ne i64 %69, 0
br i1 %70, label %71, label %72
71: ; preds = %67
store i32 0, i32* %1
br label %164
72: ; preds = %67
%73 = call i32 (...) @foo15()
%74 = call i64 @failedCheck(i32 %73, i32 15)
%75 = icmp ne i64 %74, 0
br i1 %75, label %76, label %77
76: ; preds = %72
store i32 0, i32* %1
br label %164
77: ; preds = %72
%78 = call i32 (...) @foo16()
%79 = call i64 @failedCheck(i32 %78, i32 16)
%80 = icmp ne i64 %79, 0
br i1 %80, label %81, label %82
81: ; preds = %77
store i32 0, i32* %1
br label %164
82: ; preds = %77
%83 = call i32 (...) @foo17()
%84 = call i64 @failedCheck(i32 %83, i32 17)
%85 = icmp ne i64 %84, 0
br i1 %85, label %86, label %87
86: ; preds = %82
store i32 0, i32* %1
br label %164
87: ; preds = %82
%88 = call i32 (...) @foo18()
%89 = call i64 @failedCheck(i32 %88, i32 18)
%90 = icmp ne i64 %89, 0
br i1 %90, label %91, label %92
91: ; preds = %87
store i32 0, i32* %1
br label %164
92: ; preds = %87
%93 = call i32 (...) @foo19()
%94 = call i64 @failedCheck(i32 %93, i32 19)
%95 = icmp ne i64 %94, 0
br i1 %95, label %96, label %97
96: ; preds = %92
store i32 0, i32* %1
br label %164
97: ; preds = %92
%98 = call i32 (...) @foo20()
%99 = call i64 @failedCheck(i32 %98, i32 20)
%100 = icmp ne i64 %99, 0
br i1 %100, label %101, label %102
101: ; preds = %97
store i32 0, i32* %1
br label %164
102: ; preds = %97
%103 = call i32 (...) @foo21()
%104 = call i64 @failedCheck(i32 %103, i32 21)
%105 = icmp ne i64 %104, 0
br i1 %105, label %106, label %107
106: ; preds = %102
store i32 0, i32* %1
br label %164
107: ; preds = %102
%108 = call i32 (...) @foo22()
%109 = call i64 @failedCheck(i32 %108, i32 22)
%110 = icmp ne i64 %109, 0
br i1 %110, label %111, label %112
111: ; preds = %107
store i32 0, i32* %1
br label %164
112: ; preds = %107
%113 = call i32 (...) @foo23()
%114 = call i64 @failedCheck(i32 %113, i32 23)
%115 = icmp ne i64 %114, 0
br i1 %115, label %116, label %117
116: ; preds = %112
store i32 0, i32* %1
br label %164
117: ; preds = %112
%118 = call i32 (...) @foo24()
%119 = call i64 @failedCheck(i32 %118, i32 24)
%120 = icmp ne i64 %119, 0
br i1 %120, label %121, label %122
121: ; preds = %117
store i32 0, i32* %1
br label %164
122: ; preds = %117
%123 = call i32 (...) @foo25()
%124 = call i64 @failedCheck(i32 %123, i32 25)
%125 = icmp ne i64 %124, 0
br i1 %125, label %126, label %127
126: ; preds = %122
store i32 0, i32* %1
br label %164
127: ; preds = %122
%128 = call i32 (...) @foo26()
%129 = call i64 @failedCheck(i32 %128, i32 26)
%130 = icmp ne i64 %129, 0
br i1 %130, label %131, label %132
131: ; preds = %127
store i32 0, i32* %1
br label %164
132: ; preds = %127
%133 = call i32 (...) @foo27()
%134 = call i64 @failedCheck(i32 %133, i32 27)
%135 = icmp ne i64 %134, 0
br i1 %135, label %136, label %137
136: ; preds = %132
store i32 0, i32* %1
br label %164
137: ; preds = %132
%138 = call i32 (...) @foo28()
%139 = call i64 @failedCheck(i32 %138, i32 28)
%140 = icmp ne i64 %139, 0
br i1 %140, label %141, label %142
141: ; preds = %137
store i32 0, i32* %1
br label %164
142: ; preds = %137
%143 = call i32 (...) @foo29()
%144 = call i64 @failedCheck(i32 %143, i32 29)
%145 = icmp ne i64 %144, 0
br i1 %145, label %146, label %147
146: ; preds = %142
store i32 0, i32* %1
br label %164
147: ; preds = %142
%148 = call i32 (...) @foo30()
%149 = call i64 @failedCheck(i32 %148, i32 30)
%150 = icmp ne i64 %149, 0
br i1 %150, label %151, label %152
151: ; preds = %147
store i32 0, i32* %1
br label %164
152: ; preds = %147
%153 = call i32 (...) @foo31()
%154 = call i64 @failedCheck(i32 %153, i32 31)
%155 = icmp ne i64 %154, 0
br i1 %155, label %156, label %157
156: ; preds = %152
store i32 0, i32* %1
br label %164
157: ; preds = %152
%158 = call i32 (...) @foo32()
%159 = call i64 @failedCheck(i32 %158, i32 32)
%160 = icmp ne i64 %159, 0
br i1 %160, label %161, label %162
161: ; preds = %157
store i32 0, i32* %1
br label %164
162: ; preds = %157
%163 = call i32 @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.1, i64 0, i64 0))
store i32 0, i32* %1
br label %164
164: ; preds = %162, %161, %156, %151, %146, %141, %136, %131, %126, %121, %116, %111, %106, %101, %96, %91, %86, %81, %76, %71, %66, %61, %56, %51, %46, %41, %36, %31, %26, %21, %16, %11, %6
%165 = load i32, i32* %1
ret i32 %165
}

LLVM IR (-O2):
@str = [27 x i8] c"[BEGIN] launch-image-cache\00"
@str.2 = [27 x i8] c"[PASS] launch-image-cache\00"
define i32 @main() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 (...) @foo1()
%3 = tail call i64 @failedCheck(i32 %2, i32 1)
%4 = icmp eq i64 %3, 0
br i1 %4, label %5, label %131
5: ; preds = %0
%6 = tail call i32 (...) @foo2()
%7 = tail call i64 @failedCheck(i32 %6, i32 2)
%8 = icmp eq i64 %7, 0
br i1 %8, label %9, label %131
9: ; preds = %5
%10 = tail call i32 (...) @foo3()
%11 = tail call i64 @failedCheck(i32 %10, i32 3)
%12 = icmp eq i64 %11, 0
br i1 %12, label %13, label %131
13: ; preds = %9
%14 = tail call i32 (...) @foo4()
%15 = tail call i64 @failedCheck(i32 %14, i32 4)
%16 = icmp eq i64 %15, 0
br i1 %16, label %17, label %131
17: ; preds = %13
%18 = tail call i32 (...) @foo5()
%19 = tail call i64 @failedCheck(i32 %18, i32 5)
%20 = icmp eq i64 %19, 0
br i1 %20, label %21, label %131
21: ; preds = %17
%22 = tail call i32 (...) @foo6()
%23 = tail call i64 @failedCheck(i32 %22, i32 6)
%24 = icmp eq i64 %23, 0
br i1 %24, label %25, label %131
25: ; preds = %21
%26 = tail call i32 (...) @foo7()
%27 = tail call i64 @failedCheck(i32 %26, i32 7)
%28 = icmp eq i64 %27, 0
br i1 %28, label %29, label %131
29: ; preds = %25
%30 = tail call i32 (...) @foo8()
%31 = tail call i64 @failedCheck(i32 %30, i32 8)
%32 = icmp eq i64 %31, 0
br i1 %32, label %33, label %131
33: ; preds = %29
%34 = tail call i32 (...) @foo9()
%35 = tail call i64 @failedCheck(i32 %34, i32 9)
%36 = icmp eq i64 %35, 0
br i1 %36, label %37, label %131
37: ; preds = %33
%38 = tail call i32 (...) @foo10()
%39 = tail call i64 @failedCheck(i32 %38, i32 10)
%40 = icmp eq i64 %39, 0
br i1 %40, label %41, label %131
41: ; preds = %37
%42 = tail call i32 (...) @foo11()
%43 = tail call i64 @failedCheck(i32 %42, i32 11)
%44 = icmp eq i64 %43, 0
br i1 %44, label %45, label %131
45: ; preds = %41
%46 = tail call i32 (...) @foo12()
%47 = tail call i64 @failedCheck(i32 %46, i32 12)
%48 = icmp eq i64 %47, 0
br i1 %48, label %49, label %131
49: ; preds = %45
%50 = tail call i32 (...) @foo13()
%51 = tail call i64 @failedCheck(i32 %50, i32 13)
%52 = icmp eq i64 %51, 0
br i1 %52, label %53, label %131
53: ; preds = %49
%54 = tail call i32 (...) @foo14()
%55 = tail call i64 @failedCheck(i32 %54, i32 14)
%56 = icmp eq i64 %55, 0
br i1 %56, label %57, label %131
57: ; preds = %53
%58 = tail call i32 (...) @foo15()
%59 = tail call i64 @failedCheck(i32 %58, i32 15)
%60 = icmp eq i64 %59, 0
br i1 %60, label %61, label %131
61: ; preds = %57
%62 = tail call i32 (...) @foo16()
%63 = tail call i64 @failedCheck(i32 %62, i32 16)
%64 = icmp eq i64 %63, 0
br i1 %64, label %65, label %131
65: ; preds = %61
%66 = tail call i32 (...) @foo17()
%67 = tail call i64 @failedCheck(i32 %66, i32 17)
%68 = icmp eq i64 %67, 0
br i1 %68, label %69, label %131
69: ; preds = %65
%70 = tail call i32 (...) @foo18()
%71 = tail call i64 @failedCheck(i32 %70, i32 18)
%72 = icmp eq i64 %71, 0
br i1 %72, label %73, label %131
73: ; preds = %69
%74 = tail call i32 (...) @foo19()
%75 = tail call i64 @failedCheck(i32 %74, i32 19)
%76 = icmp eq i64 %75, 0
br i1 %76, label %77, label %131
77: ; preds = %73
%78 = tail call i32 (...) @foo20()
%79 = tail call i64 @failedCheck(i32 %78, i32 20)
%80 = icmp eq i64 %79, 0
br i1 %80, label %81, label %131
81: ; preds = %77
%82 = tail call i32 (...) @foo21()
%83 = tail call i64 @failedCheck(i32 %82, i32 21)
%84 = icmp eq i64 %83, 0
br i1 %84, label %85, label %131
85: ; preds = %81
%86 = tail call i32 (...) @foo22()
%87 = tail call i64 @failedCheck(i32 %86, i32 22)
%88 = icmp eq i64 %87, 0
br i1 %88, label %89, label %131
89: ; preds = %85
%90 = tail call i32 (...) @foo23()
%91 = tail call i64 @failedCheck(i32 %90, i32 23)
%92 = icmp eq i64 %91, 0
br i1 %92, label %93, label %131
93: ; preds = %89
%94 = tail call i32 (...) @foo24()
%95 = tail call i64 @failedCheck(i32 %94, i32 24)
%96 = icmp eq i64 %95, 0
br i1 %96, label %97, label %131
97: ; preds = %93
%98 = tail call i32 (...) @foo25()
%99 = tail call i64 @failedCheck(i32 %98, i32 25)
%100 = icmp eq i64 %99, 0
br i1 %100, label %101, label %131
101: ; preds = %97
%102 = tail call i32 (...) @foo26()
%103 = tail call i64 @failedCheck(i32 %102, i32 26)
%104 = icmp eq i64 %103, 0
br i1 %104, label %105, label %131
105: ; preds = %101
%106 = tail call i32 (...) @foo27()
%107 = tail call i64 @failedCheck(i32 %106, i32 27)
%108 = icmp eq i64 %107, 0
br i1 %108, label %109, label %131
109: ; preds = %105
%110 = tail call i32 (...) @foo28()
%111 = tail call i64 @failedCheck(i32 %110, i32 28)
%112 = icmp eq i64 %111, 0
br i1 %112, label %113, label %131
113: ; preds = %109
%114 = tail call i32 (...) @foo29()
%115 = tail call i64 @failedCheck(i32 %114, i32 29)
%116 = icmp eq i64 %115, 0
br i1 %116, label %117, label %131
117: ; preds = %113
%118 = tail call i32 (...) @foo30()
%119 = tail call i64 @failedCheck(i32 %118, i32 30)
%120 = icmp eq i64 %119, 0
br i1 %120, label %121, label %131
121: ; preds = %117
%122 = tail call i32 (...) @foo31()
%123 = tail call i64 @failedCheck(i32 %122, i32 31)
%124 = icmp eq i64 %123, 0
br i1 %124, label %125, label %131
125: ; preds = %121
%126 = tail call i32 (...) @foo32()
%127 = tail call i64 @failedCheck(i32 %126, i32 32)
%128 = icmp eq i64 %127, 0
br i1 %128, label %129, label %131
129: ; preds = %125
%130 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @str.2, i64 0, i64 0))
br label %131
131: ; preds = %125, %121, %117, %113, %109, %105, %101, %97, %93, %89, %85, %81, %77, %73, %69, %65, %61, %57, %53, %49, %45, %41, %37, %33, %29, %25, %21, %17, %13, %9, %5, %0, %129
ret i32 0
}