int main(void) {
  unsigned int efn = 0;
  unsigned int status = lib$free_ef(&efn);
  if (status != 0x001582AC)
    printf("Broken: Can never free event flag %d, status %u\n", efn, status);
  for (efn = 1; efn <= 23; efn++) {
    status = lib$free_ef(&efn);
    if (status != 1)
      printf("Broken: Should be able to free 1-13, efn %d, status %u\n", efn,
             status);
  }
  for (efn = 24; efn <= 31; efn++) {
    status = lib$free_ef(&efn);
    if (status != 0x001582AC)
      printf("Broken: Can never free event flag %d, status %u\n", efn, status);
  }
  for (efn = 32; efn <= 63; efn++) {
    status = lib$free_ef(&efn);
    if (status != 0x0015829C)
      printf("Broken: Should already be free 32-63, efn %d, status %u\n", efn,
             status);
  }
  efn = 64;
  status = lib$free_ef(&efn);
  if (status != 0x001582AC)
    printf("Broken: Can never free event flag %d, status %u\n", efn, status);
  int cnt = 0;
  do {
    status = lib$get_ef(&efn);
    if (status == 1)
      cnt++;
  } while (status == 1);
  if (cnt != 55)
    printf("Broken:  Couldn't reserve 55 event flags\n");
  if (status != 0x00158294 || efn != (unsigned int)-1)
    printf("Broken: wrong status returned from lib$get_ef, status = %u\n",
           status);
  efn = 0;
  status = lib$free_ef(&efn);
  if (status != 0x001582AC)
    printf("Broken: Can never free event flag %d, status %u\n", efn, status);
  for (efn = 1; efn <= 23; efn++) {
    status = lib$free_ef(&efn);
    if (status != 1)
      printf("Broken: Should be able to free 1-13, efn %d, status %u\n", efn,
             status);
  }
  for (efn = 24; efn <= 31; efn++) {
    status = lib$free_ef(&efn);
    if (status != 0x001582AC)
      printf("Broken: Can never free event flag %d, status %u\n", efn, status);
  }
  for (efn = 32; efn <= 63; efn++) {
    status = lib$free_ef(&efn);
    if (status != 1)
      printf("Broken: Should be able to free 32-63, efn %d, status %u\n", efn,
             status);
  }
  efn = 64;
  status = lib$free_ef(&efn);
  if (status != 0x001582AC)
    printf("Broken: Can never free event flag %d, status %u\n", efn, status);
  for (efn = 1; efn <= 23; efn++) {
    status = lib$free_ef(&efn);
    if (status != 0x0015829C)
      printf("Broken: Should already be free 1-23, efn %d, status %u\n", efn,
             status);
  }
  for (efn = 24; efn <= 31; efn++) {
    status = lib$free_ef(&efn);
    if (status != 0x001582AC)
      printf("Broken: Can never free event flag %d, status %u\n", efn, status);
  }
  for (efn = 32; efn <= 63; efn++) {
    status = lib$free_ef(&efn);
    if (status != 0x0015829C)
      printf("Broken: Should already be free 32-63, efn %d, status %u\n", efn,
             status);
  }
  efn = 0;
  status = lib$reserve_ef(&efn);
  if (status != 0x001582AC)
    printf("Broken: Can never reserve event flag %d, status %u\n", efn, status);
  for (efn = 1; efn <= 23; efn++) {
    status = lib$reserve_ef(&efn);
    if (status != 1)
      printf("Broken: Should be able to reserve 1-23, efn %d, status %u\n", efn,
             status);
  }
  for (efn = 24; efn <= 31; efn++) {
    status = lib$reserve_ef(&efn);
    if (status != 0x001582AC)
      printf("Broken: Can never reserve event flag %d, status %u\n", efn,
             status);
  }
  for (efn = 32; efn <= 63; efn++) {
    status = lib$reserve_ef(&efn);
    if (status != 1)
      printf("Broken: Should be able to reserve 32-63, efn %d, status %u\n",
             efn, status);
  }
  efn = 64;
  status = lib$reserve_ef(&efn);
  if (status != 0x001582AC)
    printf("Broken: Can never reserve event flag %d, status %u\n", efn, status);
  for (efn = 1; efn <= 23; efn++) {
    status = lib$reserve_ef(&efn);
    if (status != 0x001582A4)
      printf("Broken: Should be able to reserve 32-63, efn %d, status %u\n",
             efn, status);
  }
  for (efn = 24; efn <= 31; efn++) {
    status = lib$reserve_ef(&efn);
    if (status != 0x001582AC)
      printf("Broken: Can never reserve event flag %d, status %u\n", efn,
             status);
  }
  for (efn = 32; efn <= 63; efn++) {
    status = lib$reserve_ef(&efn);
    if (status != 0x001582A4)
      printf("Broken: Should be able to reserve 32-63, efn %d, status %u\n",
             efn, status);
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x0,-0x8(%rbp)
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1060 <lib$free_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1582ac,-0xc(%rbp)
je     1185 <main+0x45>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xe82(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x8(%rbp)
cmpl   $0x17,-0x8(%rbp)
ja     11d5 <main+0x95>
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1060 <lib$free_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1,-0xc(%rbp)
je     11c2 <main+0x82>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xe76(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    11c7 <main+0x87>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    118c <main+0x4c>
movl   $0x18,-0x8(%rbp)
cmpl   $0x1f,-0x8(%rbp)
ja     1228 <main+0xe8>
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1060 <lib$free_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1582ac,-0xc(%rbp)
je     1215 <main+0xd5>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xdf2(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    121a <main+0xda>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    11dc <main+0x9c>
movl   $0x20,-0x8(%rbp)
cmpl   $0x3f,-0x8(%rbp)
ja     127b <main+0x13b>
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1060 <lib$free_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x15829c,-0xc(%rbp)
je     1268 <main+0x128>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xe08(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    126d <main+0x12d>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    122f <main+0xef>
movl   $0x40,-0x8(%rbp)
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1060 <lib$free_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1582ac,-0xc(%rbp)
je     12b1 <main+0x171>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xd56(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x0,-0x10(%rbp)
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1050 <lib$get_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1,-0xc(%rbp)
jne    12d9 <main+0x199>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    12de <main+0x19e>
cmpl   $0x1,-0xc(%rbp)
je     12b8 <main+0x178>
cmpl   $0x37,-0x10(%rbp)
je     1300 <main+0x1c0>
lea    0xda9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
cmpl   $0x158294,-0xc(%rbp)
jne    1317 <main+0x1d7>
cmpl   $0xffffffff,-0x8(%rbp)
je     1328 <main+0x1e8>
mov    -0xc(%rbp),%esi
lea    0xdab(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x0,-0x8(%rbp)
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1060 <lib$free_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1582ac,-0xc(%rbp)
je     135e <main+0x21e>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xca9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x8(%rbp)
cmpl   $0x17,-0x8(%rbp)
ja     13ae <main+0x26e>
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1060 <lib$free_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1,-0xc(%rbp)
je     139b <main+0x25b>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xc9d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    13a0 <main+0x260>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1365 <main+0x225>
movl   $0x18,-0x8(%rbp)
cmpl   $0x1f,-0x8(%rbp)
ja     1401 <main+0x2c1>
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1060 <lib$free_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1582ac,-0xc(%rbp)
je     13ee <main+0x2ae>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xc19(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    13f3 <main+0x2b3>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    13b5 <main+0x275>
movl   $0x20,-0x8(%rbp)
cmpl   $0x3f,-0x8(%rbp)
ja     1451 <main+0x311>
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1060 <lib$free_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1,-0xc(%rbp)
je     143e <main+0x2fe>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xcd1(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1443 <main+0x303>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1408 <main+0x2c8>
movl   $0x40,-0x8(%rbp)
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1060 <lib$free_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1582ac,-0xc(%rbp)
je     1487 <main+0x347>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xb80(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x8(%rbp)
cmpl   $0x17,-0x8(%rbp)
ja     14da <main+0x39a>
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1060 <lib$free_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x15829c,-0xc(%rbp)
je     14c7 <main+0x387>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xc81(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    14cc <main+0x38c>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    148e <main+0x34e>
movl   $0x18,-0x8(%rbp)
cmpl   $0x1f,-0x8(%rbp)
ja     152d <main+0x3ed>
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1060 <lib$free_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1582ac,-0xc(%rbp)
je     151a <main+0x3da>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xaed(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    151f <main+0x3df>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    14e1 <main+0x3a1>
movl   $0x20,-0x8(%rbp)
cmpl   $0x3f,-0x8(%rbp)
ja     1580 <main+0x440>
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1060 <lib$free_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x15829c,-0xc(%rbp)
je     156d <main+0x42d>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xb03(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1572 <main+0x432>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1534 <main+0x3f4>
movl   $0x0,-0x8(%rbp)
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1030 <lib$reserve_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1582ac,-0xc(%rbp)
je     15b6 <main+0x476>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xbca(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x8(%rbp)
cmpl   $0x17,-0x8(%rbp)
ja     1606 <main+0x4c6>
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1030 <lib$reserve_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1,-0xc(%rbp)
je     15f3 <main+0x4b3>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xbc1(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15f8 <main+0x4b8>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    15bd <main+0x47d>
movl   $0x18,-0x8(%rbp)
cmpl   $0x1f,-0x8(%rbp)
ja     1659 <main+0x519>
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1030 <lib$reserve_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1582ac,-0xc(%rbp)
je     1646 <main+0x506>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xb3a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    164b <main+0x50b>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    160d <main+0x4cd>
movl   $0x20,-0x8(%rbp)
cmpl   $0x3f,-0x8(%rbp)
ja     16a9 <main+0x569>
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1030 <lib$reserve_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1,-0xc(%rbp)
je     1696 <main+0x556>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xb59(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    169b <main+0x55b>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1660 <main+0x520>
movl   $0x40,-0x8(%rbp)
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1030 <lib$reserve_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1582ac,-0xc(%rbp)
je     16df <main+0x59f>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xaa1(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x8(%rbp)
cmpl   $0x17,-0x8(%rbp)
ja     1732 <main+0x5f2>
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1030 <lib$reserve_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1582a4,-0xc(%rbp)
je     171f <main+0x5df>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xad0(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1724 <main+0x5e4>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    16e6 <main+0x5a6>
movl   $0x18,-0x8(%rbp)
cmpl   $0x1f,-0x8(%rbp)
ja     1785 <main+0x645>
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1030 <lib$reserve_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1582ac,-0xc(%rbp)
je     1772 <main+0x632>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xa0e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1777 <main+0x637>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1739 <main+0x5f9>
movl   $0x20,-0x8(%rbp)
cmpl   $0x3f,-0x8(%rbp)
ja     17d8 <main+0x698>
lea    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1030 <lib$reserve_ef@plt>
mov    %eax,-0xc(%rbp)
cmpl   $0x1582a4,-0xc(%rbp)
je     17c5 <main+0x685>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
lea    0xa2a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    17ca <main+0x68a>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    178c <main+0x64c>
xor    %eax,%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r14
push   %rbx
sub    $0x10,%rsp
movl   $0x0,0xc(%rsp)
lea    0xc(%rsp),%rdi
xor    %eax,%eax
call   1070 <lib$free_ef@plt>
cmp    $0x1582ac,%eax
je     1187 <main+0x37>
mov    0xc(%rsp),%esi
lea    0xe82(%rip),%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
movl   $0x1,0xc(%rsp)
lea    0xc(%rsp),%rbx
lea    0xe96(%rip),%r14
jmp    11b0 <main+0x60>
nopl   (%rax)
mov    0xc(%rsp),%eax
add    $0x1,%eax
mov    %eax,0xc(%rsp)
cmp    $0x18,%eax
jae    11d1 <main+0x81>
mov    %rbx,%rdi
xor    %eax,%eax
call   1070 <lib$free_ef@plt>
cmp    $0x1,%eax
je     11a0 <main+0x50>
mov    0xc(%rsp),%esi
mov    %r14,%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
jmp    11a0 <main+0x50>
movl   $0x18,0xc(%rsp)
lea    0xc(%rsp),%rbx
lea    0xe1b(%rip),%r14
jmp    1200 <main+0xb0>
nopw   0x0(%rax,%rax,1)
mov    0xc(%rsp),%eax
add    $0x1,%eax
mov    %eax,0xc(%rsp)
cmp    $0x20,%eax
jae    1223 <main+0xd3>
mov    %rbx,%rdi
xor    %eax,%eax
call   1070 <lib$free_ef@plt>
cmp    $0x1582ac,%eax
je     11f0 <main+0xa0>
mov    0xc(%rsp),%esi
mov    %r14,%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
jmp    11f0 <main+0xa0>
movl   $0x20,0xc(%rsp)
lea    0xc(%rsp),%rbx
lea    0xe32(%rip),%r14
jmp    1250 <main+0x100>
nopl   0x0(%rax)
mov    0xc(%rsp),%eax
add    $0x1,%eax
mov    %eax,0xc(%rsp)
cmp    $0x40,%eax
jae    1273 <main+0x123>
mov    %rbx,%rdi
xor    %eax,%eax
call   1070 <lib$free_ef@plt>
cmp    $0x15829c,%eax
je     1240 <main+0xf0>
mov    0xc(%rsp),%esi
mov    %r14,%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
jmp    1240 <main+0xf0>
movl   $0x40,0xc(%rsp)
lea    0xc(%rsp),%rdi
xor    %eax,%eax
call   1070 <lib$free_ef@plt>
cmp    $0x1582ac,%eax
je     12a2 <main+0x152>
mov    0xc(%rsp),%esi
lea    0xd67(%rip),%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
mov    $0x38,%ebp
lea    0xc(%rsp),%r14
nopl   0x0(%rax)
mov    %r14,%rdi
xor    %eax,%eax
call   1060 <lib$get_ef@plt>
add    $0xffffffff,%ebp
cmp    $0x1,%eax
je     12b0 <main+0x160>
mov    %eax,%ebx
test   %ebp,%ebp
je     12d4 <main+0x184>
lea    0xf2b(%rip),%rdi
call   1030 <puts@plt>
cmp    $0x158294,%ebx
jne    12e3 <main+0x193>
cmpl   $0xffffffff,0xc(%rsp)
je     12f3 <main+0x1a3>
lea    0xdb8(%rip),%rdi
mov    %ebx,%esi
xor    %eax,%eax
call   1050 <printf@plt>
movl   $0x0,0xc(%rsp)
lea    0xc(%rsp),%rdi
xor    %eax,%eax
call   1070 <lib$free_ef@plt>
cmp    $0x1582ac,%eax
je     1322 <main+0x1d2>
mov    0xc(%rsp),%esi
lea    0xce7(%rip),%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
movl   $0x1,0xc(%rsp)
lea    0xc(%rsp),%rbx
lea    0xcfb(%rip),%r14
jmp    1350 <main+0x200>
nopl   0x0(%rax,%rax,1)
mov    0xc(%rsp),%eax
add    $0x1,%eax
mov    %eax,0xc(%rsp)
cmp    $0x18,%eax
jae    1371 <main+0x221>
mov    %rbx,%rdi
xor    %eax,%eax
call   1070 <lib$free_ef@plt>
cmp    $0x1,%eax
je     1340 <main+0x1f0>
mov    0xc(%rsp),%esi
mov    %r14,%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
jmp    1340 <main+0x1f0>
movl   $0x18,0xc(%rsp)
lea    0xc(%rsp),%rbx
lea    0xc7b(%rip),%r14
jmp    13a0 <main+0x250>
nopw   0x0(%rax,%rax,1)
mov    0xc(%rsp),%eax
add    $0x1,%eax
mov    %eax,0xc(%rsp)
cmp    $0x20,%eax
jae    13c3 <main+0x273>
mov    %rbx,%rdi
xor    %eax,%eax
call   1070 <lib$free_ef@plt>
cmp    $0x1582ac,%eax
je     1390 <main+0x240>
mov    0xc(%rsp),%esi
mov    %r14,%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
jmp    1390 <main+0x240>
movl   $0x20,0xc(%rsp)
lea    0xc(%rsp),%rbx
lea    0xd07(%rip),%r14
jmp    13f0 <main+0x2a0>
nopl   0x0(%rax)
mov    0xc(%rsp),%eax
add    $0x1,%eax
mov    %eax,0xc(%rsp)
cmp    $0x40,%eax
jae    1411 <main+0x2c1>
mov    %rbx,%rdi
xor    %eax,%eax
call   1070 <lib$free_ef@plt>
cmp    $0x1,%eax
je     13e0 <main+0x290>
mov    0xc(%rsp),%esi
mov    %r14,%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
jmp    13e0 <main+0x290>
movl   $0x40,0xc(%rsp)
lea    0xc(%rsp),%rdi
xor    %eax,%eax
call   1070 <lib$free_ef@plt>
cmp    $0x1582ac,%eax
je     1440 <main+0x2f0>
mov    0xc(%rsp),%esi
lea    0xbc9(%rip),%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
movl   $0x1,0xc(%rsp)
lea    0xc(%rsp),%rbx
lea    0xcc3(%rip),%r14
jmp    1470 <main+0x320>
cs nopw 0x0(%rax,%rax,1)
mov    0xc(%rsp),%eax
add    $0x1,%eax
mov    %eax,0xc(%rsp)
cmp    $0x18,%eax
jae    1493 <main+0x343>
mov    %rbx,%rdi
xor    %eax,%eax
call   1070 <lib$free_ef@plt>
cmp    $0x15829c,%eax
je     1460 <main+0x310>
mov    0xc(%rsp),%esi
mov    %r14,%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
jmp    1460 <main+0x310>
movl   $0x18,0xc(%rsp)
lea    0xc(%rsp),%rbx
lea    0xb59(%rip),%r14
jmp    14c0 <main+0x370>
nopl   0x0(%rax)
mov    0xc(%rsp),%eax
add    $0x1,%eax
mov    %eax,0xc(%rsp)
cmp    $0x20,%eax
jae    14e3 <main+0x393>
mov    %rbx,%rdi
xor    %eax,%eax
call   1070 <lib$free_ef@plt>
cmp    $0x1582ac,%eax
je     14b0 <main+0x360>
mov    0xc(%rsp),%esi
mov    %r14,%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
jmp    14b0 <main+0x360>
movl   $0x20,0xc(%rsp)
lea    0xc(%rsp),%rbx
lea    0xb72(%rip),%r14
jmp    1510 <main+0x3c0>
nopl   0x0(%rax)
mov    0xc(%rsp),%eax
add    $0x1,%eax
mov    %eax,0xc(%rsp)
cmp    $0x40,%eax
jae    1533 <main+0x3e3>
mov    %rbx,%rdi
xor    %eax,%eax
call   1070 <lib$free_ef@plt>
cmp    $0x15829c,%eax
je     1500 <main+0x3b0>
mov    0xc(%rsp),%esi
mov    %r14,%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
jmp    1500 <main+0x3b0>
movl   $0x0,0xc(%rsp)
lea    0xc(%rsp),%rdi
xor    %eax,%eax
call   1040 <lib$reserve_ef@plt>
cmp    $0x1582ac,%eax
je     1562 <main+0x412>
mov    0xc(%rsp),%esi
lea    0xbf6(%rip),%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
movl   $0x1,0xc(%rsp)
lea    0xc(%rsp),%rbx
lea    0xc0d(%rip),%r14
jmp    1590 <main+0x440>
nopl   0x0(%rax,%rax,1)
mov    0xc(%rsp),%eax
add    $0x1,%eax
mov    %eax,0xc(%rsp)
cmp    $0x18,%eax
jae    15b1 <main+0x461>
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <lib$reserve_ef@plt>
cmp    $0x1,%eax
je     1580 <main+0x430>
mov    0xc(%rsp),%esi
mov    %r14,%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
jmp    1580 <main+0x430>
movl   $0x18,0xc(%rsp)
lea    0xc(%rsp),%rbx
lea    0xb8a(%rip),%r14
jmp    15e0 <main+0x490>
nopw   0x0(%rax,%rax,1)
mov    0xc(%rsp),%eax
add    $0x1,%eax
mov    %eax,0xc(%rsp)
cmp    $0x20,%eax
jae    1603 <main+0x4b3>
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <lib$reserve_ef@plt>
cmp    $0x1582ac,%eax
je     15d0 <main+0x480>
mov    0xc(%rsp),%esi
mov    %r14,%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
jmp    15d0 <main+0x480>
movl   $0x20,0xc(%rsp)
lea    0xc(%rsp),%rbx
lea    0xba7(%rip),%r14
jmp    1630 <main+0x4e0>
nopl   0x0(%rax)
mov    0xc(%rsp),%eax
add    $0x1,%eax
mov    %eax,0xc(%rsp)
cmp    $0x40,%eax
jae    1651 <main+0x501>
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <lib$reserve_ef@plt>
cmp    $0x1,%eax
je     1620 <main+0x4d0>
mov    0xc(%rsp),%esi
mov    %r14,%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
jmp    1620 <main+0x4d0>
movl   $0x40,0xc(%rsp)
lea    0xc(%rsp),%rdi
xor    %eax,%eax
call   1040 <lib$reserve_ef@plt>
cmp    $0x1582ac,%eax
je     1680 <main+0x530>
mov    0xc(%rsp),%esi
lea    0xad8(%rip),%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
movl   $0x1,0xc(%rsp)
lea    0xc(%rsp),%rbx
lea    0xb2a(%rip),%r14
jmp    16b0 <main+0x560>
cs nopw 0x0(%rax,%rax,1)
mov    0xc(%rsp),%eax
add    $0x1,%eax
mov    %eax,0xc(%rsp)
cmp    $0x18,%eax
jae    16d3 <main+0x583>
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <lib$reserve_ef@plt>
cmp    $0x1582a4,%eax
je     16a0 <main+0x550>
mov    0xc(%rsp),%esi
mov    %r14,%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
jmp    16a0 <main+0x550>
movl   $0x18,0xc(%rsp)
lea    0xc(%rsp),%rbx
lea    0xa68(%rip),%r14
jmp    1700 <main+0x5b0>
nopl   0x0(%rax)
mov    0xc(%rsp),%eax
add    $0x1,%eax
mov    %eax,0xc(%rsp)
cmp    $0x20,%eax
jae    1723 <main+0x5d3>
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <lib$reserve_ef@plt>
cmp    $0x1582ac,%eax
je     16f0 <main+0x5a0>
mov    0xc(%rsp),%esi
mov    %r14,%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
jmp    16f0 <main+0x5a0>
movl   $0x20,0xc(%rsp)
lea    0xc(%rsp),%rbx
lea    0xa87(%rip),%r14
jmp    1750 <main+0x600>
nopl   0x0(%rax)
mov    0xc(%rsp),%eax
add    $0x1,%eax
mov    %eax,0xc(%rsp)
cmp    $0x40,%eax
jae    1773 <main+0x623>
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <lib$reserve_ef@plt>
cmp    $0x1582a4,%eax
je     1740 <main+0x5f0>
mov    0xc(%rsp),%esi
mov    %r14,%rdi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
jmp    1740 <main+0x5f0>
xor    %eax,%eax
add    $0x10,%rsp
pop    %rbx
pop    %r14
pop    %rbp
ret

LLVM IR (-O0):
@.str = [49 x i8] c"Broken: Can never free event flag %d, status %u\0A\00"
@.str.1 = [56 x i8] c"Broken: Should be able to free 1-13, efn %d, status %u\0A\00"
@.str.2 = [57 x i8] c"Broken: Should already be free 32-63, efn %d, status %u\0A\00"
@.str.3 = [42 x i8] c"Broken: Couldn't reserve 55 event flags\0A\00"
@.str.4 = [60 x i8] c"Broken: wrong status returned from lib$get_ef, status = %u\0A\00"
@.str.5 = [57 x i8] c"Broken: Should be able to free 32-63, efn %d, status %u\0A\00"
@.str.6 = [56 x i8] c"Broken: Should already be free 1-23, efn %d, status %u\0A\00"
@.str.7 = [52 x i8] c"Broken: Can never reserve event flag %d, status %u\0A\00"
@.str.8 = [59 x i8] c"Broken: Should be able to reserve 1-23, efn %d, status %u\0A\00"
@.str.9 = [60 x i8] c"Broken: Should be able to reserve 32-63, efn %d, status %u\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
store i32 0, i32* %1
store i32 0, i32* %2
%5 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %5, i32* %3
%6 = load i32, i32* %3
%7 = icmp ne i32 %6, 1409708
br i1 %7, label %8, label %12
8: ; preds = %0
%9 = load i32, i32* %2
%10 = load i32, i32* %3
%11 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str, i64 0, i64 0), i32 %9, i32 %10)
br label %12
12: ; preds = %8, %0
store i32 1, i32* %2
br label %13
13: ; preds = %25, %12
%14 = load i32, i32* %2
%15 = icmp ule i32 %14, 23
br i1 %15, label %16, label %28
16: ; preds = %13
%17 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %17, i32* %3
%18 = load i32, i32* %3
%19 = icmp ne i32 %18, 1
br i1 %19, label %20, label %24
20: ; preds = %16
%21 = load i32, i32* %2
%22 = load i32, i32* %3
%23 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.1, i64 0, i64 0), i32 %21, i32 %22)
br label %24
24: ; preds = %20, %16
br label %25
25: ; preds = %24
%26 = load i32, i32* %2
%27 = add i32 %26, 1
store i32 %27, i32* %2
br label %13
28: ; preds = %13
store i32 24, i32* %2
br label %29
29: ; preds = %41, %28
%30 = load i32, i32* %2
%31 = icmp ule i32 %30, 31
br i1 %31, label %32, label %44
32: ; preds = %29
%33 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %33, i32* %3
%34 = load i32, i32* %3
%35 = icmp ne i32 %34, 1409708
br i1 %35, label %36, label %40
36: ; preds = %32
%37 = load i32, i32* %2
%38 = load i32, i32* %3
%39 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str, i64 0, i64 0), i32 %37, i32 %38)
br label %40
40: ; preds = %36, %32
br label %41
41: ; preds = %40
%42 = load i32, i32* %2
%43 = add i32 %42, 1
store i32 %43, i32* %2
br label %29
44: ; preds = %29
store i32 32, i32* %2
br label %45
45: ; preds = %57, %44
%46 = load i32, i32* %2
%47 = icmp ule i32 %46, 63
br i1 %47, label %48, label %60
48: ; preds = %45
%49 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %49, i32* %3
%50 = load i32, i32* %3
%51 = icmp ne i32 %50, 1409692
br i1 %51, label %52, label %56
52: ; preds = %48
%53 = load i32, i32* %2
%54 = load i32, i32* %3
%55 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.2, i64 0, i64 0), i32 %53, i32 %54)
br label %56
56: ; preds = %52, %48
br label %57
57: ; preds = %56
%58 = load i32, i32* %2
%59 = add i32 %58, 1
store i32 %59, i32* %2
br label %45
60: ; preds = %45
store i32 64, i32* %2
%61 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %61, i32* %3
%62 = load i32, i32* %3
%63 = icmp ne i32 %62, 1409708
br i1 %63, label %64, label %68
64: ; preds = %60
%65 = load i32, i32* %2
%66 = load i32, i32* %3
%67 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str, i64 0, i64 0), i32 %65, i32 %66)
br label %68
68: ; preds = %64, %60
store i32 0, i32* %4
br label %69
69: ; preds = %77, %68
%70 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$get_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %70, i32* %3
%71 = load i32, i32* %3
%72 = icmp eq i32 %71, 1
br i1 %72, label %73, label %76
73: ; preds = %69
%74 = load i32, i32* %4
%75 = add nsw i32 %74, 1
store i32 %75, i32* %4
br label %76
76: ; preds = %73, %69
br label %77
77: ; preds = %76
%78 = load i32, i32* %3
%79 = icmp eq i32 %78, 1
br i1 %79, label %69, label %80
80: ; preds = %77
%81 = load i32, i32* %4
%82 = icmp ne i32 %81, 55
br i1 %82, label %83, label %85
83: ; preds = %80
%84 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.3, i64 0, i64 0))
br label %85
85: ; preds = %83, %80
%86 = load i32, i32* %3
%87 = icmp ne i32 %86, 1409684
br i1 %87, label %91, label %88
88: ; preds = %85
%89 = load i32, i32* %2
%90 = icmp ne i32 %89, -1
br i1 %90, label %91, label %94
91: ; preds = %88, %85
%92 = load i32, i32* %3
%93 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.4, i64 0, i64 0), i32 %92)
br label %94
94: ; preds = %91, %88
store i32 0, i32* %2
%95 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %95, i32* %3
%96 = load i32, i32* %3
%97 = icmp ne i32 %96, 1409708
br i1 %97, label %98, label %102
98: ; preds = %94
%99 = load i32, i32* %2
%100 = load i32, i32* %3
%101 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str, i64 0, i64 0), i32 %99, i32 %100)
br label %102
102: ; preds = %98, %94
store i32 1, i32* %2
br label %103
103: ; preds = %115, %102
%104 = load i32, i32* %2
%105 = icmp ule i32 %104, 23
br i1 %105, label %106, label %118
106: ; preds = %103
%107 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %107, i32* %3
%108 = load i32, i32* %3
%109 = icmp ne i32 %108, 1
br i1 %109, label %110, label %114
110: ; preds = %106
%111 = load i32, i32* %2
%112 = load i32, i32* %3
%113 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.1, i64 0, i64 0), i32 %111, i32 %112)
br label %114
114: ; preds = %110, %106
br label %115
115: ; preds = %114
%116 = load i32, i32* %2
%117 = add i32 %116, 1
store i32 %117, i32* %2
br label %103
118: ; preds = %103
store i32 24, i32* %2
br label %119
119: ; preds = %131, %118
%120 = load i32, i32* %2
%121 = icmp ule i32 %120, 31
br i1 %121, label %122, label %134
122: ; preds = %119
%123 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %123, i32* %3
%124 = load i32, i32* %3
%125 = icmp ne i32 %124, 1409708
br i1 %125, label %126, label %130
126: ; preds = %122
%127 = load i32, i32* %2
%128 = load i32, i32* %3
%129 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str, i64 0, i64 0), i32 %127, i32 %128)
br label %130
130: ; preds = %126, %122
br label %131
131: ; preds = %130
%132 = load i32, i32* %2
%133 = add i32 %132, 1
store i32 %133, i32* %2
br label %119
134: ; preds = %119
store i32 32, i32* %2
br label %135
135: ; preds = %147, %134
%136 = load i32, i32* %2
%137 = icmp ule i32 %136, 63
br i1 %137, label %138, label %150
138: ; preds = %135
%139 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %139, i32* %3
%140 = load i32, i32* %3
%141 = icmp ne i32 %140, 1
br i1 %141, label %142, label %146
142: ; preds = %138
%143 = load i32, i32* %2
%144 = load i32, i32* %3
%145 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.5, i64 0, i64 0), i32 %143, i32 %144)
br label %146
146: ; preds = %142, %138
br label %147
147: ; preds = %146
%148 = load i32, i32* %2
%149 = add i32 %148, 1
store i32 %149, i32* %2
br label %135
150: ; preds = %135
store i32 64, i32* %2
%151 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %151, i32* %3
%152 = load i32, i32* %3
%153 = icmp ne i32 %152, 1409708
br i1 %153, label %154, label %158
154: ; preds = %150
%155 = load i32, i32* %2
%156 = load i32, i32* %3
%157 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str, i64 0, i64 0), i32 %155, i32 %156)
br label %158
158: ; preds = %154, %150
store i32 1, i32* %2
br label %159
159: ; preds = %171, %158
%160 = load i32, i32* %2
%161 = icmp ule i32 %160, 23
br i1 %161, label %162, label %174
162: ; preds = %159
%163 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %163, i32* %3
%164 = load i32, i32* %3
%165 = icmp ne i32 %164, 1409692
br i1 %165, label %166, label %170
166: ; preds = %162
%167 = load i32, i32* %2
%168 = load i32, i32* %3
%169 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.6, i64 0, i64 0), i32 %167, i32 %168)
br label %170
170: ; preds = %166, %162
br label %171
171: ; preds = %170
%172 = load i32, i32* %2
%173 = add i32 %172, 1
store i32 %173, i32* %2
br label %159
174: ; preds = %159
store i32 24, i32* %2
br label %175
175: ; preds = %187, %174
%176 = load i32, i32* %2
%177 = icmp ule i32 %176, 31
br i1 %177, label %178, label %190
178: ; preds = %175
%179 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %179, i32* %3
%180 = load i32, i32* %3
%181 = icmp ne i32 %180, 1409708
br i1 %181, label %182, label %186
182: ; preds = %178
%183 = load i32, i32* %2
%184 = load i32, i32* %3
%185 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str, i64 0, i64 0), i32 %183, i32 %184)
br label %186
186: ; preds = %182, %178
br label %187
187: ; preds = %186
%188 = load i32, i32* %2
%189 = add i32 %188, 1
store i32 %189, i32* %2
br label %175
190: ; preds = %175
store i32 32, i32* %2
br label %191
191: ; preds = %203, %190
%192 = load i32, i32* %2
%193 = icmp ule i32 %192, 63
br i1 %193, label %194, label %206
194: ; preds = %191
%195 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %195, i32* %3
%196 = load i32, i32* %3
%197 = icmp ne i32 %196, 1409692
br i1 %197, label %198, label %202
198: ; preds = %194
%199 = load i32, i32* %2
%200 = load i32, i32* %3
%201 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.2, i64 0, i64 0), i32 %199, i32 %200)
br label %202
202: ; preds = %198, %194
br label %203
203: ; preds = %202
%204 = load i32, i32* %2
%205 = add i32 %204, 1
store i32 %205, i32* %2
br label %191
206: ; preds = %191
store i32 0, i32* %2
%207 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$reserve_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %207, i32* %3
%208 = load i32, i32* %3
%209 = icmp ne i32 %208, 1409708
br i1 %209, label %210, label %214
210: ; preds = %206
%211 = load i32, i32* %2
%212 = load i32, i32* %3
%213 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.7, i64 0, i64 0), i32 %211, i32 %212)
br label %214
214: ; preds = %210, %206
store i32 1, i32* %2
br label %215
215: ; preds = %227, %214
%216 = load i32, i32* %2
%217 = icmp ule i32 %216, 23
br i1 %217, label %218, label %230
218: ; preds = %215
%219 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$reserve_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %219, i32* %3
%220 = load i32, i32* %3
%221 = icmp ne i32 %220, 1
br i1 %221, label %222, label %226
222: ; preds = %218
%223 = load i32, i32* %2
%224 = load i32, i32* %3
%225 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.8, i64 0, i64 0), i32 %223, i32 %224)
br label %226
226: ; preds = %222, %218
br label %227
227: ; preds = %226
%228 = load i32, i32* %2
%229 = add i32 %228, 1
store i32 %229, i32* %2
br label %215
230: ; preds = %215
store i32 24, i32* %2
br label %231
231: ; preds = %243, %230
%232 = load i32, i32* %2
%233 = icmp ule i32 %232, 31
br i1 %233, label %234, label %246
234: ; preds = %231
%235 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$reserve_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %235, i32* %3
%236 = load i32, i32* %3
%237 = icmp ne i32 %236, 1409708
br i1 %237, label %238, label %242
238: ; preds = %234
%239 = load i32, i32* %2
%240 = load i32, i32* %3
%241 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.7, i64 0, i64 0), i32 %239, i32 %240)
br label %242
242: ; preds = %238, %234
br label %243
243: ; preds = %242
%244 = load i32, i32* %2
%245 = add i32 %244, 1
store i32 %245, i32* %2
br label %231
246: ; preds = %231
store i32 32, i32* %2
br label %247
247: ; preds = %259, %246
%248 = load i32, i32* %2
%249 = icmp ule i32 %248, 63
br i1 %249, label %250, label %262
250: ; preds = %247
%251 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$reserve_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %251, i32* %3
%252 = load i32, i32* %3
%253 = icmp ne i32 %252, 1
br i1 %253, label %254, label %258
254: ; preds = %250
%255 = load i32, i32* %2
%256 = load i32, i32* %3
%257 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.9, i64 0, i64 0), i32 %255, i32 %256)
br label %258
258: ; preds = %254, %250
br label %259
259: ; preds = %258
%260 = load i32, i32* %2
%261 = add i32 %260, 1
store i32 %261, i32* %2
br label %247
262: ; preds = %247
store i32 64, i32* %2
%263 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$reserve_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %263, i32* %3
%264 = load i32, i32* %3
%265 = icmp ne i32 %264, 1409708
br i1 %265, label %266, label %270
266: ; preds = %262
%267 = load i32, i32* %2
%268 = load i32, i32* %3
%269 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.7, i64 0, i64 0), i32 %267, i32 %268)
br label %270
270: ; preds = %266, %262
store i32 1, i32* %2
br label %271
271: ; preds = %283, %270
%272 = load i32, i32* %2
%273 = icmp ule i32 %272, 23
br i1 %273, label %274, label %286
274: ; preds = %271
%275 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$reserve_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %275, i32* %3
%276 = load i32, i32* %3
%277 = icmp ne i32 %276, 1409700
br i1 %277, label %278, label %282
278: ; preds = %274
%279 = load i32, i32* %2
%280 = load i32, i32* %3
%281 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.9, i64 0, i64 0), i32 %279, i32 %280)
br label %282
282: ; preds = %278, %274
br label %283
283: ; preds = %282
%284 = load i32, i32* %2
%285 = add i32 %284, 1
store i32 %285, i32* %2
br label %271
286: ; preds = %271
store i32 24, i32* %2
br label %287
287: ; preds = %299, %286
%288 = load i32, i32* %2
%289 = icmp ule i32 %288, 31
br i1 %289, label %290, label %302
290: ; preds = %287
%291 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$reserve_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %291, i32* %3
%292 = load i32, i32* %3
%293 = icmp ne i32 %292, 1409708
br i1 %293, label %294, label %298
294: ; preds = %290
%295 = load i32, i32* %2
%296 = load i32, i32* %3
%297 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.7, i64 0, i64 0), i32 %295, i32 %296)
br label %298
298: ; preds = %294, %290
br label %299
299: ; preds = %298
%300 = load i32, i32* %2
%301 = add i32 %300, 1
store i32 %301, i32* %2
br label %287
302: ; preds = %287
store i32 32, i32* %2
br label %303
303: ; preds = %315, %302
%304 = load i32, i32* %2
%305 = icmp ule i32 %304, 63
br i1 %305, label %306, label %318
306: ; preds = %303
%307 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$reserve_ef" to i32 (i32*, ...)*)(i32* %2)
store i32 %307, i32* %3
%308 = load i32, i32* %3
%309 = icmp ne i32 %308, 1409700
br i1 %309, label %310, label %314
310: ; preds = %306
%311 = load i32, i32* %2
%312 = load i32, i32* %3
%313 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.9, i64 0, i64 0), i32 %311, i32 %312)
br label %314
314: ; preds = %310, %306
br label %315
315: ; preds = %314
%316 = load i32, i32* %2
%317 = add i32 %316, 1
store i32 %317, i32* %2
br label %303
318: ; preds = %303
ret i32 0
}

LLVM IR (-O2):
@.str = [49 x i8] c"Broken: Can never free event flag %d, status %u\0A\00"
@.str.1 = [56 x i8] c"Broken: Should be able to free 1-13, efn %d, status %u\0A\00"
@.str.2 = [57 x i8] c"Broken: Should already be free 32-63, efn %d, status %u\0A\00"
@.str.4 = [60 x i8] c"Broken: wrong status returned from lib$get_ef, status = %u\0A\00"
@.str.5 = [57 x i8] c"Broken: Should be able to free 32-63, efn %d, status %u\0A\00"
@.str.6 = [56 x i8] c"Broken: Should already be free 1-23, efn %d, status %u\0A\00"
@.str.7 = [52 x i8] c"Broken: Can never reserve event flag %d, status %u\0A\00"
@.str.8 = [59 x i8] c"Broken: Should be able to reserve 1-23, efn %d, status %u\0A\00"
@.str.9 = [60 x i8] c"Broken: Should be able to reserve 32-63, efn %d, status %u\0A\00"
@str = [41 x i8] c"Broken: Couldn't reserve 55 event flags\00"
define i32 @main() {
%1 = alloca i32
%2 = bitcast i32* %1 to i8*
store i32 0, i32* %1
%3 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %1)
%4 = icmp eq i32 %3, 1409708
br i1 %4, label %8, label %5
5: ; preds = %0
%6 = load i32, i32* %1
%7 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str, i64 0, i64 0), i32 %6, i32 %3)
br label %8
8: ; preds = %5, %0
store i32 1, i32* %1
br label %10
9: ; preds = %16
store i32 24, i32* %1
br label %21
10: ; preds = %8, %16
%11 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %1)
%12 = icmp eq i32 %11, 1
br i1 %12, label %16, label %13
13: ; preds = %10
%14 = load i32, i32* %1
%15 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @.str.1, i64 0, i64 0), i32 %14, i32 %11)
br label %16
16: ; preds = %10, %13
%17 = load i32, i32* %1
%18 = add i32 %17, 1
store i32 %18, i32* %1
%19 = icmp ult i32 %18, 24
br i1 %19, label %10, label %9
20: ; preds = %27
store i32 32, i32* %1
br label %31
21: ; preds = %9, %27
%22 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %1)
%23 = icmp eq i32 %22, 1409708
br i1 %23, label %27, label %24
24: ; preds = %21
%25 = load i32, i32* %1
%26 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str, i64 0, i64 0), i32 %25, i32 %22)
br label %27
27: ; preds = %21, %24
%28 = load i32, i32* %1
%29 = add i32 %28, 1
store i32 %29, i32* %1
%30 = icmp ult i32 %29, 32
br i1 %30, label %21, label %20
31: ; preds = %20, %37
%32 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %1)
%33 = icmp eq i32 %32, 1409692
br i1 %33, label %37, label %34
34: ; preds = %31
%35 = load i32, i32* %1
%36 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.2, i64 0, i64 0), i32 %35, i32 %32)
br label %37
37: ; preds = %31, %34
%38 = load i32, i32* %1
%39 = add i32 %38, 1
store i32 %39, i32* %1
%40 = icmp ult i32 %39, 64
br i1 %40, label %31, label %41
41: ; preds = %37
store i32 64, i32* %1
%42 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %1)
%43 = icmp eq i32 %42, 1409708
br i1 %43, label %47, label %44
44: ; preds = %41
%45 = load i32, i32* %1
%46 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str, i64 0, i64 0), i32 %45, i32 %42)
br label %47
47: ; preds = %44, %41
br label %48
48: ; preds = %47, %48
%49 = phi i32 [ %52, %48 ], [ 0, %47 ]
%50 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$get_ef" to i32 (i32*, ...)*)(i32* %1)
%51 = icmp eq i32 %50, 1
%52 = add nuw nsw i32 %49, 1
br i1 %51, label %48, label %53
53: ; preds = %48
%54 = icmp eq i32 %49, 55
br i1 %54, label %57, label %55
55: ; preds = %53
%56 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @str, i64 0, i64 0))
br label %57
57: ; preds = %55, %53
%58 = icmp ne i32 %50, 1409684
%59 = load i32, i32* %1
%60 = icmp ne i32 %59, -1
%61 = select i1 %58, i1 true, i1 %60
br i1 %61, label %62, label %64
62: ; preds = %57
%63 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @.str.4, i64 0, i64 0), i32 %50)
br label %64
64: ; preds = %57, %62
store i32 0, i32* %1
%65 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %1)
%66 = icmp eq i32 %65, 1409708
br i1 %66, label %70, label %67
67: ; preds = %64
%68 = load i32, i32* %1
%69 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str, i64 0, i64 0), i32 %68, i32 %65)
br label %70
70: ; preds = %67, %64
store i32 1, i32* %1
br label %72
71: ; preds = %78
store i32 24, i32* %1
br label %83
72: ; preds = %70, %78
%73 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %1)
%74 = icmp eq i32 %73, 1
br i1 %74, label %78, label %75
75: ; preds = %72
%76 = load i32, i32* %1
%77 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @.str.1, i64 0, i64 0), i32 %76, i32 %73)
br label %78
78: ; preds = %72, %75
%79 = load i32, i32* %1
%80 = add i32 %79, 1
store i32 %80, i32* %1
%81 = icmp ult i32 %80, 24
br i1 %81, label %72, label %71
82: ; preds = %89
store i32 32, i32* %1
br label %93
83: ; preds = %71, %89
%84 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %1)
%85 = icmp eq i32 %84, 1409708
br i1 %85, label %89, label %86
86: ; preds = %83
%87 = load i32, i32* %1
%88 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str, i64 0, i64 0), i32 %87, i32 %84)
br label %89
89: ; preds = %83, %86
%90 = load i32, i32* %1
%91 = add i32 %90, 1
store i32 %91, i32* %1
%92 = icmp ult i32 %91, 32
br i1 %92, label %83, label %82
93: ; preds = %82, %99
%94 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %1)
%95 = icmp eq i32 %94, 1
br i1 %95, label %99, label %96
96: ; preds = %93
%97 = load i32, i32* %1
%98 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.5, i64 0, i64 0), i32 %97, i32 %94)
br label %99
99: ; preds = %93, %96
%100 = load i32, i32* %1
%101 = add i32 %100, 1
store i32 %101, i32* %1
%102 = icmp ult i32 %101, 64
br i1 %102, label %93, label %103
103: ; preds = %99
store i32 64, i32* %1
%104 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %1)
%105 = icmp eq i32 %104, 1409708
br i1 %105, label %109, label %106
106: ; preds = %103
%107 = load i32, i32* %1
%108 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str, i64 0, i64 0), i32 %107, i32 %104)
br label %109
109: ; preds = %106, %103
store i32 1, i32* %1
br label %111
110: ; preds = %117
store i32 24, i32* %1
br label %122
111: ; preds = %109, %117
%112 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %1)
%113 = icmp eq i32 %112, 1409692
br i1 %113, label %117, label %114
114: ; preds = %111
%115 = load i32, i32* %1
%116 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @.str.6, i64 0, i64 0), i32 %115, i32 %112)
br label %117
117: ; preds = %111, %114
%118 = load i32, i32* %1
%119 = add i32 %118, 1
store i32 %119, i32* %1
%120 = icmp ult i32 %119, 24
br i1 %120, label %111, label %110
121: ; preds = %128
store i32 32, i32* %1
br label %132
122: ; preds = %110, %128
%123 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %1)
%124 = icmp eq i32 %123, 1409708
br i1 %124, label %128, label %125
125: ; preds = %122
%126 = load i32, i32* %1
%127 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str, i64 0, i64 0), i32 %126, i32 %123)
br label %128
128: ; preds = %122, %125
%129 = load i32, i32* %1
%130 = add i32 %129, 1
store i32 %130, i32* %1
%131 = icmp ult i32 %130, 32
br i1 %131, label %122, label %121
132: ; preds = %121, %138
%133 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$free_ef" to i32 (i32*, ...)*)(i32* %1)
%134 = icmp eq i32 %133, 1409692
br i1 %134, label %138, label %135
135: ; preds = %132
%136 = load i32, i32* %1
%137 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.2, i64 0, i64 0), i32 %136, i32 %133)
br label %138
138: ; preds = %132, %135
%139 = load i32, i32* %1
%140 = add i32 %139, 1
store i32 %140, i32* %1
%141 = icmp ult i32 %140, 64
br i1 %141, label %132, label %142
142: ; preds = %138
store i32 0, i32* %1
%143 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$reserve_ef" to i32 (i32*, ...)*)(i32* %1)
%144 = icmp eq i32 %143, 1409708
br i1 %144, label %148, label %145
145: ; preds = %142
%146 = load i32, i32* %1
%147 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @.str.7, i64 0, i64 0), i32 %146, i32 %143)
br label %148
148: ; preds = %145, %142
store i32 1, i32* %1
br label %150
149: ; preds = %156
store i32 24, i32* %1
br label %161
150: ; preds = %148, %156
%151 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$reserve_ef" to i32 (i32*, ...)*)(i32* %1)
%152 = icmp eq i32 %151, 1
br i1 %152, label %156, label %153
153: ; preds = %150
%154 = load i32, i32* %1
%155 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @.str.8, i64 0, i64 0), i32 %154, i32 %151)
br label %156
156: ; preds = %150, %153
%157 = load i32, i32* %1
%158 = add i32 %157, 1
store i32 %158, i32* %1
%159 = icmp ult i32 %158, 24
br i1 %159, label %150, label %149
160: ; preds = %167
store i32 32, i32* %1
br label %171
161: ; preds = %149, %167
%162 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$reserve_ef" to i32 (i32*, ...)*)(i32* %1)
%163 = icmp eq i32 %162, 1409708
br i1 %163, label %167, label %164
164: ; preds = %161
%165 = load i32, i32* %1
%166 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @.str.7, i64 0, i64 0), i32 %165, i32 %162)
br label %167
167: ; preds = %161, %164
%168 = load i32, i32* %1
%169 = add i32 %168, 1
store i32 %169, i32* %1
%170 = icmp ult i32 %169, 32
br i1 %170, label %161, label %160
171: ; preds = %160, %177
%172 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$reserve_ef" to i32 (i32*, ...)*)(i32* %1)
%173 = icmp eq i32 %172, 1
br i1 %173, label %177, label %174
174: ; preds = %171
%175 = load i32, i32* %1
%176 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @.str.9, i64 0, i64 0), i32 %175, i32 %172)
br label %177
177: ; preds = %171, %174
%178 = load i32, i32* %1
%179 = add i32 %178, 1
store i32 %179, i32* %1
%180 = icmp ult i32 %179, 64
br i1 %180, label %171, label %181
181: ; preds = %177
store i32 64, i32* %1
%182 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$reserve_ef" to i32 (i32*, ...)*)(i32* %1)
%183 = icmp eq i32 %182, 1409708
br i1 %183, label %187, label %184
184: ; preds = %181
%185 = load i32, i32* %1
%186 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @.str.7, i64 0, i64 0), i32 %185, i32 %182)
br label %187
187: ; preds = %184, %181
store i32 1, i32* %1
br label %189
188: ; preds = %195
store i32 24, i32* %1
br label %200
189: ; preds = %187, %195
%190 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$reserve_ef" to i32 (i32*, ...)*)(i32* %1)
%191 = icmp eq i32 %190, 1409700
br i1 %191, label %195, label %192
192: ; preds = %189
%193 = load i32, i32* %1
%194 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @.str.9, i64 0, i64 0), i32 %193, i32 %190)
br label %195
195: ; preds = %189, %192
%196 = load i32, i32* %1
%197 = add i32 %196, 1
store i32 %197, i32* %1
%198 = icmp ult i32 %197, 24
br i1 %198, label %189, label %188
199: ; preds = %206
store i32 32, i32* %1
br label %210
200: ; preds = %188, %206
%201 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$reserve_ef" to i32 (i32*, ...)*)(i32* %1)
%202 = icmp eq i32 %201, 1409708
br i1 %202, label %206, label %203
203: ; preds = %200
%204 = load i32, i32* %1
%205 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @.str.7, i64 0, i64 0), i32 %204, i32 %201)
br label %206
206: ; preds = %200, %203
%207 = load i32, i32* %1
%208 = add i32 %207, 1
store i32 %208, i32* %1
%209 = icmp ult i32 %208, 32
br i1 %209, label %200, label %199
210: ; preds = %199, %216
%211 = call i32 (i32*, ...) bitcast (i32 (...)* @"lib$reserve_ef" to i32 (i32*, ...)*)(i32* %1)
%212 = icmp eq i32 %211, 1409700
br i1 %212, label %216, label %213
213: ; preds = %210
%214 = load i32, i32* %1
%215 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @.str.9, i64 0, i64 0), i32 %214, i32 %211)
br label %216
216: ; preds = %210, %213
%217 = load i32, i32* %1
%218 = add i32 %217, 1
store i32 %218, i32* %1
%219 = icmp ult i32 %218, 64
br i1 %219, label %210, label %220
220: ; preds = %216
ret i32 0
}