int main(int argc, char **argv) {
  int iexp, igot;
  long long lexp, lgot;
  int N = 32;
  int idata[N];
  long long ldata[N];
  float fexp, fgot;
  float fdata[N];
  int i;
  igot = 0;
  iexp = 32;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
#pragma acc atomic capture
      idata[i] = igot++;
    }
  }
  if (iexp != igot)
    abort();
  igot = 32;
  iexp = 0;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
#pragma acc atomic capture
      idata[i] = igot--;
    }
  }
  if (iexp != igot)
    abort();
  igot = 0;
  iexp = 32;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
#pragma acc atomic capture
      idata[i] = ++igot;
    }
  }
  if (iexp != igot)
    abort();
  igot = 32;
  iexp = 0;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
#pragma acc atomic capture
      idata[i] = --igot;
    }
  }
  igot = 0;
  iexp = 32;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1;
#pragma acc atomic capture
      idata[i] = igot += expr;
    }
  }
  if (iexp != igot)
    abort();
  igot = 0;
  iexp = 32;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1;
#pragma acc atomic capture
      idata[i] = igot = igot + expr;
    }
  }
  if (iexp != igot)
    abort();
  igot = 0;
  iexp = 32;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1;
#pragma acc atomic capture
      idata[i] = igot = expr + igot;
    }
  }
  if (iexp != igot)
    abort();
  lgot = 1LL;
  lexp = 1LL << N;
#pragma acc data copy(lgot, ldata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      long long expr = 2LL;
#pragma acc atomic capture
      ldata[i] = lgot *= expr;
    }
  }
  if (lexp != lgot)
    abort();
  lgot = 1LL;
  lexp = 1LL << N;
#pragma acc data copy(lgot, ldata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      long long expr = 2LL;
#pragma acc atomic capture
      ldata[i] = lgot = lgot * expr;
    }
  }
  if (lexp != lgot)
    abort();
  lgot = 1LL;
  lexp = 1LL << N;
#pragma acc data copy(lgot, ldata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      long long expr = 2LL;
#pragma acc atomic capture
      ldata[i] = lgot = expr * lgot;
    }
  }
  if (lexp != lgot)
    abort();
  igot = 32;
  iexp = 0;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1;
#pragma acc atomic capture
      idata[i] = igot -= expr;
    }
  }
  if (iexp != igot)
    abort();
  igot = 32;
  iexp = 0;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1;
#pragma acc atomic capture
      idata[i] = igot = igot - expr;
    }
  }
  if (iexp != igot)
    abort();
  igot = 32;
  iexp = 32;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1;
#pragma acc atomic capture
      idata[i] = igot = expr - igot;
    }
  }
  if (iexp != igot)
    abort();
  lgot = 1LL << 32;
  lexp = 1LL;
#pragma acc data copy(lgot, ldata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      long long expr = 2LL;
#pragma acc atomic capture
      ldata[i] = lgot /= expr;
    }
  }
  if (lexp != lgot)
    abort();
  lgot = 1LL << 32;
  lexp = 1LL;
#pragma acc data copy(lgot, ldata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      long long expr = 2LL;
#pragma acc atomic capture
      ldata[i] = lgot = lgot / expr;
    }
  }
  if (lexp != lgot)
    abort();
  lgot = 2LL;
  lexp = 2LL;
#pragma acc data copy(lgot, ldata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      long long expr = 1LL << N;
#pragma acc atomic capture
      ldata[i] = lgot = expr / lgot;
    }
  }
  if (lexp != lgot)
    abort();
  igot = ~0;
  iexp = 0;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1 << i;
#pragma acc atomic capture
      idata[i] = igot &= expr;
    }
  }
  if (iexp != igot)
    abort();
  igot = ~0;
  iexp = 0;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1 << i;
#pragma acc atomic capture
      idata[i] = igot = igot & expr;
    }
  }
  if (iexp != igot)
    abort();
  igot = ~0;
  iexp = 0;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1 << i;
#pragma acc atomic capture
      idata[i] = igot = expr & igot;
    }
  }
  if (iexp != igot)
    abort();
  igot = ~0;
  iexp = 0;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1 << i;
#pragma acc atomic capture
      idata[i] = igot ^= expr;
    }
  }
  if (iexp != igot)
    abort();
  igot = ~0;
  iexp = 0;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1 << i;
#pragma acc atomic capture
      idata[i] = igot = igot ^ expr;
    }
  }
  if (iexp != igot)
    abort();
  igot = ~0;
  iexp = 0;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1 << i;
#pragma acc atomic capture
      idata[i] = igot = expr ^ igot;
    }
  }
  if (iexp != igot)
    abort();
  igot = 0;
  iexp = ~0;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1 << i;
#pragma acc atomic capture
      idata[i] = igot |= expr;
    }
  }
  if (iexp != igot)
    abort();
  igot = 0;
  iexp = ~0;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1 << i;
#pragma acc atomic capture
      idata[i] = igot = igot | expr;
    }
  }
  if (iexp != igot)
    abort();
  igot = 0;
  iexp = ~0;
#pragma acc data copy(igot, idata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1 << i;
#pragma acc atomic capture
      idata[i] = igot = expr | igot;
    }
  }
  if (iexp != igot)
    abort();
  lgot = 1LL;
  lexp = 1LL << N;
#pragma acc data copy(lgot, ldata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1;
#pragma acc atomic capture
      ldata[i] = lgot <<= expr;
    }
  }
  if (lexp != lgot)
    abort();
  lgot = 1LL;
  lexp = 1LL << N;
#pragma acc data copy(lgot, ldata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1;
#pragma acc atomic capture
      idata[i] = lgot = lgot << expr;
    }
  }
  if (lexp != lgot)
    abort();
  lgot = 1LL;
  lexp = 2LL;
#pragma acc data copy(lgot, ldata [0:N])
  {
#pragma acc parallel
    {
      long long expr = 1LL;
#pragma acc atomic capture
      ldata[0] = lgot = expr << lgot;
    }
  }
  if (lexp != lgot)
    abort();
  lgot = 1LL << N;
  lexp = 1LL;
#pragma acc data copy(lgot, ldata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      long long expr = 1LL;
#pragma acc atomic capture
      ldata[i] = lgot >>= expr;
    }
  }
  if (lexp != lgot)
    abort();
  lgot = 1LL << N;
  lexp = 1LL;
#pragma acc data copy(lgot, ldata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = 1;
#pragma acc atomic capture
      ldata[i] = lgot = lgot >> expr;
    }
  }
  if (lexp != lgot)
    abort();
  lgot = 1LL << 63;
  lexp = 1LL << 32;
#pragma acc data copy(lgot, ldata [0:N])
  {
#pragma acc parallel
    {
      long long expr = 1LL << 32;
#pragma acc atomic capture
      ldata[0] = lgot = expr >> lgot;
    }
  }
  if (lexp != lgot)
    abort();
  fgot = 0.0;
  fexp = 32.0;
#pragma acc data copy(fgot, fdata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
#pragma acc atomic capture
      fdata[i] = fgot++;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 32.0;
  fexp = 0.0;
#pragma acc data copy(fgot, fdata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
#pragma acc atomic capture
      fdata[i] = fgot--;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 0.0;
  fexp = 32.0;
#pragma acc data copy(fgot, fdata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
#pragma acc atomic capture
      fdata[i] = ++fgot;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 32.0;
  fexp = 0.0;
#pragma acc data copy(fgot, fdata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
#pragma acc atomic capture
      fdata[i] = --fgot;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 0.0;
  fexp = 32.0;
#pragma acc data copy(fgot, fdata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 1.0;
#pragma acc atomic capture
      fdata[i] = fgot += expr;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 0.0;
  fexp = 32.0;
#pragma acc data copy(fgot, fdata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 1.0;
#pragma acc atomic capture
      fdata[i] = fgot = fgot + expr;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 0.0;
  fexp = 32.0;
#pragma acc data copy(fgot, fdata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 1.0;
#pragma acc atomic capture
      fdata[i] = fgot = expr + fgot;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1.0;
  fexp = 8192.0 * 8192.0 * 64.0;
#pragma acc data copy(fgot, fdata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 2.0;
#pragma acc atomic capture
      fdata[i] = fgot *= expr;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1.0;
  fexp = 8192.0 * 8192.0 * 64.0;
#pragma acc data copy(fgot, fdata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      long long expr = 2LL;
#pragma acc atomic capture
      fdata[i] = fgot = fgot * expr;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1.0;
  fexp = 8192.0 * 8192.0 * 64.0;
#pragma acc data copy(fgot, fdata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 2.0;
#pragma acc atomic capture
      fdata[i] = fgot = expr * fgot;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 32.0;
  fexp = 0.0;
#pragma acc data copy(fgot, fdata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 1.0;
#pragma acc atomic capture
      fdata[i] = fgot -= expr;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 32.0;
  fexp = 0.0;
#pragma acc data copy(fgot, fdata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 1.0;
#pragma acc atomic capture
      fdata[i] = fgot = fgot - expr;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1.0;
  fexp = 0.0;
#pragma acc data copy(fgot, fdata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 32.0;
#pragma acc atomic capture
      fdata[i] = fgot = expr - fgot;
    }
  }
  int ones = 0, thirtyones = 0;
  for (i = 0; i < N; i++)
    if (fdata[i] == 31.0)
      thirtyones++;
    else if (fdata[i] == 1.0)
      ones++;
  if (ones != N / 2 || thirtyones != N / 2)
    abort();
  fexp = 1.0;
  fgot = 8192.0 * 8192.0 * 64.0;
#pragma acc data copy(fgot, fdata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 2.0;
#pragma acc atomic capture
      fdata[i] = fgot /= expr;
    }
  }
  if (fexp != fgot)
    abort();
  fexp = 1.0;
  fgot = 8192.0 * 8192.0 * 64.0;
#pragma acc data copy(fgot, fdata [0:N])
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 2.0;
#pragma acc atomic capture
      fdata[i] = fgot = fgot / expr;
    }
  }
  if (fexp != fgot)
    abort();
  fexp = 1.0;
  fgot = 8192.0 * 8192.0 * 64.0;
#pragma acc data copy(fgot, fdata [0:N])
  {
#pragma acc parallel
    {
      float expr = 8192.0 * 8192.0 * 64.0;
#pragma acc atomic capture
      fdata[0] = fgot = expr / fgot;
    }
  }
  if (fexp != fgot)
    abort();
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x160,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
movl   $0x20,-0x2c(%rbp)
mov    -0x2c(%rbp),%eax
mov    %rsp,%rcx
mov    %rcx,-0x38(%rbp)
lea    0xf(,%rax,4),%rdx
and    $0xfffffffffffffff0,%rdx
mov    %rsp,%rcx
sub    %rdx,%rcx
mov    %rcx,-0x150(%rbp)
mov    %rcx,%rsp
mov    %rax,-0x40(%rbp)
mov    -0x2c(%rbp),%eax
lea    0xf(,%rax,8),%rdx
and    $0xfffffffffffffff0,%rdx
mov    %rsp,%rcx
sub    %rdx,%rcx
mov    %rcx,-0x148(%rbp)
mov    %rcx,%rsp
mov    %rax,-0x48(%rbp)
mov    -0x2c(%rbp),%eax
lea    0xf(,%rax,4),%rdx
and    $0xfffffffffffffff0,%rdx
mov    %rsp,%rcx
sub    %rdx,%rcx
mov    %rcx,-0x140(%rbp)
mov    %rcx,%rsp
mov    %rax,-0x58(%rbp)
movl   $0x0,-0x18(%rbp)
movl   $0x20,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    11e8 <main+0xd8>
mov    -0x150(%rbp),%rax
mov    -0x18(%rbp),%edx
mov    %edx,%ecx
add    $0x1,%ecx
mov    %ecx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    11b5 <main+0xa5>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     11f9 <main+0xe9>
call   1030 <abort@plt>
movl   $0x20,-0x18(%rbp)
movl   $0x0,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1241 <main+0x131>
mov    -0x150(%rbp),%rax
mov    -0x18(%rbp),%edx
mov    %edx,%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    120e <main+0xfe>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1252 <main+0x142>
call   1030 <abort@plt>
movl   $0x0,-0x18(%rbp)
movl   $0x20,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1298 <main+0x188>
mov    -0x150(%rbp),%rax
mov    -0x18(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1267 <main+0x157>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     12a9 <main+0x199>
call   1030 <abort@plt>
movl   $0x20,-0x18(%rbp)
movl   $0x0,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    12ef <main+0x1df>
mov    -0x150(%rbp),%rax
mov    -0x18(%rbp),%edx
add    $0xffffffff,%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    12be <main+0x1ae>
movl   $0x0,-0x18(%rbp)
movl   $0x20,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    133c <main+0x22c>
mov    -0x150(%rbp),%rax
movl   $0x1,-0x60(%rbp)
mov    -0x60(%rbp),%edx
add    -0x18(%rbp),%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1304 <main+0x1f4>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     134d <main+0x23d>
call   1030 <abort@plt>
movl   $0x0,-0x18(%rbp)
movl   $0x20,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    139a <main+0x28a>
mov    -0x150(%rbp),%rax
movl   $0x1,-0x64(%rbp)
mov    -0x18(%rbp),%edx
add    -0x64(%rbp),%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1362 <main+0x252>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     13ab <main+0x29b>
call   1030 <abort@plt>
movl   $0x0,-0x18(%rbp)
movl   $0x20,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    13f8 <main+0x2e8>
mov    -0x150(%rbp),%rax
movl   $0x1,-0x68(%rbp)
mov    -0x68(%rbp),%edx
add    -0x18(%rbp),%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    13c0 <main+0x2b0>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1409 <main+0x2f9>
call   1030 <abort@plt>
movq   $0x1,-0x28(%rbp)
mov    -0x2c(%rbp),%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x20(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1467 <main+0x357>
mov    -0x148(%rbp),%rax
movq   $0x2,-0x70(%rbp)
mov    -0x70(%rbp),%rdx
imul   -0x28(%rbp),%rdx
mov    %rdx,-0x28(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %rdx,(%rax,%rcx,8)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1429 <main+0x319>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     147a <main+0x36a>
call   1030 <abort@plt>
movq   $0x1,-0x28(%rbp)
mov    -0x2c(%rbp),%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x20(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    14d8 <main+0x3c8>
mov    -0x148(%rbp),%rax
movq   $0x2,-0x78(%rbp)
mov    -0x28(%rbp),%rdx
imul   -0x78(%rbp),%rdx
mov    %rdx,-0x28(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %rdx,(%rax,%rcx,8)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    149a <main+0x38a>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     14eb <main+0x3db>
call   1030 <abort@plt>
movq   $0x1,-0x28(%rbp)
mov    -0x2c(%rbp),%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x20(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1549 <main+0x439>
mov    -0x148(%rbp),%rax
movq   $0x2,-0x80(%rbp)
mov    -0x80(%rbp),%rdx
imul   -0x28(%rbp),%rdx
mov    %rdx,-0x28(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %rdx,(%rax,%rcx,8)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    150b <main+0x3fb>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     155c <main+0x44c>
call   1030 <abort@plt>
movl   $0x20,-0x18(%rbp)
movl   $0x0,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    15b1 <main+0x4a1>
mov    -0x150(%rbp),%rax
movl   $0x1,-0x84(%rbp)
mov    -0x84(%rbp),%ecx
mov    -0x18(%rbp),%edx
sub    %ecx,%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1571 <main+0x461>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     15c2 <main+0x4b2>
call   1030 <abort@plt>
movl   $0x20,-0x18(%rbp)
movl   $0x0,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1615 <main+0x505>
mov    -0x150(%rbp),%rax
movl   $0x1,-0x88(%rbp)
mov    -0x18(%rbp),%edx
sub    -0x88(%rbp),%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    15d7 <main+0x4c7>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1626 <main+0x516>
call   1030 <abort@plt>
movl   $0x20,-0x18(%rbp)
movl   $0x20,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1679 <main+0x569>
mov    -0x150(%rbp),%rax
movl   $0x1,-0x8c(%rbp)
mov    -0x8c(%rbp),%edx
sub    -0x18(%rbp),%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    163b <main+0x52b>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     168a <main+0x57a>
call   1030 <abort@plt>
movabs $0x100000000,%rax
mov    %rax,-0x28(%rbp)
movq   $0x1,-0x20(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    16f2 <main+0x5e2>
movq   $0x2,-0x98(%rbp)
mov    -0x98(%rbp),%rcx
mov    -0x28(%rbp),%rax
cqto
idiv   %rcx
mov    %rax,%rdx
mov    -0x148(%rbp),%rax
mov    %rdx,-0x28(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %rdx,(%rax,%rcx,8)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    16a7 <main+0x597>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     1705 <main+0x5f5>
call   1030 <abort@plt>
movabs $0x100000000,%rax
mov    %rax,-0x28(%rbp)
movq   $0x1,-0x20(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    176a <main+0x65a>
movq   $0x2,-0xa0(%rbp)
mov    -0x28(%rbp),%rax
cqto
idivq  -0xa0(%rbp)
mov    %rax,%rdx
mov    -0x148(%rbp),%rax
mov    %rdx,-0x28(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %rdx,(%rax,%rcx,8)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1722 <main+0x612>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     177d <main+0x66d>
call   1030 <abort@plt>
movq   $0x2,-0x28(%rbp)
movq   $0x2,-0x20(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    17e5 <main+0x6d5>
mov    -0x2c(%rbp),%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0xa8(%rbp)
mov    -0xa8(%rbp),%rax
cqto
idivq  -0x28(%rbp)
mov    %rax,%rdx
mov    -0x148(%rbp),%rax
mov    %rdx,-0x28(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %rdx,(%rax,%rcx,8)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1794 <main+0x684>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     17f8 <main+0x6e8>
call   1030 <abort@plt>
movl   $0xffffffff,-0x18(%rbp)
movl   $0x0,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1853 <main+0x743>
mov    -0x150(%rbp),%rax
mov    -0x5c(%rbp),%ecx
mov    $0x1,%edx
shl    %cl,%edx
mov    %edx,%ecx
mov    %ecx,-0xac(%rbp)
mov    -0xac(%rbp),%edx
and    -0x18(%rbp),%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    180d <main+0x6fd>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1864 <main+0x754>
call   1030 <abort@plt>
movl   $0xffffffff,-0x18(%rbp)
movl   $0x0,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    18bf <main+0x7af>
mov    -0x150(%rbp),%rax
mov    -0x5c(%rbp),%ecx
mov    $0x1,%edx
shl    %cl,%edx
mov    %edx,%ecx
mov    %ecx,-0xb0(%rbp)
mov    -0x18(%rbp),%edx
and    -0xb0(%rbp),%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1879 <main+0x769>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     18d0 <main+0x7c0>
call   1030 <abort@plt>
movl   $0xffffffff,-0x18(%rbp)
movl   $0x0,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    192b <main+0x81b>
mov    -0x150(%rbp),%rax
mov    -0x5c(%rbp),%ecx
mov    $0x1,%edx
shl    %cl,%edx
mov    %edx,%ecx
mov    %ecx,-0xb4(%rbp)
mov    -0xb4(%rbp),%edx
and    -0x18(%rbp),%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    18e5 <main+0x7d5>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     193c <main+0x82c>
call   1030 <abort@plt>
movl   $0xffffffff,-0x18(%rbp)
movl   $0x0,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1997 <main+0x887>
mov    -0x150(%rbp),%rax
mov    -0x5c(%rbp),%ecx
mov    $0x1,%edx
shl    %cl,%edx
mov    %edx,%ecx
mov    %ecx,-0xb8(%rbp)
mov    -0xb8(%rbp),%edx
xor    -0x18(%rbp),%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1951 <main+0x841>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     19a8 <main+0x898>
call   1030 <abort@plt>
movl   $0xffffffff,-0x18(%rbp)
movl   $0x0,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1a03 <main+0x8f3>
mov    -0x150(%rbp),%rax
mov    -0x5c(%rbp),%ecx
mov    $0x1,%edx
shl    %cl,%edx
mov    %edx,%ecx
mov    %ecx,-0xbc(%rbp)
mov    -0x18(%rbp),%edx
xor    -0xbc(%rbp),%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    19bd <main+0x8ad>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1a14 <main+0x904>
call   1030 <abort@plt>
movl   $0xffffffff,-0x18(%rbp)
movl   $0x0,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1a6f <main+0x95f>
mov    -0x150(%rbp),%rax
mov    -0x5c(%rbp),%ecx
mov    $0x1,%edx
shl    %cl,%edx
mov    %edx,%ecx
mov    %ecx,-0xc0(%rbp)
mov    -0xc0(%rbp),%edx
xor    -0x18(%rbp),%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1a29 <main+0x919>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1a80 <main+0x970>
call   1030 <abort@plt>
movl   $0x0,-0x18(%rbp)
movl   $0xffffffff,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1adb <main+0x9cb>
mov    -0x150(%rbp),%rax
mov    -0x5c(%rbp),%ecx
mov    $0x1,%edx
shl    %cl,%edx
mov    %edx,%ecx
mov    %ecx,-0xc4(%rbp)
mov    -0xc4(%rbp),%edx
or     -0x18(%rbp),%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1a95 <main+0x985>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1aec <main+0x9dc>
call   1030 <abort@plt>
movl   $0x0,-0x18(%rbp)
movl   $0xffffffff,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1b47 <main+0xa37>
mov    -0x150(%rbp),%rax
mov    -0x5c(%rbp),%ecx
mov    $0x1,%edx
shl    %cl,%edx
mov    %edx,%ecx
mov    %ecx,-0xc8(%rbp)
mov    -0x18(%rbp),%edx
or     -0xc8(%rbp),%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1b01 <main+0x9f1>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1b58 <main+0xa48>
call   1030 <abort@plt>
movl   $0x0,-0x18(%rbp)
movl   $0xffffffff,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1bb3 <main+0xaa3>
mov    -0x150(%rbp),%rax
mov    -0x5c(%rbp),%ecx
mov    $0x1,%edx
shl    %cl,%edx
mov    %edx,%ecx
mov    %ecx,-0xcc(%rbp)
mov    -0xcc(%rbp),%edx
or     -0x18(%rbp),%edx
mov    %edx,-0x18(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1b6d <main+0xa5d>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1bc4 <main+0xab4>
call   1030 <abort@plt>
movq   $0x1,-0x28(%rbp)
mov    -0x2c(%rbp),%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x20(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1c2a <main+0xb1a>
mov    -0x148(%rbp),%rax
movl   $0x1,-0xd0(%rbp)
mov    -0xd0(%rbp),%ecx
mov    -0x28(%rbp),%rdx
mov    %ecx,%ecx
shl    %cl,%rdx
mov    %rdx,-0x28(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %rdx,(%rax,%rcx,8)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1be4 <main+0xad4>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     1c3d <main+0xb2d>
call   1030 <abort@plt>
movq   $0x1,-0x28(%rbp)
mov    -0x2c(%rbp),%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x20(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1ca5 <main+0xb95>
mov    -0x150(%rbp),%rax
movl   $0x1,-0xd4(%rbp)
mov    -0x28(%rbp),%rdx
mov    -0xd4(%rbp),%ecx
shl    %cl,%rdx
mov    %rdx,%rcx
mov    %rcx,-0x28(%rbp)
mov    %ecx,%edx
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1c5d <main+0xb4d>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     1cb8 <main+0xba8>
call   1030 <abort@plt>
mov    -0x148(%rbp),%rax
movq   $0x1,-0x28(%rbp)
movq   $0x2,-0x20(%rbp)
movq   $0x1,-0xe0(%rbp)
mov    -0xe0(%rbp),%rdx
mov    -0x28(%rbp),%rcx
shl    %cl,%rdx
mov    %rdx,%rcx
mov    %rcx,-0x28(%rbp)
mov    %rcx,(%rax)
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     1d05 <main+0xbf5>
call   1030 <abort@plt>
mov    -0x2c(%rbp),%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x28(%rbp)
movq   $0x1,-0x20(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1d6b <main+0xc5b>
mov    -0x148(%rbp),%rax
movq   $0x1,-0xe8(%rbp)
mov    -0xe8(%rbp),%rcx
mov    -0x28(%rbp),%rdx
sar    %cl,%rdx
mov    %rdx,-0x28(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %rdx,(%rax,%rcx,8)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1d25 <main+0xc15>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     1d7e <main+0xc6e>
call   1030 <abort@plt>
mov    -0x2c(%rbp),%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x28(%rbp)
movq   $0x1,-0x20(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1de2 <main+0xcd2>
mov    -0x148(%rbp),%rax
movl   $0x1,-0xec(%rbp)
mov    -0x28(%rbp),%rdx
mov    -0xec(%rbp),%ecx
sar    %cl,%rdx
mov    %rdx,-0x28(%rbp)
movslq -0x5c(%rbp),%rcx
mov    %rdx,(%rax,%rcx,8)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1d9e <main+0xc8e>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     1df5 <main+0xce5>
call   1030 <abort@plt>
mov    -0x148(%rbp),%rax
movabs $0x8000000000000000,%rcx
mov    %rcx,-0x28(%rbp)
movabs $0x100000000,%rcx
mov    %rcx,-0x20(%rbp)
movabs $0x100000000,%rcx
mov    %rcx,-0xf8(%rbp)
mov    -0xf8(%rbp),%rdx
mov    -0x28(%rbp),%rcx
sar    %cl,%rdx
mov    %rdx,%rcx
mov    %rcx,-0x28(%rbp)
mov    %rcx,(%rax)
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     1e54 <main+0xd44>
call   1030 <abort@plt>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0x119c(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1eb3 <main+0xda3>
mov    -0x140(%rbp),%rax
movss  -0x50(%rbp),%xmm0
movss  0x1178(%rip),%xmm2
movaps %xmm0,%xmm1
addss  %xmm2,%xmm1
movss  %xmm1,-0x50(%rbp)
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1e70 <main+0xd60>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    1ecd <main+0xdbd>
jp     1ecd <main+0xdbd>
jmp    1ed2 <main+0xdc2>
call   1030 <abort@plt>
movss  0x1126(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1f31 <main+0xe21>
mov    -0x140(%rbp),%rax
movss  -0x50(%rbp),%xmm0
movss  0x1102(%rip),%xmm2
movaps %xmm0,%xmm1
addss  %xmm2,%xmm1
movss  %xmm1,-0x50(%rbp)
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1eee <main+0xdde>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    1f4b <main+0xe3b>
jp     1f4b <main+0xe3b>
jmp    1f50 <main+0xe40>
call   1030 <abort@plt>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0x10a0(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1fa8 <main+0xe98>
mov    -0x140(%rbp),%rax
movss  0x1081(%rip),%xmm0
addss  -0x50(%rbp),%xmm0
movss  %xmm0,-0x50(%rbp)
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1f6c <main+0xe5c>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    1fc2 <main+0xeb2>
jp     1fc2 <main+0xeb2>
jmp    1fc7 <main+0xeb7>
call   1030 <abort@plt>
movss  0x1031(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    201f <main+0xf0f>
mov    -0x140(%rbp),%rax
movss  0x1012(%rip),%xmm0
addss  -0x50(%rbp),%xmm0
movss  %xmm0,-0x50(%rbp)
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1fe3 <main+0xed3>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    2039 <main+0xf29>
jp     2039 <main+0xf29>
jmp    203e <main+0xf2e>
call   1030 <abort@plt>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0xfb2(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    20a6 <main+0xf96>
mov    -0x140(%rbp),%rax
movss  0xf93(%rip),%xmm0
movss  %xmm0,-0xfc(%rbp)
ff
movss  -0xfc(%rbp),%xmm0
ff
addss  -0x50(%rbp),%xmm0
movss  %xmm0,-0x50(%rbp)
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    205a <main+0xf4a>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    20c0 <main+0xfb0>
jp     20c0 <main+0xfb0>
jmp    20c5 <main+0xfb5>
call   1030 <abort@plt>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0xf2b(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    212d <main+0x101d>
mov    -0x140(%rbp),%rax
movss  0xf0c(%rip),%xmm0
movss  %xmm0,-0x100(%rbp)
ff
movss  -0x50(%rbp),%xmm0
addss  -0x100(%rbp),%xmm0
ff
movss  %xmm0,-0x50(%rbp)
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    20e1 <main+0xfd1>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    2147 <main+0x1037>
jp     2147 <main+0x1037>
jmp    214c <main+0x103c>
call   1030 <abort@plt>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0xea4(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    21b4 <main+0x10a4>
mov    -0x140(%rbp),%rax
movss  0xe85(%rip),%xmm0
movss  %xmm0,-0x104(%rbp)
ff
movss  -0x104(%rbp),%xmm0
ff
addss  -0x50(%rbp),%xmm0
movss  %xmm0,-0x50(%rbp)
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    2168 <main+0x1058>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    21ce <main+0x10be>
jp     21ce <main+0x10be>
jmp    21d3 <main+0x10c3>
call   1030 <abort@plt>
movss  0xe2d(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0xe1c(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    2240 <main+0x1130>
mov    -0x140(%rbp),%rax
movss  0xdfd(%rip),%xmm0
movss  %xmm0,-0x108(%rbp)
ff
movss  -0x108(%rbp),%xmm0
ff
mulss  -0x50(%rbp),%xmm0
movss  %xmm0,-0x50(%rbp)
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    21f4 <main+0x10e4>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    225a <main+0x114a>
jp     225a <main+0x114a>
jmp    225f <main+0x114f>
call   1030 <abort@plt>
movss  0xda1(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0xd90(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    22cc <main+0x11bc>
mov    -0x140(%rbp),%rax
movq   $0x2,-0x110(%rbp)
movss  -0x50(%rbp),%xmm0
cvtsi2ssq -0x110(%rbp),%xmm1
ff ff
mulss  %xmm1,%xmm0
movss  %xmm0,-0x50(%rbp)
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    2280 <main+0x1170>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    22e6 <main+0x11d6>
jp     22e6 <main+0x11d6>
jmp    22eb <main+0x11db>
call   1030 <abort@plt>
movss  0xd15(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0xd04(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    2358 <main+0x1248>
mov    -0x140(%rbp),%rax
movss  0xce5(%rip),%xmm0
movss  %xmm0,-0x114(%rbp)
ff
movss  -0x114(%rbp),%xmm0
ff
mulss  -0x50(%rbp),%xmm0
movss  %xmm0,-0x50(%rbp)
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    230c <main+0x11fc>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    2372 <main+0x1262>
jp     2372 <main+0x1262>
jmp    2377 <main+0x1267>
call   1030 <abort@plt>
movss  0xc81(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    23e3 <main+0x12d3>
mov    -0x140(%rbp),%rax
movss  0xc5a(%rip),%xmm0
movss  %xmm0,-0x118(%rbp)
ff
movss  -0x118(%rbp),%xmm1
ff
movss  -0x50(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x50(%rbp)
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    2393 <main+0x1283>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    23fd <main+0x12ed>
jp     23fd <main+0x12ed>
jmp    2402 <main+0x12f2>
call   1030 <abort@plt>
movss  0xbf6(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    246a <main+0x135a>
mov    -0x140(%rbp),%rax
movss  0xbcf(%rip),%xmm0
movss  %xmm0,-0x11c(%rbp)
ff
movss  -0x50(%rbp),%xmm0
subss  -0x11c(%rbp),%xmm0
ff
movss  %xmm0,-0x50(%rbp)
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    241e <main+0x130e>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    2484 <main+0x1374>
jp     2484 <main+0x1374>
jmp    2489 <main+0x1379>
call   1030 <abort@plt>
movss  0xb77(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    24f1 <main+0x13e1>
mov    -0x140(%rbp),%rax
movss  0xb40(%rip),%xmm0
movss  %xmm0,-0x120(%rbp)
ff
movss  -0x120(%rbp),%xmm0
ff
subss  -0x50(%rbp),%xmm0
movss  %xmm0,-0x50(%rbp)
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    24a5 <main+0x1395>
movl   $0x0,-0x124(%rbp)
movl   $0x0,-0x128(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    25ab <main+0x149b>
mov    -0x140(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xae4(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    2558 <main+0x1448>
jp     2558 <main+0x1448>
mov    -0x128(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x128(%rbp)
jmp    2598 <main+0x1488>
mov    -0x140(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xaac(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    2593 <main+0x1483>
jp     2593 <main+0x1483>
mov    -0x124(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x124(%rbp)
jmp    2598 <main+0x1488>
jmp    259d <main+0x148d>
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    250c <main+0x13fc>
mov    -0x124(%rbp),%eax
mov    %eax,-0x154(%rbp)
mov    -0x2c(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x154(%rbp),%eax
cmp    %ecx,%eax
jne    25f9 <main+0x14e9>
mov    -0x128(%rbp),%eax
mov    %eax,-0x158(%rbp)
mov    -0x2c(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x158(%rbp),%eax
cmp    %ecx,%eax
je     25fe <main+0x14ee>
call   1030 <abort@plt>
movss  0xa02(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  0x9f1(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    266f <main+0x155f>
mov    -0x140(%rbp),%rax
movss  0x9d2(%rip),%xmm0
movss  %xmm0,-0x12c(%rbp)
ff
movss  -0x12c(%rbp),%xmm1
ff
movss  -0x50(%rbp),%xmm0
divss  %xmm1,%xmm0
movss  %xmm0,-0x50(%rbp)
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    261f <main+0x150f>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    2689 <main+0x1579>
jp     2689 <main+0x1579>
jmp    268e <main+0x157e>
call   1030 <abort@plt>
movss  0x972(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  0x961(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    26fb <main+0x15eb>
mov    -0x140(%rbp),%rax
movss  0x942(%rip),%xmm0
movss  %xmm0,-0x130(%rbp)
ff
movss  -0x50(%rbp),%xmm0
divss  -0x130(%rbp),%xmm0
ff
movss  %xmm0,-0x50(%rbp)
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    26af <main+0x159f>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    2715 <main+0x1605>
jp     2715 <main+0x1605>
jmp    271a <main+0x160a>
call   1030 <abort@plt>
mov    -0x140(%rbp),%rax
movss  0x8df(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  0x8ce(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0x8c1(%rip),%xmm0
movss  %xmm0,-0x134(%rbp)
ff
movss  -0x134(%rbp),%xmm0
ff
divss  -0x50(%rbp),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  %xmm0,(%rax)
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    277b <main+0x166b>
jp     277b <main+0x166b>
jmp    2780 <main+0x1670>
call   1030 <abort@plt>
movl   $0x0,-0x4(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,%rsp
mov    -0x4(%rbp),%eax
mov    %rbp,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
sub    $0x88,%rsp
movaps 0xee2(%rip),%xmm0
movaps %xmm0,(%rsp)
movaps %xmm0,0x10(%rsp)
movaps %xmm0,0x20(%rsp)
movaps %xmm0,0x30(%rsp)
movaps %xmm0,0x40(%rsp)
movaps %xmm0,0x50(%rsp)
movaps %xmm0,0x60(%rsp)
movaps %xmm0,0x70(%rsp)
xor    %eax,%eax
movss  0xec1(%rip),%xmm0
mov    $0x2,%ecx
movss  0xeb8(%rip),%xmm1
movaps %xmm0,%xmm2
xor    %edx,%edx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
ucomiss %xmm0,%xmm2
jne    1180 <main+0x70>
jp     1180 <main+0x70>
add    $0x1,%eax
jmp    118a <main+0x7a>
nopl   0x0(%rax)
ucomiss %xmm1,%xmm2
jne    118a <main+0x7a>
jp     118a <main+0x7a>
add    $0x1,%edx
movss  -0x4(%rsp,%rcx,4),%xmm2
ucomiss %xmm0,%xmm2
jne    11a0 <main+0x90>
jp     11a0 <main+0x90>
add    $0x1,%eax
jmp    11aa <main+0x9a>
nopl   0x0(%rax)
ucomiss %xmm1,%xmm2
jne    11aa <main+0x9a>
jp     11aa <main+0x9a>
add    $0x1,%edx
cmp    $0x20,%rcx
je     11bb <main+0xab>
movss  (%rsp,%rcx,4),%xmm2
add    $0x2,%rcx
jmp    1170 <main+0x60>
cmp    $0x10,%edx
jne    11cf <main+0xbf>
cmp    $0x10,%eax
jne    11cf <main+0xbf>
xor    %eax,%eax
add    $0x88,%rsp
ret
call   1030 <abort@plt>

LLVM IR (-O0):
define i32 @main(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8**
%6 = alloca i32
%7 = alloca i32
%8 = alloca i64
%9 = alloca i64
%10 = alloca i32
%11 = alloca i8*
%12 = alloca i64
%13 = alloca i64
%14 = alloca float
%15 = alloca float
%16 = alloca i64
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
%20 = alloca i32
%21 = alloca i64
%22 = alloca i64
%23 = alloca i64
%24 = alloca i32
%25 = alloca i32
%26 = alloca i32
%27 = alloca i64
%28 = alloca i64
%29 = alloca i64
%30 = alloca i32
%31 = alloca i32
%32 = alloca i32
%33 = alloca i32
%34 = alloca i32
%35 = alloca i32
%36 = alloca i32
%37 = alloca i32
%38 = alloca i32
%39 = alloca i32
%40 = alloca i32
%41 = alloca i64
%42 = alloca i64
%43 = alloca i32
%44 = alloca i64
%45 = alloca float
%46 = alloca float
%47 = alloca float
%48 = alloca float
%49 = alloca i64
%50 = alloca float
%51 = alloca float
%52 = alloca float
%53 = alloca float
%54 = alloca i32
%55 = alloca i32
%56 = alloca float
%57 = alloca float
%58 = alloca float
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
store i32 32, i32* %10
%59 = load i32, i32* %10
%60 = zext i32 %59 to i64
%61 = call i8* @llvm.stacksave()
store i8* %61, i8** %11
%62 = alloca i32, i64 %60
store i64 %60, i64* %12
%63 = load i32, i32* %10
%64 = zext i32 %63 to i64
%65 = alloca i64, i64 %64
store i64 %64, i64* %13
%66 = load i32, i32* %10
%67 = zext i32 %66 to i64
%68 = alloca float, i64 %67
store i64 %67, i64* %16
store i32 0, i32* %7
store i32 32, i32* %6
store i32 0, i32* %17
br label %69
69: ; preds = %79, %2
%70 = load i32, i32* %17
%71 = load i32, i32* %10
%72 = icmp slt i32 %70, %71
br i1 %72, label %73, label %82
73: ; preds = %69
%74 = load i32, i32* %7
%75 = add nsw i32 %74, 1
store i32 %75, i32* %7
%76 = load i32, i32* %17
%77 = sext i32 %76 to i64
%78 = getelementptr inbounds i32, i32* %62, i64 %77
store i32 %74, i32* %78
br label %79
79: ; preds = %73
%80 = load i32, i32* %17
%81 = add nsw i32 %80, 1
store i32 %81, i32* %17
br label %69
82: ; preds = %69
%83 = load i32, i32* %6
%84 = load i32, i32* %7
%85 = icmp ne i32 %83, %84
br i1 %85, label %86, label %87
86: ; preds = %82
unreachable
87: ; preds = %82
store i32 32, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %88
88: ; preds = %98, %87
%89 = load i32, i32* %17
%90 = load i32, i32* %10
%91 = icmp slt i32 %89, %90
br i1 %91, label %92, label %101
92: ; preds = %88
%93 = load i32, i32* %7
%94 = add nsw i32 %93, -1
store i32 %94, i32* %7
%95 = load i32, i32* %17
%96 = sext i32 %95 to i64
%97 = getelementptr inbounds i32, i32* %62, i64 %96
store i32 %93, i32* %97
br label %98
98: ; preds = %92
%99 = load i32, i32* %17
%100 = add nsw i32 %99, 1
store i32 %100, i32* %17
br label %88
101: ; preds = %88
%102 = load i32, i32* %6
%103 = load i32, i32* %7
%104 = icmp ne i32 %102, %103
br i1 %104, label %105, label %106
105: ; preds = %101
unreachable
106: ; preds = %101
store i32 0, i32* %7
store i32 32, i32* %6
store i32 0, i32* %17
br label %107
107: ; preds = %117, %106
%108 = load i32, i32* %17
%109 = load i32, i32* %10
%110 = icmp slt i32 %108, %109
br i1 %110, label %111, label %120
111: ; preds = %107
%112 = load i32, i32* %7
%113 = add nsw i32 %112, 1
store i32 %113, i32* %7
%114 = load i32, i32* %17
%115 = sext i32 %114 to i64
%116 = getelementptr inbounds i32, i32* %62, i64 %115
store i32 %113, i32* %116
br label %117
117: ; preds = %111
%118 = load i32, i32* %17
%119 = add nsw i32 %118, 1
store i32 %119, i32* %17
br label %107
120: ; preds = %107
%121 = load i32, i32* %6
%122 = load i32, i32* %7
%123 = icmp ne i32 %121, %122
br i1 %123, label %124, label %125
124: ; preds = %120
unreachable
125: ; preds = %120
store i32 32, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %126
126: ; preds = %136, %125
%127 = load i32, i32* %17
%128 = load i32, i32* %10
%129 = icmp slt i32 %127, %128
br i1 %129, label %130, label %139
130: ; preds = %126
%131 = load i32, i32* %7
%132 = add nsw i32 %131, -1
store i32 %132, i32* %7
%133 = load i32, i32* %17
%134 = sext i32 %133 to i64
%135 = getelementptr inbounds i32, i32* %62, i64 %134
store i32 %132, i32* %135
br label %136
136: ; preds = %130
%137 = load i32, i32* %17
%138 = add nsw i32 %137, 1
store i32 %138, i32* %17
br label %126
139: ; preds = %126
store i32 0, i32* %7
store i32 32, i32* %6
store i32 0, i32* %17
br label %140
140: ; preds = %151, %139
%141 = load i32, i32* %17
%142 = load i32, i32* %10
%143 = icmp slt i32 %141, %142
br i1 %143, label %144, label %154
144: ; preds = %140
store i32 1, i32* %18
%145 = load i32, i32* %18
%146 = load i32, i32* %7
%147 = add nsw i32 %146, %145
store i32 %147, i32* %7
%148 = load i32, i32* %17
%149 = sext i32 %148 to i64
%150 = getelementptr inbounds i32, i32* %62, i64 %149
store i32 %147, i32* %150
br label %151
151: ; preds = %144
%152 = load i32, i32* %17
%153 = add nsw i32 %152, 1
store i32 %153, i32* %17
br label %140
154: ; preds = %140
%155 = load i32, i32* %6
%156 = load i32, i32* %7
%157 = icmp ne i32 %155, %156
br i1 %157, label %158, label %159
158: ; preds = %154
unreachable
159: ; preds = %154
store i32 0, i32* %7
store i32 32, i32* %6
store i32 0, i32* %17
br label %160
160: ; preds = %171, %159
%161 = load i32, i32* %17
%162 = load i32, i32* %10
%163 = icmp slt i32 %161, %162
br i1 %163, label %164, label %174
164: ; preds = %160
store i32 1, i32* %19
%165 = load i32, i32* %7
%166 = load i32, i32* %19
%167 = add nsw i32 %165, %166
store i32 %167, i32* %7
%168 = load i32, i32* %17
%169 = sext i32 %168 to i64
%170 = getelementptr inbounds i32, i32* %62, i64 %169
store i32 %167, i32* %170
br label %171
171: ; preds = %164
%172 = load i32, i32* %17
%173 = add nsw i32 %172, 1
store i32 %173, i32* %17
br label %160
174: ; preds = %160
%175 = load i32, i32* %6
%176 = load i32, i32* %7
%177 = icmp ne i32 %175, %176
br i1 %177, label %178, label %179
178: ; preds = %174
unreachable
179: ; preds = %174
store i32 0, i32* %7
store i32 32, i32* %6
store i32 0, i32* %17
br label %180
180: ; preds = %191, %179
%181 = load i32, i32* %17
%182 = load i32, i32* %10
%183 = icmp slt i32 %181, %182
br i1 %183, label %184, label %194
184: ; preds = %180
store i32 1, i32* %20
%185 = load i32, i32* %20
%186 = load i32, i32* %7
%187 = add nsw i32 %185, %186
store i32 %187, i32* %7
%188 = load i32, i32* %17
%189 = sext i32 %188 to i64
%190 = getelementptr inbounds i32, i32* %62, i64 %189
store i32 %187, i32* %190
br label %191
191: ; preds = %184
%192 = load i32, i32* %17
%193 = add nsw i32 %192, 1
store i32 %193, i32* %17
br label %180
194: ; preds = %180
%195 = load i32, i32* %6
%196 = load i32, i32* %7
%197 = icmp ne i32 %195, %196
br i1 %197, label %198, label %199
198: ; preds = %194
unreachable
199: ; preds = %194
store i64 1, i64* %9
%200 = load i32, i32* %10
%201 = zext i32 %200 to i64
%202 = shl i64 1, %201
store i64 %202, i64* %8
store i32 0, i32* %17
br label %203
203: ; preds = %214, %199
%204 = load i32, i32* %17
%205 = load i32, i32* %10
%206 = icmp slt i32 %204, %205
br i1 %206, label %207, label %217
207: ; preds = %203
store i64 2, i64* %21
%208 = load i64, i64* %21
%209 = load i64, i64* %9
%210 = mul nsw i64 %209, %208
store i64 %210, i64* %9
%211 = load i32, i32* %17
%212 = sext i32 %211 to i64
%213 = getelementptr inbounds i64, i64* %65, i64 %212
store i64 %210, i64* %213
br label %214
214: ; preds = %207
%215 = load i32, i32* %17
%216 = add nsw i32 %215, 1
store i32 %216, i32* %17
br label %203
217: ; preds = %203
%218 = load i64, i64* %8
%219 = load i64, i64* %9
%220 = icmp ne i64 %218, %219
br i1 %220, label %221, label %222
221: ; preds = %217
unreachable
222: ; preds = %217
store i64 1, i64* %9
%223 = load i32, i32* %10
%224 = zext i32 %223 to i64
%225 = shl i64 1, %224
store i64 %225, i64* %8
store i32 0, i32* %17
br label %226
226: ; preds = %237, %222
%227 = load i32, i32* %17
%228 = load i32, i32* %10
%229 = icmp slt i32 %227, %228
br i1 %229, label %230, label %240
230: ; preds = %226
store i64 2, i64* %22
%231 = load i64, i64* %9
%232 = load i64, i64* %22
%233 = mul nsw i64 %231, %232
store i64 %233, i64* %9
%234 = load i32, i32* %17
%235 = sext i32 %234 to i64
%236 = getelementptr inbounds i64, i64* %65, i64 %235
store i64 %233, i64* %236
br label %237
237: ; preds = %230
%238 = load i32, i32* %17
%239 = add nsw i32 %238, 1
store i32 %239, i32* %17
br label %226
240: ; preds = %226
%241 = load i64, i64* %8
%242 = load i64, i64* %9
%243 = icmp ne i64 %241, %242
br i1 %243, label %244, label %245
244: ; preds = %240
unreachable
245: ; preds = %240
store i64 1, i64* %9
%246 = load i32, i32* %10
%247 = zext i32 %246 to i64
%248 = shl i64 1, %247
store i64 %248, i64* %8
store i32 0, i32* %17
br label %249
249: ; preds = %260, %245
%250 = load i32, i32* %17
%251 = load i32, i32* %10
%252 = icmp slt i32 %250, %251
br i1 %252, label %253, label %263
253: ; preds = %249
store i64 2, i64* %23
%254 = load i64, i64* %23
%255 = load i64, i64* %9
%256 = mul nsw i64 %254, %255
store i64 %256, i64* %9
%257 = load i32, i32* %17
%258 = sext i32 %257 to i64
%259 = getelementptr inbounds i64, i64* %65, i64 %258
store i64 %256, i64* %259
br label %260
260: ; preds = %253
%261 = load i32, i32* %17
%262 = add nsw i32 %261, 1
store i32 %262, i32* %17
br label %249
263: ; preds = %249
%264 = load i64, i64* %8
%265 = load i64, i64* %9
%266 = icmp ne i64 %264, %265
br i1 %266, label %267, label %268
267: ; preds = %263
unreachable
268: ; preds = %263
store i32 32, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %269
269: ; preds = %280, %268
%270 = load i32, i32* %17
%271 = load i32, i32* %10
%272 = icmp slt i32 %270, %271
br i1 %272, label %273, label %283
273: ; preds = %269
store i32 1, i32* %24
%274 = load i32, i32* %24
%275 = load i32, i32* %7
%276 = sub nsw i32 %275, %274
store i32 %276, i32* %7
%277 = load i32, i32* %17
%278 = sext i32 %277 to i64
%279 = getelementptr inbounds i32, i32* %62, i64 %278
store i32 %276, i32* %279
br label %280
280: ; preds = %273
%281 = load i32, i32* %17
%282 = add nsw i32 %281, 1
store i32 %282, i32* %17
br label %269
283: ; preds = %269
%284 = load i32, i32* %6
%285 = load i32, i32* %7
%286 = icmp ne i32 %284, %285
br i1 %286, label %287, label %288
287: ; preds = %283
unreachable
288: ; preds = %283
store i32 32, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %289
289: ; preds = %300, %288
%290 = load i32, i32* %17
%291 = load i32, i32* %10
%292 = icmp slt i32 %290, %291
br i1 %292, label %293, label %303
293: ; preds = %289
store i32 1, i32* %25
%294 = load i32, i32* %7
%295 = load i32, i32* %25
%296 = sub nsw i32 %294, %295
store i32 %296, i32* %7
%297 = load i32, i32* %17
%298 = sext i32 %297 to i64
%299 = getelementptr inbounds i32, i32* %62, i64 %298
store i32 %296, i32* %299
br label %300
300: ; preds = %293
%301 = load i32, i32* %17
%302 = add nsw i32 %301, 1
store i32 %302, i32* %17
br label %289
303: ; preds = %289
%304 = load i32, i32* %6
%305 = load i32, i32* %7
%306 = icmp ne i32 %304, %305
br i1 %306, label %307, label %308
307: ; preds = %303
unreachable
308: ; preds = %303
store i32 32, i32* %7
store i32 32, i32* %6
store i32 0, i32* %17
br label %309
309: ; preds = %320, %308
%310 = load i32, i32* %17
%311 = load i32, i32* %10
%312 = icmp slt i32 %310, %311
br i1 %312, label %313, label %323
313: ; preds = %309
store i32 1, i32* %26
%314 = load i32, i32* %26
%315 = load i32, i32* %7
%316 = sub nsw i32 %314, %315
store i32 %316, i32* %7
%317 = load i32, i32* %17
%318 = sext i32 %317 to i64
%319 = getelementptr inbounds i32, i32* %62, i64 %318
store i32 %316, i32* %319
br label %320
320: ; preds = %313
%321 = load i32, i32* %17
%322 = add nsw i32 %321, 1
store i32 %322, i32* %17
br label %309
323: ; preds = %309
%324 = load i32, i32* %6
%325 = load i32, i32* %7
%326 = icmp ne i32 %324, %325
br i1 %326, label %327, label %328
327: ; preds = %323
unreachable
328: ; preds = %323
store i64 4294967296, i64* %9
store i64 1, i64* %8
store i32 0, i32* %17
br label %329
329: ; preds = %340, %328
%330 = load i32, i32* %17
%331 = load i32, i32* %10
%332 = icmp slt i32 %330, %331
br i1 %332, label %333, label %343
333: ; preds = %329
store i64 2, i64* %27
%334 = load i64, i64* %27
%335 = load i64, i64* %9
%336 = sdiv i64 %335, %334
store i64 %336, i64* %9
%337 = load i32, i32* %17
%338 = sext i32 %337 to i64
%339 = getelementptr inbounds i64, i64* %65, i64 %338
store i64 %336, i64* %339
br label %340
340: ; preds = %333
%341 = load i32, i32* %17
%342 = add nsw i32 %341, 1
store i32 %342, i32* %17
br label %329
343: ; preds = %329
%344 = load i64, i64* %8
%345 = load i64, i64* %9
%346 = icmp ne i64 %344, %345
br i1 %346, label %347, label %348
347: ; preds = %343
unreachable
348: ; preds = %343
store i64 4294967296, i64* %9
store i64 1, i64* %8
store i32 0, i32* %17
br label %349
349: ; preds = %360, %348
%350 = load i32, i32* %17
%351 = load i32, i32* %10
%352 = icmp slt i32 %350, %351
br i1 %352, label %353, label %363
353: ; preds = %349
store i64 2, i64* %28
%354 = load i64, i64* %9
%355 = load i64, i64* %28
%356 = sdiv i64 %354, %355
store i64 %356, i64* %9
%357 = load i32, i32* %17
%358 = sext i32 %357 to i64
%359 = getelementptr inbounds i64, i64* %65, i64 %358
store i64 %356, i64* %359
br label %360
360: ; preds = %353
%361 = load i32, i32* %17
%362 = add nsw i32 %361, 1
store i32 %362, i32* %17
br label %349
363: ; preds = %349
%364 = load i64, i64* %8
%365 = load i64, i64* %9
%366 = icmp ne i64 %364, %365
br i1 %366, label %367, label %368
367: ; preds = %363
unreachable
368: ; preds = %363
store i64 2, i64* %9
store i64 2, i64* %8
store i32 0, i32* %17
br label %369
369: ; preds = %383, %368
%370 = load i32, i32* %17
%371 = load i32, i32* %10
%372 = icmp slt i32 %370, %371
br i1 %372, label %373, label %386
373: ; preds = %369
%374 = load i32, i32* %10
%375 = zext i32 %374 to i64
%376 = shl i64 1, %375
store i64 %376, i64* %29
%377 = load i64, i64* %29
%378 = load i64, i64* %9
%379 = sdiv i64 %377, %378
store i64 %379, i64* %9
%380 = load i32, i32* %17
%381 = sext i32 %380 to i64
%382 = getelementptr inbounds i64, i64* %65, i64 %381
store i64 %379, i64* %382
br label %383
383: ; preds = %373
%384 = load i32, i32* %17
%385 = add nsw i32 %384, 1
store i32 %385, i32* %17
br label %369
386: ; preds = %369
%387 = load i64, i64* %8
%388 = load i64, i64* %9
%389 = icmp ne i64 %387, %388
br i1 %389, label %390, label %391
390: ; preds = %386
unreachable
391: ; preds = %386
store i32 -1, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %392
392: ; preds = %405, %391
%393 = load i32, i32* %17
%394 = load i32, i32* %10
%395 = icmp slt i32 %393, %394
br i1 %395, label %396, label %408
396: ; preds = %392
%397 = load i32, i32* %17
%398 = shl i32 1, %397
store i32 %398, i32* %30
%399 = load i32, i32* %30
%400 = load i32, i32* %7
%401 = and i32 %400, %399
store i32 %401, i32* %7
%402 = load i32, i32* %17
%403 = sext i32 %402 to i64
%404 = getelementptr inbounds i32, i32* %62, i64 %403
store i32 %401, i32* %404
br label %405
405: ; preds = %396
%406 = load i32, i32* %17
%407 = add nsw i32 %406, 1
store i32 %407, i32* %17
br label %392
408: ; preds = %392
%409 = load i32, i32* %6
%410 = load i32, i32* %7
%411 = icmp ne i32 %409, %410
br i1 %411, label %412, label %413
412: ; preds = %408
unreachable
413: ; preds = %408
store i32 -1, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %414
414: ; preds = %427, %413
%415 = load i32, i32* %17
%416 = load i32, i32* %10
%417 = icmp slt i32 %415, %416
br i1 %417, label %418, label %430
418: ; preds = %414
%419 = load i32, i32* %17
%420 = shl i32 1, %419
store i32 %420, i32* %31
%421 = load i32, i32* %7
%422 = load i32, i32* %31
%423 = and i32 %421, %422
store i32 %423, i32* %7
%424 = load i32, i32* %17
%425 = sext i32 %424 to i64
%426 = getelementptr inbounds i32, i32* %62, i64 %425
store i32 %423, i32* %426
br label %427
427: ; preds = %418
%428 = load i32, i32* %17
%429 = add nsw i32 %428, 1
store i32 %429, i32* %17
br label %414
430: ; preds = %414
%431 = load i32, i32* %6
%432 = load i32, i32* %7
%433 = icmp ne i32 %431, %432
br i1 %433, label %434, label %435
434: ; preds = %430
unreachable
435: ; preds = %430
store i32 -1, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %436
436: ; preds = %449, %435
%437 = load i32, i32* %17
%438 = load i32, i32* %10
%439 = icmp slt i32 %437, %438
br i1 %439, label %440, label %452
440: ; preds = %436
%441 = load i32, i32* %17
%442 = shl i32 1, %441
store i32 %442, i32* %32
%443 = load i32, i32* %32
%444 = load i32, i32* %7
%445 = and i32 %443, %444
store i32 %445, i32* %7
%446 = load i32, i32* %17
%447 = sext i32 %446 to i64
%448 = getelementptr inbounds i32, i32* %62, i64 %447
store i32 %445, i32* %448
br label %449
449: ; preds = %440
%450 = load i32, i32* %17
%451 = add nsw i32 %450, 1
store i32 %451, i32* %17
br label %436
452: ; preds = %436
%453 = load i32, i32* %6
%454 = load i32, i32* %7
%455 = icmp ne i32 %453, %454
br i1 %455, label %456, label %457
456: ; preds = %452
unreachable
457: ; preds = %452
store i32 -1, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %458
458: ; preds = %471, %457
%459 = load i32, i32* %17
%460 = load i32, i32* %10
%461 = icmp slt i32 %459, %460
br i1 %461, label %462, label %474
462: ; preds = %458
%463 = load i32, i32* %17
%464 = shl i32 1, %463
store i32 %464, i32* %33
%465 = load i32, i32* %33
%466 = load i32, i32* %7
%467 = xor i32 %466, %465
store i32 %467, i32* %7
%468 = load i32, i32* %17
%469 = sext i32 %468 to i64
%470 = getelementptr inbounds i32, i32* %62, i64 %469
store i32 %467, i32* %470
br label %471
471: ; preds = %462
%472 = load i32, i32* %17
%473 = add nsw i32 %472, 1
store i32 %473, i32* %17
br label %458
474: ; preds = %458
%475 = load i32, i32* %6
%476 = load i32, i32* %7
%477 = icmp ne i32 %475, %476
br i1 %477, label %478, label %479
478: ; preds = %474
unreachable
479: ; preds = %474
store i32 -1, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %480
480: ; preds = %493, %479
%481 = load i32, i32* %17
%482 = load i32, i32* %10
%483 = icmp slt i32 %481, %482
br i1 %483, label %484, label %496
484: ; preds = %480
%485 = load i32, i32* %17
%486 = shl i32 1, %485
store i32 %486, i32* %34
%487 = load i32, i32* %7
%488 = load i32, i32* %34
%489 = xor i32 %487, %488
store i32 %489, i32* %7
%490 = load i32, i32* %17
%491 = sext i32 %490 to i64
%492 = getelementptr inbounds i32, i32* %62, i64 %491
store i32 %489, i32* %492
br label %493
493: ; preds = %484
%494 = load i32, i32* %17
%495 = add nsw i32 %494, 1
store i32 %495, i32* %17
br label %480
496: ; preds = %480
%497 = load i32, i32* %6
%498 = load i32, i32* %7
%499 = icmp ne i32 %497, %498
br i1 %499, label %500, label %501
500: ; preds = %496
unreachable
501: ; preds = %496
store i32 -1, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %502
502: ; preds = %515, %501
%503 = load i32, i32* %17
%504 = load i32, i32* %10
%505 = icmp slt i32 %503, %504
br i1 %505, label %506, label %518
506: ; preds = %502
%507 = load i32, i32* %17
%508 = shl i32 1, %507
store i32 %508, i32* %35
%509 = load i32, i32* %35
%510 = load i32, i32* %7
%511 = xor i32 %509, %510
store i32 %511, i32* %7
%512 = load i32, i32* %17
%513 = sext i32 %512 to i64
%514 = getelementptr inbounds i32, i32* %62, i64 %513
store i32 %511, i32* %514
br label %515
515: ; preds = %506
%516 = load i32, i32* %17
%517 = add nsw i32 %516, 1
store i32 %517, i32* %17
br label %502
518: ; preds = %502
%519 = load i32, i32* %6
%520 = load i32, i32* %7
%521 = icmp ne i32 %519, %520
br i1 %521, label %522, label %523
522: ; preds = %518
unreachable
523: ; preds = %518
store i32 0, i32* %7
store i32 -1, i32* %6
store i32 0, i32* %17
br label %524
524: ; preds = %537, %523
%525 = load i32, i32* %17
%526 = load i32, i32* %10
%527 = icmp slt i32 %525, %526
br i1 %527, label %528, label %540
528: ; preds = %524
%529 = load i32, i32* %17
%530 = shl i32 1, %529
store i32 %530, i32* %36
%531 = load i32, i32* %36
%532 = load i32, i32* %7
%533 = or i32 %532, %531
store i32 %533, i32* %7
%534 = load i32, i32* %17
%535 = sext i32 %534 to i64
%536 = getelementptr inbounds i32, i32* %62, i64 %535
store i32 %533, i32* %536
br label %537
537: ; preds = %528
%538 = load i32, i32* %17
%539 = add nsw i32 %538, 1
store i32 %539, i32* %17
br label %524
540: ; preds = %524
%541 = load i32, i32* %6
%542 = load i32, i32* %7
%543 = icmp ne i32 %541, %542
br i1 %543, label %544, label %545
544: ; preds = %540
unreachable
545: ; preds = %540
store i32 0, i32* %7
store i32 -1, i32* %6
store i32 0, i32* %17
br label %546
546: ; preds = %559, %545
%547 = load i32, i32* %17
%548 = load i32, i32* %10
%549 = icmp slt i32 %547, %548
br i1 %549, label %550, label %562
550: ; preds = %546
%551 = load i32, i32* %17
%552 = shl i32 1, %551
store i32 %552, i32* %37
%553 = load i32, i32* %7
%554 = load i32, i32* %37
%555 = or i32 %553, %554
store i32 %555, i32* %7
%556 = load i32, i32* %17
%557 = sext i32 %556 to i64
%558 = getelementptr inbounds i32, i32* %62, i64 %557
store i32 %555, i32* %558
br label %559
559: ; preds = %550
%560 = load i32, i32* %17
%561 = add nsw i32 %560, 1
store i32 %561, i32* %17
br label %546
562: ; preds = %546
%563 = load i32, i32* %6
%564 = load i32, i32* %7
%565 = icmp ne i32 %563, %564
br i1 %565, label %566, label %567
566: ; preds = %562
unreachable
567: ; preds = %562
store i32 0, i32* %7
store i32 -1, i32* %6
store i32 0, i32* %17
br label %568
568: ; preds = %581, %567
%569 = load i32, i32* %17
%570 = load i32, i32* %10
%571 = icmp slt i32 %569, %570
br i1 %571, label %572, label %584
572: ; preds = %568
%573 = load i32, i32* %17
%574 = shl i32 1, %573
store i32 %574, i32* %38
%575 = load i32, i32* %38
%576 = load i32, i32* %7
%577 = or i32 %575, %576
store i32 %577, i32* %7
%578 = load i32, i32* %17
%579 = sext i32 %578 to i64
%580 = getelementptr inbounds i32, i32* %62, i64 %579
store i32 %577, i32* %580
br label %581
581: ; preds = %572
%582 = load i32, i32* %17
%583 = add nsw i32 %582, 1
store i32 %583, i32* %17
br label %568
584: ; preds = %568
%585 = load i32, i32* %6
%586 = load i32, i32* %7
%587 = icmp ne i32 %585, %586
br i1 %587, label %588, label %589
588: ; preds = %584
unreachable
589: ; preds = %584
store i64 1, i64* %9
%590 = load i32, i32* %10
%591 = zext i32 %590 to i64
%592 = shl i64 1, %591
store i64 %592, i64* %8
store i32 0, i32* %17
br label %593
593: ; preds = %605, %589
%594 = load i32, i32* %17
%595 = load i32, i32* %10
%596 = icmp slt i32 %594, %595
br i1 %596, label %597, label %608
597: ; preds = %593
store i32 1, i32* %39
%598 = load i32, i32* %39
%599 = load i64, i64* %9
%600 = zext i32 %598 to i64
%601 = shl i64 %599, %600
store i64 %601, i64* %9
%602 = load i32, i32* %17
%603 = sext i32 %602 to i64
%604 = getelementptr inbounds i64, i64* %65, i64 %603
store i64 %601, i64* %604
br label %605
605: ; preds = %597
%606 = load i32, i32* %17
%607 = add nsw i32 %606, 1
store i32 %607, i32* %17
br label %593
608: ; preds = %593
%609 = load i64, i64* %8
%610 = load i64, i64* %9
%611 = icmp ne i64 %609, %610
br i1 %611, label %612, label %613
612: ; preds = %608
unreachable
613: ; preds = %608
store i64 1, i64* %9
%614 = load i32, i32* %10
%615 = zext i32 %614 to i64
%616 = shl i64 1, %615
store i64 %616, i64* %8
store i32 0, i32* %17
br label %617
617: ; preds = %630, %613
%618 = load i32, i32* %17
%619 = load i32, i32* %10
%620 = icmp slt i32 %618, %619
br i1 %620, label %621, label %633
621: ; preds = %617
store i32 1, i32* %40
%622 = load i64, i64* %9
%623 = load i32, i32* %40
%624 = zext i32 %623 to i64
%625 = shl i64 %622, %624
store i64 %625, i64* %9
%626 = trunc i64 %625 to i32
%627 = load i32, i32* %17
%628 = sext i32 %627 to i64
%629 = getelementptr inbounds i32, i32* %62, i64 %628
store i32 %626, i32* %629
br label %630
630: ; preds = %621
%631 = load i32, i32* %17
%632 = add nsw i32 %631, 1
store i32 %632, i32* %17
br label %617
633: ; preds = %617
%634 = load i64, i64* %8
%635 = load i64, i64* %9
%636 = icmp ne i64 %634, %635
br i1 %636, label %637, label %638
637: ; preds = %633
unreachable
638: ; preds = %633
store i64 1, i64* %9
store i64 2, i64* %8
store i64 1, i64* %41
%639 = load i64, i64* %41
%640 = load i64, i64* %9
%641 = shl i64 %639, %640
store i64 %641, i64* %9
%642 = getelementptr inbounds i64, i64* %65, i64 0
store i64 %641, i64* %642
%643 = load i64, i64* %8
%644 = load i64, i64* %9
%645 = icmp ne i64 %643, %644
br i1 %645, label %646, label %647
646: ; preds = %638
unreachable
647: ; preds = %638
%648 = load i32, i32* %10
%649 = zext i32 %648 to i64
%650 = shl i64 1, %649
store i64 %650, i64* %9
store i64 1, i64* %8
store i32 0, i32* %17
br label %651
651: ; preds = %662, %647
%652 = load i32, i32* %17
%653 = load i32, i32* %10
%654 = icmp slt i32 %652, %653
br i1 %654, label %655, label %665
655: ; preds = %651
store i64 1, i64* %42
%656 = load i64, i64* %42
%657 = load i64, i64* %9
%658 = ashr i64 %657, %656
store i64 %658, i64* %9
%659 = load i32, i32* %17
%660 = sext i32 %659 to i64
%661 = getelementptr inbounds i64, i64* %65, i64 %660
store i64 %658, i64* %661
br label %662
662: ; preds = %655
%663 = load i32, i32* %17
%664 = add nsw i32 %663, 1
store i32 %664, i32* %17
br label %651
665: ; preds = %651
%666 = load i64, i64* %8
%667 = load i64, i64* %9
%668 = icmp ne i64 %666, %667
br i1 %668, label %669, label %670
669: ; preds = %665
unreachable
670: ; preds = %665
%671 = load i32, i32* %10
%672 = zext i32 %671 to i64
%673 = shl i64 1, %672
store i64 %673, i64* %9
store i64 1, i64* %8
store i32 0, i32* %17
br label %674
674: ; preds = %686, %670
%675 = load i32, i32* %17
%676 = load i32, i32* %10
%677 = icmp slt i32 %675, %676
br i1 %677, label %678, label %689
678: ; preds = %674
store i32 1, i32* %43
%679 = load i64, i64* %9
%680 = load i32, i32* %43
%681 = zext i32 %680 to i64
%682 = ashr i64 %679, %681
store i64 %682, i64* %9
%683 = load i32, i32* %17
%684 = sext i32 %683 to i64
%685 = getelementptr inbounds i64, i64* %65, i64 %684
store i64 %682, i64* %685
br label %686
686: ; preds = %678
%687 = load i32, i32* %17
%688 = add nsw i32 %687, 1
store i32 %688, i32* %17
br label %674
689: ; preds = %674
%690 = load i64, i64* %8
%691 = load i64, i64* %9
%692 = icmp ne i64 %690, %691
br i1 %692, label %693, label %694
693: ; preds = %689
unreachable
694: ; preds = %689
store i64 -9223372036854775808, i64* %9
store i64 4294967296, i64* %8
store i64 4294967296, i64* %44
%695 = load i64, i64* %44
%696 = load i64, i64* %9
%697 = ashr i64 %695, %696
store i64 %697, i64* %9
%698 = getelementptr inbounds i64, i64* %65, i64 0
store i64 %697, i64* %698
%699 = load i64, i64* %8
%700 = load i64, i64* %9
%701 = icmp ne i64 %699, %700
br i1 %701, label %702, label %703
702: ; preds = %694
unreachable
703: ; preds = %694
store float 0.000000e+00, float* %15
store float 3.200000e+01, float* %14
store i32 0, i32* %17
br label %704
704: ; preds = %714, %703
%705 = load i32, i32* %17
%706 = load i32, i32* %10
%707 = icmp slt i32 %705, %706
br i1 %707, label %708, label %717
708: ; preds = %704
%709 = load float, float* %15
%710 = fadd float %709, 1.000000e+00
store float %710, float* %15
%711 = load i32, i32* %17
%712 = sext i32 %711 to i64
%713 = getelementptr inbounds float, float* %68, i64 %712
store float %709, float* %713
br label %714
714: ; preds = %708
%715 = load i32, i32* %17
%716 = add nsw i32 %715, 1
store i32 %716, i32* %17
br label %704
717: ; preds = %704
%718 = load float, float* %14
%719 = load float, float* %15
%720 = fcmp une float %718, %719
br i1 %720, label %721, label %722
721: ; preds = %717
unreachable
722: ; preds = %717
store float 3.200000e+01, float* %15
store float 0.000000e+00, float* %14
store i32 0, i32* %17
br label %723
723: ; preds = %733, %722
%724 = load i32, i32* %17
%725 = load i32, i32* %10
%726 = icmp slt i32 %724, %725
br i1 %726, label %727, label %736
727: ; preds = %723
%728 = load float, float* %15
%729 = fadd float %728, -1.000000e+00
store float %729, float* %15
%730 = load i32, i32* %17
%731 = sext i32 %730 to i64
%732 = getelementptr inbounds float, float* %68, i64 %731
store float %728, float* %732
br label %733
733: ; preds = %727
%734 = load i32, i32* %17
%735 = add nsw i32 %734, 1
store i32 %735, i32* %17
br label %723
736: ; preds = %723
%737 = load float, float* %14
%738 = load float, float* %15
%739 = fcmp une float %737, %738
br i1 %739, label %740, label %741
740: ; preds = %736
unreachable
741: ; preds = %736
store float 0.000000e+00, float* %15
store float 3.200000e+01, float* %14
store i32 0, i32* %17
br label %742
742: ; preds = %752, %741
%743 = load i32, i32* %17
%744 = load i32, i32* %10
%745 = icmp slt i32 %743, %744
br i1 %745, label %746, label %755
746: ; preds = %742
%747 = load float, float* %15
%748 = fadd float %747, 1.000000e+00
store float %748, float* %15
%749 = load i32, i32* %17
%750 = sext i32 %749 to i64
%751 = getelementptr inbounds float, float* %68, i64 %750
store float %748, float* %751
br label %752
752: ; preds = %746
%753 = load i32, i32* %17
%754 = add nsw i32 %753, 1
store i32 %754, i32* %17
br label %742
755: ; preds = %742
%756 = load float, float* %14
%757 = load float, float* %15
%758 = fcmp une float %756, %757
br i1 %758, label %759, label %760
759: ; preds = %755
unreachable
760: ; preds = %755
store float 3.200000e+01, float* %15
store float 0.000000e+00, float* %14
store i32 0, i32* %17
br label %761
761: ; preds = %771, %760
%762 = load i32, i32* %17
%763 = load i32, i32* %10
%764 = icmp slt i32 %762, %763
br i1 %764, label %765, label %774
765: ; preds = %761
%766 = load float, float* %15
%767 = fadd float %766, -1.000000e+00
store float %767, float* %15
%768 = load i32, i32* %17
%769 = sext i32 %768 to i64
%770 = getelementptr inbounds float, float* %68, i64 %769
store float %767, float* %770
br label %771
771: ; preds = %765
%772 = load i32, i32* %17
%773 = add nsw i32 %772, 1
store i32 %773, i32* %17
br label %761
774: ; preds = %761
%775 = load float, float* %14
%776 = load float, float* %15
%777 = fcmp une float %775, %776
br i1 %777, label %778, label %779
778: ; preds = %774
unreachable
779: ; preds = %774
store float 0.000000e+00, float* %15
store float 3.200000e+01, float* %14
store i32 0, i32* %17
br label %780
780: ; preds = %791, %779
%781 = load i32, i32* %17
%782 = load i32, i32* %10
%783 = icmp slt i32 %781, %782
br i1 %783, label %784, label %794
784: ; preds = %780
store float 1.000000e+00, float* %45
%785 = load float, float* %45
%786 = load float, float* %15
%787 = fadd float %786, %785
store float %787, float* %15
%788 = load i32, i32* %17
%789 = sext i32 %788 to i64
%790 = getelementptr inbounds float, float* %68, i64 %789
store float %787, float* %790
br label %791
791: ; preds = %784
%792 = load i32, i32* %17
%793 = add nsw i32 %792, 1
store i32 %793, i32* %17
br label %780
794: ; preds = %780
%795 = load float, float* %14
%796 = load float, float* %15
%797 = fcmp une float %795, %796
br i1 %797, label %798, label %799
798: ; preds = %794
unreachable
799: ; preds = %794
store float 0.000000e+00, float* %15
store float 3.200000e+01, float* %14
store i32 0, i32* %17
br label %800
800: ; preds = %811, %799
%801 = load i32, i32* %17
%802 = load i32, i32* %10
%803 = icmp slt i32 %801, %802
br i1 %803, label %804, label %814
804: ; preds = %800
store float 1.000000e+00, float* %46
%805 = load float, float* %15
%806 = load float, float* %46
%807 = fadd float %805, %806
store float %807, float* %15
%808 = load i32, i32* %17
%809 = sext i32 %808 to i64
%810 = getelementptr inbounds float, float* %68, i64 %809
store float %807, float* %810
br label %811
811: ; preds = %804
%812 = load i32, i32* %17
%813 = add nsw i32 %812, 1
store i32 %813, i32* %17
br label %800
814: ; preds = %800
%815 = load float, float* %14
%816 = load float, float* %15
%817 = fcmp une float %815, %816
br i1 %817, label %818, label %819
818: ; preds = %814
unreachable
819: ; preds = %814
store float 0.000000e+00, float* %15
store float 3.200000e+01, float* %14
store i32 0, i32* %17
br label %820
820: ; preds = %831, %819
%821 = load i32, i32* %17
%822 = load i32, i32* %10
%823 = icmp slt i32 %821, %822
br i1 %823, label %824, label %834
824: ; preds = %820
store float 1.000000e+00, float* %47
%825 = load float, float* %47
%826 = load float, float* %15
%827 = fadd float %825, %826
store float %827, float* %15
%828 = load i32, i32* %17
%829 = sext i32 %828 to i64
%830 = getelementptr inbounds float, float* %68, i64 %829
store float %827, float* %830
br label %831
831: ; preds = %824
%832 = load i32, i32* %17
%833 = add nsw i32 %832, 1
store i32 %833, i32* %17
br label %820
834: ; preds = %820
%835 = load float, float* %14
%836 = load float, float* %15
%837 = fcmp une float %835, %836
br i1 %837, label %838, label %839
838: ; preds = %834
unreachable
839: ; preds = %834
store float 1.000000e+00, float* %15
store float 0x41F0000000000000, float* %14
store i32 0, i32* %17
br label %840
840: ; preds = %851, %839
%841 = load i32, i32* %17
%842 = load i32, i32* %10
%843 = icmp slt i32 %841, %842
br i1 %843, label %844, label %854
844: ; preds = %840
store float 2.000000e+00, float* %48
%845 = load float, float* %48
%846 = load float, float* %15
%847 = fmul float %846, %845
store float %847, float* %15
%848 = load i32, i32* %17
%849 = sext i32 %848 to i64
%850 = getelementptr inbounds float, float* %68, i64 %849
store float %847, float* %850
br label %851
851: ; preds = %844
%852 = load i32, i32* %17
%853 = add nsw i32 %852, 1
store i32 %853, i32* %17
br label %840
854: ; preds = %840
%855 = load float, float* %14
%856 = load float, float* %15
%857 = fcmp une float %855, %856
br i1 %857, label %858, label %859
858: ; preds = %854
unreachable
859: ; preds = %854
store float 1.000000e+00, float* %15
store float 0x41F0000000000000, float* %14
store i32 0, i32* %17
br label %860
860: ; preds = %872, %859
%861 = load i32, i32* %17
%862 = load i32, i32* %10
%863 = icmp slt i32 %861, %862
br i1 %863, label %864, label %875
864: ; preds = %860
store i64 2, i64* %49
%865 = load float, float* %15
%866 = load i64, i64* %49
%867 = sitofp i64 %866 to float
%868 = fmul float %865, %867
store float %868, float* %15
%869 = load i32, i32* %17
%870 = sext i32 %869 to i64
%871 = getelementptr inbounds float, float* %68, i64 %870
store float %868, float* %871
br label %872
872: ; preds = %864
%873 = load i32, i32* %17
%874 = add nsw i32 %873, 1
store i32 %874, i32* %17
br label %860
875: ; preds = %860
%876 = load float, float* %14
%877 = load float, float* %15
%878 = fcmp une float %876, %877
br i1 %878, label %879, label %880
879: ; preds = %875
unreachable
880: ; preds = %875
store float 1.000000e+00, float* %15
store float 0x41F0000000000000, float* %14
store i32 0, i32* %17
br label %881
881: ; preds = %892, %880
%882 = load i32, i32* %17
%883 = load i32, i32* %10
%884 = icmp slt i32 %882, %883
br i1 %884, label %885, label %895
885: ; preds = %881
store float 2.000000e+00, float* %50
%886 = load float, float* %50
%887 = load float, float* %15
%888 = fmul float %886, %887
store float %888, float* %15
%889 = load i32, i32* %17
%890 = sext i32 %889 to i64
%891 = getelementptr inbounds float, float* %68, i64 %890
store float %888, float* %891
br label %892
892: ; preds = %885
%893 = load i32, i32* %17
%894 = add nsw i32 %893, 1
store i32 %894, i32* %17
br label %881
895: ; preds = %881
%896 = load float, float* %14
%897 = load float, float* %15
%898 = fcmp une float %896, %897
br i1 %898, label %899, label %900
899: ; preds = %895
unreachable
900: ; preds = %895
store float 3.200000e+01, float* %15
store float 0.000000e+00, float* %14
store i32 0, i32* %17
br label %901
901: ; preds = %912, %900
%902 = load i32, i32* %17
%903 = load i32, i32* %10
%904 = icmp slt i32 %902, %903
br i1 %904, label %905, label %915
905: ; preds = %901
store float 1.000000e+00, float* %51
%906 = load float, float* %51
%907 = load float, float* %15
%908 = fsub float %907, %906
store float %908, float* %15
%909 = load i32, i32* %17
%910 = sext i32 %909 to i64
%911 = getelementptr inbounds float, float* %68, i64 %910
store float %908, float* %911
br label %912
912: ; preds = %905
%913 = load i32, i32* %17
%914 = add nsw i32 %913, 1
store i32 %914, i32* %17
br label %901
915: ; preds = %901
%916 = load float, float* %14
%917 = load float, float* %15
%918 = fcmp une float %916, %917
br i1 %918, label %919, label %920
919: ; preds = %915
unreachable
920: ; preds = %915
store float 3.200000e+01, float* %15
store float 0.000000e+00, float* %14
store i32 0, i32* %17
br label %921
921: ; preds = %932, %920
%922 = load i32, i32* %17
%923 = load i32, i32* %10
%924 = icmp slt i32 %922, %923
br i1 %924, label %925, label %935
925: ; preds = %921
store float 1.000000e+00, float* %52
%926 = load float, float* %15
%927 = load float, float* %52
%928 = fsub float %926, %927
store float %928, float* %15
%929 = load i32, i32* %17
%930 = sext i32 %929 to i64
%931 = getelementptr inbounds float, float* %68, i64 %930
store float %928, float* %931
br label %932
932: ; preds = %925
%933 = load i32, i32* %17
%934 = add nsw i32 %933, 1
store i32 %934, i32* %17
br label %921
935: ; preds = %921
%936 = load float, float* %14
%937 = load float, float* %15
%938 = fcmp une float %936, %937
br i1 %938, label %939, label %940
939: ; preds = %935
unreachable
940: ; preds = %935
store float 1.000000e+00, float* %15
store float 0.000000e+00, float* %14
store i32 0, i32* %17
br label %941
941: ; preds = %952, %940
%942 = load i32, i32* %17
%943 = load i32, i32* %10
%944 = icmp slt i32 %942, %943
br i1 %944, label %945, label %955
945: ; preds = %941
store float 3.200000e+01, float* %53
%946 = load float, float* %53
%947 = load float, float* %15
%948 = fsub float %946, %947
store float %948, float* %15
%949 = load i32, i32* %17
%950 = sext i32 %949 to i64
%951 = getelementptr inbounds float, float* %68, i64 %950
store float %948, float* %951
br label %952
952: ; preds = %945
%953 = load i32, i32* %17
%954 = add nsw i32 %953, 1
store i32 %954, i32* %17
br label %941
955: ; preds = %941
store i32 0, i32* %54
store i32 0, i32* %55
store i32 0, i32* %17
br label %956
956: ; preds = %982, %955
%957 = load i32, i32* %17
%958 = load i32, i32* %10
%959 = icmp slt i32 %957, %958
br i1 %959, label %960, label %985
960: ; preds = %956
%961 = load i32, i32* %17
%962 = sext i32 %961 to i64
%963 = getelementptr inbounds float, float* %68, i64 %962
%964 = load float, float* %963
%965 = fpext float %964 to double
%966 = fcmp oeq double %965, 3.100000e+01
br i1 %966, label %967, label %970
967: ; preds = %960
%968 = load i32, i32* %55
%969 = add nsw i32 %968, 1
store i32 %969, i32* %55
br label %981
970: ; preds = %960
%971 = load i32, i32* %17
%972 = sext i32 %971 to i64
%973 = getelementptr inbounds float, float* %68, i64 %972
%974 = load float, float* %973
%975 = fpext float %974 to double
%976 = fcmp oeq double %975, 1.000000e+00
br i1 %976, label %977, label %980
977: ; preds = %970
%978 = load i32, i32* %54
%979 = add nsw i32 %978, 1
store i32 %979, i32* %54
br label %980
980: ; preds = %977, %970
br label %981
981: ; preds = %980, %967
br label %982
982: ; preds = %981
%983 = load i32, i32* %17
%984 = add nsw i32 %983, 1
store i32 %984, i32* %17
br label %956
985: ; preds = %956
%986 = load i32, i32* %54
%987 = load i32, i32* %10
%988 = sdiv i32 %987, 2
%989 = icmp ne i32 %986, %988
br i1 %989, label %995, label %990
990: ; preds = %985
%991 = load i32, i32* %55
%992 = load i32, i32* %10
%993 = sdiv i32 %992, 2
%994 = icmp ne i32 %991, %993
br i1 %994, label %995, label %996
995: ; preds = %990, %985
unreachable
996: ; preds = %990
store float 1.000000e+00, float* %14
store float 0x41F0000000000000, float* %15
store i32 0, i32* %17
br label %997
997: ; preds = %1008, %996
%998 = load i32, i32* %17
%999 = load i32, i32* %10
%1000 = icmp slt i32 %998, %999
br i1 %1000, label %1001, label %1011
1001: ; preds = %997
store float 2.000000e+00, float* %56
%1002 = load float, float* %56
%1003 = load float, float* %15
%1004 = fdiv float %1003, %1002
store float %1004, float* %15
%1005 = load i32, i32* %17
%1006 = sext i32 %1005 to i64
%1007 = getelementptr inbounds float, float* %68, i64 %1006
store float %1004, float* %1007
br label %1008
1008: ; preds = %1001
%1009 = load i32, i32* %17
%1010 = add nsw i32 %1009, 1
store i32 %1010, i32* %17
br label %997
1011: ; preds = %997
%1012 = load float, float* %14
%1013 = load float, float* %15
%1014 = fcmp une float %1012, %1013
br i1 %1014, label %1015, label %1016
1015: ; preds = %1011
unreachable
1016: ; preds = %1011
store float 1.000000e+00, float* %14
store float 0x41F0000000000000, float* %15
store i32 0, i32* %17
br label %1017
1017: ; preds = %1028, %1016
%1018 = load i32, i32* %17
%1019 = load i32, i32* %10
%1020 = icmp slt i32 %1018, %1019
br i1 %1020, label %1021, label %1031
1021: ; preds = %1017
store float 2.000000e+00, float* %57
%1022 = load float, float* %15
%1023 = load float, float* %57
%1024 = fdiv float %1022, %1023
store float %1024, float* %15
%1025 = load i32, i32* %17
%1026 = sext i32 %1025 to i64
%1027 = getelementptr inbounds float, float* %68, i64 %1026
store float %1024, float* %1027
br label %1028
1028: ; preds = %1021
%1029 = load i32, i32* %17
%1030 = add nsw i32 %1029, 1
store i32 %1030, i32* %17
br label %1017
1031: ; preds = %1017
%1032 = load float, float* %14
%1033 = load float, float* %15
%1034 = fcmp une float %1032, %1033
br i1 %1034, label %1035, label %1036
1035: ; preds = %1031
unreachable
1036: ; preds = %1031
store float 1.000000e+00, float* %14
store float 0x41F0000000000000, float* %15
store float 0x41F0000000000000, float* %58
%1037 = load float, float* %58
%1038 = load float, float* %15
%1039 = fdiv float %1037, %1038
store float %1039, float* %15
%1040 = getelementptr inbounds float, float* %68, i64 0
store float %1039, float* %1040
%1041 = load float, float* %14
%1042 = load float, float* %15
%1043 = fcmp une float %1041, %1042
br i1 %1043, label %1044, label %1045
1044: ; preds = %1036
unreachable
1045: ; preds = %1036
store i32 0, i32* %3
%1046 = load i8*, i8** %11
%1047 = load i32, i32* %3
ret i32 %1047
}

LLVM IR (-O2):
define i32 @main(i32 %0, i8** nocapture readnone %1) {
%3 = alloca [32 x float]
%4 = getelementptr inbounds [32 x float], [32 x float]* %3, i64 0, i64 4
%5 = getelementptr inbounds [32 x float], [32 x float]* %3, i64 0, i64 8
%6 = getelementptr inbounds [32 x float], [32 x float]* %3, i64 0, i64 12
%7 = getelementptr inbounds [32 x float], [32 x float]* %3, i64 0, i64 16
%8 = getelementptr inbounds [32 x float], [32 x float]* %3, i64 0, i64 20
%9 = getelementptr inbounds [32 x float], [32 x float]* %3, i64 0, i64 24
%10 = getelementptr inbounds [32 x float], [32 x float]* %3, i64 0, i64 28
%11 = bitcast [32 x float]* %3 to <4 x float>*
store <4 x float> <float 3.100000e+01, float 1.000000e+00, float 3.100000e+01, float 1.000000e+00>, <4 x float>* %11
%12 = bitcast float* %4 to <4 x float>*
store <4 x float> <float 3.100000e+01, float 1.000000e+00, float 3.100000e+01, float 1.000000e+00>, <4 x float>* %12
%13 = bitcast float* %5 to <4 x float>*
store <4 x float> <float 3.100000e+01, float 1.000000e+00, float 3.100000e+01, float 1.000000e+00>, <4 x float>* %13
%14 = bitcast float* %6 to <4 x float>*
store <4 x float> <float 3.100000e+01, float 1.000000e+00, float 3.100000e+01, float 1.000000e+00>, <4 x float>* %14
%15 = bitcast float* %7 to <4 x float>*
store <4 x float> <float 3.100000e+01, float 1.000000e+00, float 3.100000e+01, float 1.000000e+00>, <4 x float>* %15
%16 = bitcast float* %8 to <4 x float>*
store <4 x float> <float 3.100000e+01, float 1.000000e+00, float 3.100000e+01, float 1.000000e+00>, <4 x float>* %16
%17 = bitcast float* %9 to <4 x float>*
store <4 x float> <float 3.100000e+01, float 1.000000e+00, float 3.100000e+01, float 1.000000e+00>, <4 x float>* %17
%18 = bitcast float* %10 to <4 x float>*
store <4 x float> <float 3.100000e+01, float 1.000000e+00, float 3.100000e+01, float 1.000000e+00>, <4 x float>* %18
br label %19
19: ; preds = %49, %2
%20 = phi float [ 3.100000e+01, %2 ], [ %51, %49 ]
%21 = phi i64 [ 0, %2 ], [ %47, %49 ]
%22 = phi i32 [ 0, %2 ], [ %46, %49 ]
%23 = phi i32 [ 0, %2 ], [ %45, %49 ]
%24 = fcmp oeq float %20, 3.100000e+01
br i1 %24, label %25, label %27
25: ; preds = %19
%26 = add nsw i32 %22, 1
br label %31
27: ; preds = %19
%28 = fcmp oeq float %20, 1.000000e+00
br i1 %28, label %29, label %31
29: ; preds = %27
%30 = add nsw i32 %23, 1
br label %31
31: ; preds = %27, %29, %25
%32 = phi i32 [ %23, %25 ], [ %30, %29 ], [ %23, %27 ]
%33 = phi i32 [ %26, %25 ], [ %22, %29 ], [ %22, %27 ]
%34 = or i64 %21, 1
%35 = getelementptr inbounds [32 x float], [32 x float]* %3, i64 0, i64 %34
%36 = load float, float* %35
%37 = fcmp oeq float %36, 3.100000e+01
br i1 %37, label %42, label %38
38: ; preds = %31
%39 = fcmp oeq float %36, 1.000000e+00
br i1 %39, label %40, label %44
40: ; preds = %38
%41 = add nsw i32 %32, 1
br label %44
42: ; preds = %31
%43 = add nsw i32 %33, 1
br label %44
44: ; preds = %42, %40, %38
%45 = phi i32 [ %32, %42 ], [ %41, %40 ], [ %32, %38 ]
%46 = phi i32 [ %43, %42 ], [ %33, %40 ], [ %33, %38 ]
%47 = add nuw nsw i64 %21, 2
%48 = icmp eq i64 %47, 32
br i1 %48, label %52, label %49
49: ; preds = %44
%50 = getelementptr inbounds [32 x float], [32 x float]* %3, i64 0, i64 %47
%51 = load float, float* %50
br label %19
52: ; preds = %44
%53 = icmp eq i32 %45, 16
%54 = icmp eq i32 %46, 16
%55 = select i1 %53, i1 %54, i1 false
br i1 %55, label %57, label %56
56: ; preds = %52
tail call void @abort()
unreachable
57: ; preds = %52
ret i32 0
}