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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ abort();
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;
    }
  }
  for (i = 0; i < N; i++)
    if (i % 2 == 0) {
      if (fdata[i] != 31.0)
        abort();
    } else {
      if (fdata[i] != 1.0)
        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    $0x150,%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,-0x148(%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,-0x140(%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,-0x138(%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    -0x148(%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     11fb <main+0xeb>
mov    $0x0,%al
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    1243 <main+0x133>
mov    -0x148(%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    1210 <main+0x100>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1256 <main+0x146>
mov    $0x0,%al
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    129c <main+0x18c>
mov    -0x148(%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    126b <main+0x15b>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     12af <main+0x19f>
mov    $0x0,%al
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    12f5 <main+0x1e5>
mov    -0x148(%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    12c4 <main+0x1b4>
movl   $0x0,-0x18(%rbp)
movl   $0x20,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1342 <main+0x232>
mov    -0x148(%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    130a <main+0x1fa>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1355 <main+0x245>
mov    $0x0,%al
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    13a2 <main+0x292>
mov    -0x148(%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    136a <main+0x25a>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     13b5 <main+0x2a5>
mov    $0x0,%al
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    1402 <main+0x2f2>
mov    -0x148(%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    13ca <main+0x2ba>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1415 <main+0x305>
mov    $0x0,%al
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    1473 <main+0x363>
mov    -0x140(%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    1435 <main+0x325>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     1488 <main+0x378>
mov    $0x0,%al
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    14e6 <main+0x3d6>
mov    -0x140(%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    14a8 <main+0x398>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     14fb <main+0x3eb>
mov    $0x0,%al
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    1559 <main+0x449>
mov    -0x140(%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    151b <main+0x40b>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     156e <main+0x45e>
mov    $0x0,%al
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    15c3 <main+0x4b3>
mov    -0x148(%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    1583 <main+0x473>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     15d6 <main+0x4c6>
mov    $0x0,%al
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    1629 <main+0x519>
mov    -0x148(%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    15eb <main+0x4db>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     163c <main+0x52c>
mov    $0x0,%al
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    168f <main+0x57f>
mov    -0x148(%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    1651 <main+0x541>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     16a2 <main+0x592>
mov    $0x0,%al
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    170a <main+0x5fa>
movq   $0x2,-0x98(%rbp)
mov    -0x98(%rbp),%rcx
mov    -0x28(%rbp),%rax
cqto
idiv   %rcx
mov    %rax,%rdx
mov    -0x140(%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    16bf <main+0x5af>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     171f <main+0x60f>
mov    $0x0,%al
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    1784 <main+0x674>
movq   $0x2,-0xa0(%rbp)
mov    -0x28(%rbp),%rax
cqto
idivq  -0xa0(%rbp)
mov    %rax,%rdx
mov    -0x140(%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    173c <main+0x62c>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     1799 <main+0x689>
mov    $0x0,%al
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    1801 <main+0x6f1>
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    -0x140(%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    17b0 <main+0x6a0>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     1816 <main+0x706>
mov    $0x0,%al
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    1871 <main+0x761>
mov    -0x148(%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    182b <main+0x71b>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1884 <main+0x774>
mov    $0x0,%al
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    18df <main+0x7cf>
mov    -0x148(%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    1899 <main+0x789>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     18f2 <main+0x7e2>
mov    $0x0,%al
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    194d <main+0x83d>
mov    -0x148(%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    1907 <main+0x7f7>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1960 <main+0x850>
mov    $0x0,%al
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    19bb <main+0x8ab>
mov    -0x148(%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    1975 <main+0x865>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     19ce <main+0x8be>
mov    $0x0,%al
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    1a29 <main+0x919>
mov    -0x148(%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    19e3 <main+0x8d3>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1a3c <main+0x92c>
mov    $0x0,%al
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    1a97 <main+0x987>
mov    -0x148(%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    1a51 <main+0x941>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1aaa <main+0x99a>
mov    $0x0,%al
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    1b05 <main+0x9f5>
mov    -0x148(%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    1abf <main+0x9af>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1b18 <main+0xa08>
mov    $0x0,%al
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    1b73 <main+0xa63>
mov    -0x148(%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    1b2d <main+0xa1d>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1b86 <main+0xa76>
mov    $0x0,%al
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    1be1 <main+0xad1>
mov    -0x148(%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    1b9b <main+0xa8b>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1bf4 <main+0xae4>
mov    $0x0,%al
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    1c5a <main+0xb4a>
mov    -0x140(%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    1c14 <main+0xb04>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     1c6f <main+0xb5f>
mov    $0x0,%al
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    1cd7 <main+0xbc7>
mov    -0x148(%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    1c8f <main+0xb7f>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     1cec <main+0xbdc>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x140(%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     1d3b <main+0xc2b>
mov    $0x0,%al
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    1da1 <main+0xc91>
mov    -0x140(%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    1d5b <main+0xc4b>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     1db6 <main+0xca6>
mov    $0x0,%al
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    1e1a <main+0xd0a>
mov    -0x140(%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    1dd6 <main+0xcc6>
mov    -0x20(%rbp),%rax
cmp    -0x28(%rbp),%rax
je     1e2f <main+0xd1f>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x140(%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     1e90 <main+0xd80>
mov    $0x0,%al
call   1030 <abort@plt>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0x1160(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1eef <main+0xddf>
mov    -0x138(%rbp),%rax
movss  -0x50(%rbp),%xmm0
movss  0x113c(%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    1eac <main+0xd9c>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    1f09 <main+0xdf9>
jp     1f09 <main+0xdf9>
jmp    1f10 <main+0xe00>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x10e8(%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    1f6f <main+0xe5f>
mov    -0x138(%rbp),%rax
movss  -0x50(%rbp),%xmm0
movss  0x10c4(%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    1f2c <main+0xe1c>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    1f89 <main+0xe79>
jp     1f89 <main+0xe79>
jmp    1f90 <main+0xe80>
mov    $0x0,%al
call   1030 <abort@plt>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0x1060(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1fe8 <main+0xed8>
mov    -0x138(%rbp),%rax
movss  0x1041(%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    1fac <main+0xe9c>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    2002 <main+0xef2>
jp     2002 <main+0xef2>
jmp    2009 <main+0xef9>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0xfef(%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    2061 <main+0xf51>
mov    -0x138(%rbp),%rax
movss  0xfd0(%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    2025 <main+0xf15>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    207b <main+0xf6b>
jp     207b <main+0xf6b>
jmp    2082 <main+0xf72>
mov    $0x0,%al
call   1030 <abort@plt>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0xf6e(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    20ea <main+0xfda>
mov    -0x138(%rbp),%rax
movss  0xf4f(%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    209e <main+0xf8e>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    2104 <main+0xff4>
jp     2104 <main+0xff4>
jmp    210b <main+0xffb>
mov    $0x0,%al
call   1030 <abort@plt>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0xee5(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    2173 <main+0x1063>
mov    -0x138(%rbp),%rax
movss  0xec6(%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    2127 <main+0x1017>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    218d <main+0x107d>
jp     218d <main+0x107d>
jmp    2194 <main+0x1084>
mov    $0x0,%al
call   1030 <abort@plt>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0xe5c(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    21fc <main+0x10ec>
mov    -0x138(%rbp),%rax
movss  0xe3d(%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    21b0 <main+0x10a0>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    2216 <main+0x1106>
jp     2216 <main+0x1106>
jmp    221d <main+0x110d>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0xde3(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0xdd2(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    228a <main+0x117a>
mov    -0x138(%rbp),%rax
movss  0xdb3(%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    223e <main+0x112e>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    22a4 <main+0x1194>
jp     22a4 <main+0x1194>
jmp    22ab <main+0x119b>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0xd55(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0xd44(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    2318 <main+0x1208>
mov    -0x138(%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    22cc <main+0x11bc>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    2332 <main+0x1222>
jp     2332 <main+0x1222>
jmp    2339 <main+0x1229>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0xcc7(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0xcb6(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    23a6 <main+0x1296>
mov    -0x138(%rbp),%rax
movss  0xc97(%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    235a <main+0x124a>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    23c0 <main+0x12b0>
jp     23c0 <main+0x12b0>
jmp    23c7 <main+0x12b7>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0xc31(%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    2433 <main+0x1323>
mov    -0x138(%rbp),%rax
movss  0xc0a(%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    23e3 <main+0x12d3>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    244d <main+0x133d>
jp     244d <main+0x133d>
jmp    2454 <main+0x1344>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0xba4(%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    24bc <main+0x13ac>
mov    -0x138(%rbp),%rax
movss  0xb7d(%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    2470 <main+0x1360>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    24d6 <main+0x13c6>
jp     24d6 <main+0x13c6>
jmp    24dd <main+0x13cd>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0xb23(%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    2545 <main+0x1435>
mov    -0x138(%rbp),%rax
movss  0xaec(%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    24f9 <main+0x13e9>
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    25f9 <main+0x14e9>
mov    -0x5c(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    25a9 <main+0x1499>
mov    -0x138(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xa98(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    259d <main+0x148d>
jp     259d <main+0x148d>
jmp    25a4 <main+0x1494>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    25e6 <main+0x14d6>
mov    -0x138(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xa53(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    25da <main+0x14ca>
jp     25da <main+0x14ca>
jmp    25e1 <main+0x14d1>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    25e6 <main+0x14d6>
jmp    25eb <main+0x14db>
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    254c <main+0x143c>
movss  0xa07(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  0x9f6(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    266a <main+0x155a>
mov    -0x138(%rbp),%rax
movss  0x9d7(%rip),%xmm0
movss  %xmm0,-0x124(%rbp)
ff
movss  -0x124(%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    261a <main+0x150a>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    2684 <main+0x1574>
jp     2684 <main+0x1574>
jmp    268b <main+0x157b>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x975(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  0x964(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    26f8 <main+0x15e8>
mov    -0x138(%rbp),%rax
movss  0x945(%rip),%xmm0
movss  %xmm0,-0x128(%rbp)
ff
movss  -0x50(%rbp),%xmm0
divss  -0x128(%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    26ac <main+0x159c>
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    2712 <main+0x1602>
jp     2712 <main+0x1602>
jmp    2719 <main+0x1609>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x138(%rbp),%rax
movss  0x8e0(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  0x8cf(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0x8c2(%rip),%xmm0
movss  %xmm0,-0x12c(%rbp)
ff
movss  -0x12c(%rbp),%xmm0
ff
divss  -0x50(%rbp),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  %xmm0,(%rax)
movss  -0x4c(%rbp),%xmm0
ucomiss -0x50(%rbp),%xmm0
jne    277a <main+0x166a>
jp     277a <main+0x166a>
jmp    2781 <main+0x1671>
mov    $0x0,%al
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
movss  0xebd(%rip),%xmm1
nopw   0x0(%rax,%rax,1)
movss  (%rsp,%rax,4),%xmm2
ucomiss %xmm0,%xmm2
jne    118d <main+0x7d>
jp     118d <main+0x7d>
movss  0x4(%rsp,%rax,4),%xmm2
ucomiss %xmm1,%xmm2
jne    118d <main+0x7d>
jp     118d <main+0x7d>
add    $0x2,%rax
cmp    $0x20,%rax
jne    1160 <main+0x50>
xor    %eax,%eax
add    $0x88,%rsp
ret
xor    %eax,%eax
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 float
%55 = alloca float
%56 = alloca float
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
store i32 32, i32* %10
%57 = load i32, i32* %10
%58 = zext i32 %57 to i64
%59 = call i8* @llvm.stacksave()
store i8* %59, i8** %11
%60 = alloca i32, i64 %58
store i64 %58, i64* %12
%61 = load i32, i32* %10
%62 = zext i32 %61 to i64
%63 = alloca i64, i64 %62
store i64 %62, i64* %13
%64 = load i32, i32* %10
%65 = zext i32 %64 to i64
%66 = alloca float, i64 %65
store i64 %65, i64* %16
store i32 0, i32* %7
store i32 32, i32* %6
store i32 0, i32* %17
br label %67
67: ; preds = %77, %2
%68 = load i32, i32* %17
%69 = load i32, i32* %10
%70 = icmp slt i32 %68, %69
br i1 %70, label %71, label %80
71: ; preds = %67
%72 = load i32, i32* %7
%73 = add nsw i32 %72, 1
store i32 %73, i32* %7
%74 = load i32, i32* %17
%75 = sext i32 %74 to i64
%76 = getelementptr inbounds i32, i32* %60, i64 %75
store i32 %72, i32* %76
br label %77
77: ; preds = %71
%78 = load i32, i32* %17
%79 = add nsw i32 %78, 1
store i32 %79, i32* %17
br label %67
80: ; preds = %67
%81 = load i32, i32* %6
%82 = load i32, i32* %7
%83 = icmp ne i32 %81, %82
br i1 %83, label %84, label %86
84: ; preds = %80
%85 = call i32 (...) @abort()
unreachable
86: ; preds = %80
store i32 32, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %87
87: ; preds = %97, %86
%88 = load i32, i32* %17
%89 = load i32, i32* %10
%90 = icmp slt i32 %88, %89
br i1 %90, label %91, label %100
91: ; preds = %87
%92 = load i32, i32* %7
%93 = add nsw i32 %92, -1
store i32 %93, i32* %7
%94 = load i32, i32* %17
%95 = sext i32 %94 to i64
%96 = getelementptr inbounds i32, i32* %60, i64 %95
store i32 %92, i32* %96
br label %97
97: ; preds = %91
%98 = load i32, i32* %17
%99 = add nsw i32 %98, 1
store i32 %99, i32* %17
br label %87
100: ; preds = %87
%101 = load i32, i32* %6
%102 = load i32, i32* %7
%103 = icmp ne i32 %101, %102
br i1 %103, label %104, label %106
104: ; preds = %100
%105 = call i32 (...) @abort()
unreachable
106: ; preds = %100
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* %60, 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 %126
124: ; preds = %120
%125 = call i32 (...) @abort()
unreachable
126: ; preds = %120
store i32 32, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %127
127: ; preds = %137, %126
%128 = load i32, i32* %17
%129 = load i32, i32* %10
%130 = icmp slt i32 %128, %129
br i1 %130, label %131, label %140
131: ; preds = %127
%132 = load i32, i32* %7
%133 = add nsw i32 %132, -1
store i32 %133, i32* %7
%134 = load i32, i32* %17
%135 = sext i32 %134 to i64
%136 = getelementptr inbounds i32, i32* %60, i64 %135
store i32 %133, i32* %136
br label %137
137: ; preds = %131
%138 = load i32, i32* %17
%139 = add nsw i32 %138, 1
store i32 %139, i32* %17
br label %127
140: ; preds = %127
store i32 0, i32* %7
store i32 32, i32* %6
store i32 0, i32* %17
br label %141
141: ; preds = %152, %140
%142 = load i32, i32* %17
%143 = load i32, i32* %10
%144 = icmp slt i32 %142, %143
br i1 %144, label %145, label %155
145: ; preds = %141
store i32 1, i32* %18
%146 = load i32, i32* %18
%147 = load i32, i32* %7
%148 = add nsw i32 %147, %146
store i32 %148, i32* %7
%149 = load i32, i32* %17
%150 = sext i32 %149 to i64
%151 = getelementptr inbounds i32, i32* %60, i64 %150
store i32 %148, i32* %151
br label %152
152: ; preds = %145
%153 = load i32, i32* %17
%154 = add nsw i32 %153, 1
store i32 %154, i32* %17
br label %141
155: ; preds = %141
%156 = load i32, i32* %6
%157 = load i32, i32* %7
%158 = icmp ne i32 %156, %157
br i1 %158, label %159, label %161
159: ; preds = %155
%160 = call i32 (...) @abort()
unreachable
161: ; preds = %155
store i32 0, i32* %7
store i32 32, i32* %6
store i32 0, i32* %17
br label %162
162: ; preds = %173, %161
%163 = load i32, i32* %17
%164 = load i32, i32* %10
%165 = icmp slt i32 %163, %164
br i1 %165, label %166, label %176
166: ; preds = %162
store i32 1, i32* %19
%167 = load i32, i32* %7
%168 = load i32, i32* %19
%169 = add nsw i32 %167, %168
store i32 %169, i32* %7
%170 = load i32, i32* %17
%171 = sext i32 %170 to i64
%172 = getelementptr inbounds i32, i32* %60, i64 %171
store i32 %169, i32* %172
br label %173
173: ; preds = %166
%174 = load i32, i32* %17
%175 = add nsw i32 %174, 1
store i32 %175, i32* %17
br label %162
176: ; preds = %162
%177 = load i32, i32* %6
%178 = load i32, i32* %7
%179 = icmp ne i32 %177, %178
br i1 %179, label %180, label %182
180: ; preds = %176
%181 = call i32 (...) @abort()
unreachable
182: ; preds = %176
store i32 0, i32* %7
store i32 32, i32* %6
store i32 0, i32* %17
br label %183
183: ; preds = %194, %182
%184 = load i32, i32* %17
%185 = load i32, i32* %10
%186 = icmp slt i32 %184, %185
br i1 %186, label %187, label %197
187: ; preds = %183
store i32 1, i32* %20
%188 = load i32, i32* %20
%189 = load i32, i32* %7
%190 = add nsw i32 %188, %189
store i32 %190, i32* %7
%191 = load i32, i32* %17
%192 = sext i32 %191 to i64
%193 = getelementptr inbounds i32, i32* %60, i64 %192
store i32 %190, i32* %193
br label %194
194: ; preds = %187
%195 = load i32, i32* %17
%196 = add nsw i32 %195, 1
store i32 %196, i32* %17
br label %183
197: ; preds = %183
%198 = load i32, i32* %6
%199 = load i32, i32* %7
%200 = icmp ne i32 %198, %199
br i1 %200, label %201, label %203
201: ; preds = %197
%202 = call i32 (...) @abort()
unreachable
203: ; preds = %197
store i64 1, i64* %9
%204 = load i32, i32* %10
%205 = zext i32 %204 to i64
%206 = shl i64 1, %205
store i64 %206, i64* %8
store i32 0, i32* %17
br label %207
207: ; preds = %218, %203
%208 = load i32, i32* %17
%209 = load i32, i32* %10
%210 = icmp slt i32 %208, %209
br i1 %210, label %211, label %221
211: ; preds = %207
store i64 2, i64* %21
%212 = load i64, i64* %21
%213 = load i64, i64* %9
%214 = mul nsw i64 %213, %212
store i64 %214, i64* %9
%215 = load i32, i32* %17
%216 = sext i32 %215 to i64
%217 = getelementptr inbounds i64, i64* %63, i64 %216
store i64 %214, i64* %217
br label %218
218: ; preds = %211
%219 = load i32, i32* %17
%220 = add nsw i32 %219, 1
store i32 %220, i32* %17
br label %207
221: ; preds = %207
%222 = load i64, i64* %8
%223 = load i64, i64* %9
%224 = icmp ne i64 %222, %223
br i1 %224, label %225, label %227
225: ; preds = %221
%226 = call i32 (...) @abort()
unreachable
227: ; preds = %221
store i64 1, i64* %9
%228 = load i32, i32* %10
%229 = zext i32 %228 to i64
%230 = shl i64 1, %229
store i64 %230, i64* %8
store i32 0, i32* %17
br label %231
231: ; preds = %242, %227
%232 = load i32, i32* %17
%233 = load i32, i32* %10
%234 = icmp slt i32 %232, %233
br i1 %234, label %235, label %245
235: ; preds = %231
store i64 2, i64* %22
%236 = load i64, i64* %9
%237 = load i64, i64* %22
%238 = mul nsw i64 %236, %237
store i64 %238, i64* %9
%239 = load i32, i32* %17
%240 = sext i32 %239 to i64
%241 = getelementptr inbounds i64, i64* %63, i64 %240
store i64 %238, i64* %241
br label %242
242: ; preds = %235
%243 = load i32, i32* %17
%244 = add nsw i32 %243, 1
store i32 %244, i32* %17
br label %231
245: ; preds = %231
%246 = load i64, i64* %8
%247 = load i64, i64* %9
%248 = icmp ne i64 %246, %247
br i1 %248, label %249, label %251
249: ; preds = %245
%250 = call i32 (...) @abort()
unreachable
251: ; preds = %245
store i64 1, i64* %9
%252 = load i32, i32* %10
%253 = zext i32 %252 to i64
%254 = shl i64 1, %253
store i64 %254, i64* %8
store i32 0, i32* %17
br label %255
255: ; preds = %266, %251
%256 = load i32, i32* %17
%257 = load i32, i32* %10
%258 = icmp slt i32 %256, %257
br i1 %258, label %259, label %269
259: ; preds = %255
store i64 2, i64* %23
%260 = load i64, i64* %23
%261 = load i64, i64* %9
%262 = mul nsw i64 %260, %261
store i64 %262, i64* %9
%263 = load i32, i32* %17
%264 = sext i32 %263 to i64
%265 = getelementptr inbounds i64, i64* %63, i64 %264
store i64 %262, i64* %265
br label %266
266: ; preds = %259
%267 = load i32, i32* %17
%268 = add nsw i32 %267, 1
store i32 %268, i32* %17
br label %255
269: ; preds = %255
%270 = load i64, i64* %8
%271 = load i64, i64* %9
%272 = icmp ne i64 %270, %271
br i1 %272, label %273, label %275
273: ; preds = %269
%274 = call i32 (...) @abort()
unreachable
275: ; preds = %269
store i32 32, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %276
276: ; preds = %287, %275
%277 = load i32, i32* %17
%278 = load i32, i32* %10
%279 = icmp slt i32 %277, %278
br i1 %279, label %280, label %290
280: ; preds = %276
store i32 1, i32* %24
%281 = load i32, i32* %24
%282 = load i32, i32* %7
%283 = sub nsw i32 %282, %281
store i32 %283, i32* %7
%284 = load i32, i32* %17
%285 = sext i32 %284 to i64
%286 = getelementptr inbounds i32, i32* %60, i64 %285
store i32 %283, i32* %286
br label %287
287: ; preds = %280
%288 = load i32, i32* %17
%289 = add nsw i32 %288, 1
store i32 %289, i32* %17
br label %276
290: ; preds = %276
%291 = load i32, i32* %6
%292 = load i32, i32* %7
%293 = icmp ne i32 %291, %292
br i1 %293, label %294, label %296
294: ; preds = %290
%295 = call i32 (...) @abort()
unreachable
296: ; preds = %290
store i32 32, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %297
297: ; preds = %308, %296
%298 = load i32, i32* %17
%299 = load i32, i32* %10
%300 = icmp slt i32 %298, %299
br i1 %300, label %301, label %311
301: ; preds = %297
store i32 1, i32* %25
%302 = load i32, i32* %7
%303 = load i32, i32* %25
%304 = sub nsw i32 %302, %303
store i32 %304, i32* %7
%305 = load i32, i32* %17
%306 = sext i32 %305 to i64
%307 = getelementptr inbounds i32, i32* %60, i64 %306
store i32 %304, i32* %307
br label %308
308: ; preds = %301
%309 = load i32, i32* %17
%310 = add nsw i32 %309, 1
store i32 %310, i32* %17
br label %297
311: ; preds = %297
%312 = load i32, i32* %6
%313 = load i32, i32* %7
%314 = icmp ne i32 %312, %313
br i1 %314, label %315, label %317
315: ; preds = %311
%316 = call i32 (...) @abort()
unreachable
317: ; preds = %311
store i32 32, i32* %7
store i32 32, i32* %6
store i32 0, i32* %17
br label %318
318: ; preds = %329, %317
%319 = load i32, i32* %17
%320 = load i32, i32* %10
%321 = icmp slt i32 %319, %320
br i1 %321, label %322, label %332
322: ; preds = %318
store i32 1, i32* %26
%323 = load i32, i32* %26
%324 = load i32, i32* %7
%325 = sub nsw i32 %323, %324
store i32 %325, i32* %7
%326 = load i32, i32* %17
%327 = sext i32 %326 to i64
%328 = getelementptr inbounds i32, i32* %60, i64 %327
store i32 %325, i32* %328
br label %329
329: ; preds = %322
%330 = load i32, i32* %17
%331 = add nsw i32 %330, 1
store i32 %331, i32* %17
br label %318
332: ; preds = %318
%333 = load i32, i32* %6
%334 = load i32, i32* %7
%335 = icmp ne i32 %333, %334
br i1 %335, label %336, label %338
336: ; preds = %332
%337 = call i32 (...) @abort()
unreachable
338: ; preds = %332
store i64 4294967296, i64* %9
store i64 1, i64* %8
store i32 0, i32* %17
br label %339
339: ; preds = %350, %338
%340 = load i32, i32* %17
%341 = load i32, i32* %10
%342 = icmp slt i32 %340, %341
br i1 %342, label %343, label %353
343: ; preds = %339
store i64 2, i64* %27
%344 = load i64, i64* %27
%345 = load i64, i64* %9
%346 = sdiv i64 %345, %344
store i64 %346, i64* %9
%347 = load i32, i32* %17
%348 = sext i32 %347 to i64
%349 = getelementptr inbounds i64, i64* %63, i64 %348
store i64 %346, i64* %349
br label %350
350: ; preds = %343
%351 = load i32, i32* %17
%352 = add nsw i32 %351, 1
store i32 %352, i32* %17
br label %339
353: ; preds = %339
%354 = load i64, i64* %8
%355 = load i64, i64* %9
%356 = icmp ne i64 %354, %355
br i1 %356, label %357, label %359
357: ; preds = %353
%358 = call i32 (...) @abort()
unreachable
359: ; preds = %353
store i64 4294967296, i64* %9
store i64 1, i64* %8
store i32 0, i32* %17
br label %360
360: ; preds = %371, %359
%361 = load i32, i32* %17
%362 = load i32, i32* %10
%363 = icmp slt i32 %361, %362
br i1 %363, label %364, label %374
364: ; preds = %360
store i64 2, i64* %28
%365 = load i64, i64* %9
%366 = load i64, i64* %28
%367 = sdiv i64 %365, %366
store i64 %367, i64* %9
%368 = load i32, i32* %17
%369 = sext i32 %368 to i64
%370 = getelementptr inbounds i64, i64* %63, i64 %369
store i64 %367, i64* %370
br label %371
371: ; preds = %364
%372 = load i32, i32* %17
%373 = add nsw i32 %372, 1
store i32 %373, i32* %17
br label %360
374: ; preds = %360
%375 = load i64, i64* %8
%376 = load i64, i64* %9
%377 = icmp ne i64 %375, %376
br i1 %377, label %378, label %380
378: ; preds = %374
%379 = call i32 (...) @abort()
unreachable
380: ; preds = %374
store i64 2, i64* %9
store i64 2, i64* %8
store i32 0, i32* %17
br label %381
381: ; preds = %395, %380
%382 = load i32, i32* %17
%383 = load i32, i32* %10
%384 = icmp slt i32 %382, %383
br i1 %384, label %385, label %398
385: ; preds = %381
%386 = load i32, i32* %10
%387 = zext i32 %386 to i64
%388 = shl i64 1, %387
store i64 %388, i64* %29
%389 = load i64, i64* %29
%390 = load i64, i64* %9
%391 = sdiv i64 %389, %390
store i64 %391, i64* %9
%392 = load i32, i32* %17
%393 = sext i32 %392 to i64
%394 = getelementptr inbounds i64, i64* %63, i64 %393
store i64 %391, i64* %394
br label %395
395: ; preds = %385
%396 = load i32, i32* %17
%397 = add nsw i32 %396, 1
store i32 %397, i32* %17
br label %381
398: ; preds = %381
%399 = load i64, i64* %8
%400 = load i64, i64* %9
%401 = icmp ne i64 %399, %400
br i1 %401, label %402, label %404
402: ; preds = %398
%403 = call i32 (...) @abort()
unreachable
404: ; preds = %398
store i32 -1, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %405
405: ; preds = %418, %404
%406 = load i32, i32* %17
%407 = load i32, i32* %10
%408 = icmp slt i32 %406, %407
br i1 %408, label %409, label %421
409: ; preds = %405
%410 = load i32, i32* %17
%411 = shl i32 1, %410
store i32 %411, i32* %30
%412 = load i32, i32* %30
%413 = load i32, i32* %7
%414 = and i32 %413, %412
store i32 %414, i32* %7
%415 = load i32, i32* %17
%416 = sext i32 %415 to i64
%417 = getelementptr inbounds i32, i32* %60, i64 %416
store i32 %414, i32* %417
br label %418
418: ; preds = %409
%419 = load i32, i32* %17
%420 = add nsw i32 %419, 1
store i32 %420, i32* %17
br label %405
421: ; preds = %405
%422 = load i32, i32* %6
%423 = load i32, i32* %7
%424 = icmp ne i32 %422, %423
br i1 %424, label %425, label %427
425: ; preds = %421
%426 = call i32 (...) @abort()
unreachable
427: ; preds = %421
store i32 -1, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %428
428: ; preds = %441, %427
%429 = load i32, i32* %17
%430 = load i32, i32* %10
%431 = icmp slt i32 %429, %430
br i1 %431, label %432, label %444
432: ; preds = %428
%433 = load i32, i32* %17
%434 = shl i32 1, %433
store i32 %434, i32* %31
%435 = load i32, i32* %7
%436 = load i32, i32* %31
%437 = and i32 %435, %436
store i32 %437, i32* %7
%438 = load i32, i32* %17
%439 = sext i32 %438 to i64
%440 = getelementptr inbounds i32, i32* %60, i64 %439
store i32 %437, i32* %440
br label %441
441: ; preds = %432
%442 = load i32, i32* %17
%443 = add nsw i32 %442, 1
store i32 %443, i32* %17
br label %428
444: ; preds = %428
%445 = load i32, i32* %6
%446 = load i32, i32* %7
%447 = icmp ne i32 %445, %446
br i1 %447, label %448, label %450
448: ; preds = %444
%449 = call i32 (...) @abort()
unreachable
450: ; preds = %444
store i32 -1, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %451
451: ; preds = %464, %450
%452 = load i32, i32* %17
%453 = load i32, i32* %10
%454 = icmp slt i32 %452, %453
br i1 %454, label %455, label %467
455: ; preds = %451
%456 = load i32, i32* %17
%457 = shl i32 1, %456
store i32 %457, i32* %32
%458 = load i32, i32* %32
%459 = load i32, i32* %7
%460 = and i32 %458, %459
store i32 %460, i32* %7
%461 = load i32, i32* %17
%462 = sext i32 %461 to i64
%463 = getelementptr inbounds i32, i32* %60, i64 %462
store i32 %460, i32* %463
br label %464
464: ; preds = %455
%465 = load i32, i32* %17
%466 = add nsw i32 %465, 1
store i32 %466, i32* %17
br label %451
467: ; preds = %451
%468 = load i32, i32* %6
%469 = load i32, i32* %7
%470 = icmp ne i32 %468, %469
br i1 %470, label %471, label %473
471: ; preds = %467
%472 = call i32 (...) @abort()
unreachable
473: ; preds = %467
store i32 -1, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %474
474: ; preds = %487, %473
%475 = load i32, i32* %17
%476 = load i32, i32* %10
%477 = icmp slt i32 %475, %476
br i1 %477, label %478, label %490
478: ; preds = %474
%479 = load i32, i32* %17
%480 = shl i32 1, %479
store i32 %480, i32* %33
%481 = load i32, i32* %33
%482 = load i32, i32* %7
%483 = xor i32 %482, %481
store i32 %483, i32* %7
%484 = load i32, i32* %17
%485 = sext i32 %484 to i64
%486 = getelementptr inbounds i32, i32* %60, i64 %485
store i32 %483, i32* %486
br label %487
487: ; preds = %478
%488 = load i32, i32* %17
%489 = add nsw i32 %488, 1
store i32 %489, i32* %17
br label %474
490: ; preds = %474
%491 = load i32, i32* %6
%492 = load i32, i32* %7
%493 = icmp ne i32 %491, %492
br i1 %493, label %494, label %496
494: ; preds = %490
%495 = call i32 (...) @abort()
unreachable
496: ; preds = %490
store i32 -1, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %497
497: ; preds = %510, %496
%498 = load i32, i32* %17
%499 = load i32, i32* %10
%500 = icmp slt i32 %498, %499
br i1 %500, label %501, label %513
501: ; preds = %497
%502 = load i32, i32* %17
%503 = shl i32 1, %502
store i32 %503, i32* %34
%504 = load i32, i32* %7
%505 = load i32, i32* %34
%506 = xor i32 %504, %505
store i32 %506, i32* %7
%507 = load i32, i32* %17
%508 = sext i32 %507 to i64
%509 = getelementptr inbounds i32, i32* %60, i64 %508
store i32 %506, i32* %509
br label %510
510: ; preds = %501
%511 = load i32, i32* %17
%512 = add nsw i32 %511, 1
store i32 %512, i32* %17
br label %497
513: ; preds = %497
%514 = load i32, i32* %6
%515 = load i32, i32* %7
%516 = icmp ne i32 %514, %515
br i1 %516, label %517, label %519
517: ; preds = %513
%518 = call i32 (...) @abort()
unreachable
519: ; preds = %513
store i32 -1, i32* %7
store i32 0, i32* %6
store i32 0, i32* %17
br label %520
520: ; preds = %533, %519
%521 = load i32, i32* %17
%522 = load i32, i32* %10
%523 = icmp slt i32 %521, %522
br i1 %523, label %524, label %536
524: ; preds = %520
%525 = load i32, i32* %17
%526 = shl i32 1, %525
store i32 %526, i32* %35
%527 = load i32, i32* %35
%528 = load i32, i32* %7
%529 = xor i32 %527, %528
store i32 %529, i32* %7
%530 = load i32, i32* %17
%531 = sext i32 %530 to i64
%532 = getelementptr inbounds i32, i32* %60, i64 %531
store i32 %529, i32* %532
br label %533
533: ; preds = %524
%534 = load i32, i32* %17
%535 = add nsw i32 %534, 1
store i32 %535, i32* %17
br label %520
536: ; preds = %520
%537 = load i32, i32* %6
%538 = load i32, i32* %7
%539 = icmp ne i32 %537, %538
br i1 %539, label %540, label %542
540: ; preds = %536
%541 = call i32 (...) @abort()
unreachable
542: ; preds = %536
store i32 0, i32* %7
store i32 -1, i32* %6
store i32 0, i32* %17
br label %543
543: ; preds = %556, %542
%544 = load i32, i32* %17
%545 = load i32, i32* %10
%546 = icmp slt i32 %544, %545
br i1 %546, label %547, label %559
547: ; preds = %543
%548 = load i32, i32* %17
%549 = shl i32 1, %548
store i32 %549, i32* %36
%550 = load i32, i32* %36
%551 = load i32, i32* %7
%552 = or i32 %551, %550
store i32 %552, i32* %7
%553 = load i32, i32* %17
%554 = sext i32 %553 to i64
%555 = getelementptr inbounds i32, i32* %60, i64 %554
store i32 %552, i32* %555
br label %556
556: ; preds = %547
%557 = load i32, i32* %17
%558 = add nsw i32 %557, 1
store i32 %558, i32* %17
br label %543
559: ; preds = %543
%560 = load i32, i32* %6
%561 = load i32, i32* %7
%562 = icmp ne i32 %560, %561
br i1 %562, label %563, label %565
563: ; preds = %559
%564 = call i32 (...) @abort()
unreachable
565: ; preds = %559
store i32 0, i32* %7
store i32 -1, i32* %6
store i32 0, i32* %17
br label %566
566: ; preds = %579, %565
%567 = load i32, i32* %17
%568 = load i32, i32* %10
%569 = icmp slt i32 %567, %568
br i1 %569, label %570, label %582
570: ; preds = %566
%571 = load i32, i32* %17
%572 = shl i32 1, %571
store i32 %572, i32* %37
%573 = load i32, i32* %7
%574 = load i32, i32* %37
%575 = or i32 %573, %574
store i32 %575, i32* %7
%576 = load i32, i32* %17
%577 = sext i32 %576 to i64
%578 = getelementptr inbounds i32, i32* %60, i64 %577
store i32 %575, i32* %578
br label %579
579: ; preds = %570
%580 = load i32, i32* %17
%581 = add nsw i32 %580, 1
store i32 %581, i32* %17
br label %566
582: ; preds = %566
%583 = load i32, i32* %6
%584 = load i32, i32* %7
%585 = icmp ne i32 %583, %584
br i1 %585, label %586, label %588
586: ; preds = %582
%587 = call i32 (...) @abort()
unreachable
588: ; preds = %582
store i32 0, i32* %7
store i32 -1, i32* %6
store i32 0, i32* %17
br label %589
589: ; preds = %602, %588
%590 = load i32, i32* %17
%591 = load i32, i32* %10
%592 = icmp slt i32 %590, %591
br i1 %592, label %593, label %605
593: ; preds = %589
%594 = load i32, i32* %17
%595 = shl i32 1, %594
store i32 %595, i32* %38
%596 = load i32, i32* %38
%597 = load i32, i32* %7
%598 = or i32 %596, %597
store i32 %598, i32* %7
%599 = load i32, i32* %17
%600 = sext i32 %599 to i64
%601 = getelementptr inbounds i32, i32* %60, i64 %600
store i32 %598, i32* %601
br label %602
602: ; preds = %593
%603 = load i32, i32* %17
%604 = add nsw i32 %603, 1
store i32 %604, i32* %17
br label %589
605: ; preds = %589
%606 = load i32, i32* %6
%607 = load i32, i32* %7
%608 = icmp ne i32 %606, %607
br i1 %608, label %609, label %611
609: ; preds = %605
%610 = call i32 (...) @abort()
unreachable
611: ; preds = %605
store i64 1, i64* %9
%612 = load i32, i32* %10
%613 = zext i32 %612 to i64
%614 = shl i64 1, %613
store i64 %614, i64* %8
store i32 0, i32* %17
br label %615
615: ; preds = %627, %611
%616 = load i32, i32* %17
%617 = load i32, i32* %10
%618 = icmp slt i32 %616, %617
br i1 %618, label %619, label %630
619: ; preds = %615
store i32 1, i32* %39
%620 = load i32, i32* %39
%621 = load i64, i64* %9
%622 = zext i32 %620 to i64
%623 = shl i64 %621, %622
store i64 %623, i64* %9
%624 = load i32, i32* %17
%625 = sext i32 %624 to i64
%626 = getelementptr inbounds i64, i64* %63, i64 %625
store i64 %623, i64* %626
br label %627
627: ; preds = %619
%628 = load i32, i32* %17
%629 = add nsw i32 %628, 1
store i32 %629, i32* %17
br label %615
630: ; preds = %615
%631 = load i64, i64* %8
%632 = load i64, i64* %9
%633 = icmp ne i64 %631, %632
br i1 %633, label %634, label %636
634: ; preds = %630
%635 = call i32 (...) @abort()
unreachable
636: ; preds = %630
store i64 1, i64* %9
%637 = load i32, i32* %10
%638 = zext i32 %637 to i64
%639 = shl i64 1, %638
store i64 %639, i64* %8
store i32 0, i32* %17
br label %640
640: ; preds = %653, %636
%641 = load i32, i32* %17
%642 = load i32, i32* %10
%643 = icmp slt i32 %641, %642
br i1 %643, label %644, label %656
644: ; preds = %640
store i32 1, i32* %40
%645 = load i64, i64* %9
%646 = load i32, i32* %40
%647 = zext i32 %646 to i64
%648 = shl i64 %645, %647
store i64 %648, i64* %9
%649 = trunc i64 %648 to i32
%650 = load i32, i32* %17
%651 = sext i32 %650 to i64
%652 = getelementptr inbounds i32, i32* %60, i64 %651
store i32 %649, i32* %652
br label %653
653: ; preds = %644
%654 = load i32, i32* %17
%655 = add nsw i32 %654, 1
store i32 %655, i32* %17
br label %640
656: ; preds = %640
%657 = load i64, i64* %8
%658 = load i64, i64* %9
%659 = icmp ne i64 %657, %658
br i1 %659, label %660, label %662
660: ; preds = %656
%661 = call i32 (...) @abort()
unreachable
662: ; preds = %656
store i64 1, i64* %9
store i64 2, i64* %8
store i64 1, i64* %41
%663 = load i64, i64* %41
%664 = load i64, i64* %9
%665 = shl i64 %663, %664
store i64 %665, i64* %9
%666 = getelementptr inbounds i64, i64* %63, i64 0
store i64 %665, i64* %666
%667 = load i64, i64* %8
%668 = load i64, i64* %9
%669 = icmp ne i64 %667, %668
br i1 %669, label %670, label %672
670: ; preds = %662
%671 = call i32 (...) @abort()
unreachable
672: ; preds = %662
%673 = load i32, i32* %10
%674 = zext i32 %673 to i64
%675 = shl i64 1, %674
store i64 %675, i64* %9
store i64 1, i64* %8
store i32 0, i32* %17
br label %676
676: ; preds = %687, %672
%677 = load i32, i32* %17
%678 = load i32, i32* %10
%679 = icmp slt i32 %677, %678
br i1 %679, label %680, label %690
680: ; preds = %676
store i64 1, i64* %42
%681 = load i64, i64* %42
%682 = load i64, i64* %9
%683 = ashr i64 %682, %681
store i64 %683, i64* %9
%684 = load i32, i32* %17
%685 = sext i32 %684 to i64
%686 = getelementptr inbounds i64, i64* %63, i64 %685
store i64 %683, i64* %686
br label %687
687: ; preds = %680
%688 = load i32, i32* %17
%689 = add nsw i32 %688, 1
store i32 %689, i32* %17
br label %676
690: ; preds = %676
%691 = load i64, i64* %8
%692 = load i64, i64* %9
%693 = icmp ne i64 %691, %692
br i1 %693, label %694, label %696
694: ; preds = %690
%695 = call i32 (...) @abort()
unreachable
696: ; preds = %690
%697 = load i32, i32* %10
%698 = zext i32 %697 to i64
%699 = shl i64 1, %698
store i64 %699, i64* %9
store i64 1, i64* %8
store i32 0, i32* %17
br label %700
700: ; preds = %712, %696
%701 = load i32, i32* %17
%702 = load i32, i32* %10
%703 = icmp slt i32 %701, %702
br i1 %703, label %704, label %715
704: ; preds = %700
store i32 1, i32* %43
%705 = load i64, i64* %9
%706 = load i32, i32* %43
%707 = zext i32 %706 to i64
%708 = ashr i64 %705, %707
store i64 %708, i64* %9
%709 = load i32, i32* %17
%710 = sext i32 %709 to i64
%711 = getelementptr inbounds i64, i64* %63, i64 %710
store i64 %708, i64* %711
br label %712
712: ; preds = %704
%713 = load i32, i32* %17
%714 = add nsw i32 %713, 1
store i32 %714, i32* %17
br label %700
715: ; preds = %700
%716 = load i64, i64* %8
%717 = load i64, i64* %9
%718 = icmp ne i64 %716, %717
br i1 %718, label %719, label %721
719: ; preds = %715
%720 = call i32 (...) @abort()
unreachable
721: ; preds = %715
store i64 -9223372036854775808, i64* %9
store i64 4294967296, i64* %8
store i64 4294967296, i64* %44
%722 = load i64, i64* %44
%723 = load i64, i64* %9
%724 = ashr i64 %722, %723
store i64 %724, i64* %9
%725 = getelementptr inbounds i64, i64* %63, i64 0
store i64 %724, i64* %725
%726 = load i64, i64* %8
%727 = load i64, i64* %9
%728 = icmp ne i64 %726, %727
br i1 %728, label %729, label %731
729: ; preds = %721
%730 = call i32 (...) @abort()
unreachable
731: ; preds = %721
store float 0.000000e+00, float* %15
store float 3.200000e+01, float* %14
store i32 0, i32* %17
br label %732
732: ; preds = %742, %731
%733 = load i32, i32* %17
%734 = load i32, i32* %10
%735 = icmp slt i32 %733, %734
br i1 %735, label %736, label %745
736: ; preds = %732
%737 = load float, float* %15
%738 = fadd float %737, 1.000000e+00
store float %738, float* %15
%739 = load i32, i32* %17
%740 = sext i32 %739 to i64
%741 = getelementptr inbounds float, float* %66, i64 %740
store float %737, float* %741
br label %742
742: ; preds = %736
%743 = load i32, i32* %17
%744 = add nsw i32 %743, 1
store i32 %744, i32* %17
br label %732
745: ; preds = %732
%746 = load float, float* %14
%747 = load float, float* %15
%748 = fcmp une float %746, %747
br i1 %748, label %749, label %751
749: ; preds = %745
%750 = call i32 (...) @abort()
unreachable
751: ; preds = %745
store float 3.200000e+01, float* %15
store float 0.000000e+00, float* %14
store i32 0, i32* %17
br label %752
752: ; preds = %762, %751
%753 = load i32, i32* %17
%754 = load i32, i32* %10
%755 = icmp slt i32 %753, %754
br i1 %755, label %756, label %765
756: ; preds = %752
%757 = load float, float* %15
%758 = fadd float %757, -1.000000e+00
store float %758, float* %15
%759 = load i32, i32* %17
%760 = sext i32 %759 to i64
%761 = getelementptr inbounds float, float* %66, i64 %760
store float %757, float* %761
br label %762
762: ; preds = %756
%763 = load i32, i32* %17
%764 = add nsw i32 %763, 1
store i32 %764, i32* %17
br label %752
765: ; preds = %752
%766 = load float, float* %14
%767 = load float, float* %15
%768 = fcmp une float %766, %767
br i1 %768, label %769, label %771
769: ; preds = %765
%770 = call i32 (...) @abort()
unreachable
771: ; preds = %765
store float 0.000000e+00, float* %15
store float 3.200000e+01, float* %14
store i32 0, i32* %17
br label %772
772: ; preds = %782, %771
%773 = load i32, i32* %17
%774 = load i32, i32* %10
%775 = icmp slt i32 %773, %774
br i1 %775, label %776, label %785
776: ; preds = %772
%777 = load float, float* %15
%778 = fadd float %777, 1.000000e+00
store float %778, float* %15
%779 = load i32, i32* %17
%780 = sext i32 %779 to i64
%781 = getelementptr inbounds float, float* %66, i64 %780
store float %778, float* %781
br label %782
782: ; preds = %776
%783 = load i32, i32* %17
%784 = add nsw i32 %783, 1
store i32 %784, i32* %17
br label %772
785: ; preds = %772
%786 = load float, float* %14
%787 = load float, float* %15
%788 = fcmp une float %786, %787
br i1 %788, label %789, label %791
789: ; preds = %785
%790 = call i32 (...) @abort()
unreachable
791: ; preds = %785
store float 3.200000e+01, float* %15
store float 0.000000e+00, float* %14
store i32 0, i32* %17
br label %792
792: ; preds = %802, %791
%793 = load i32, i32* %17
%794 = load i32, i32* %10
%795 = icmp slt i32 %793, %794
br i1 %795, label %796, label %805
796: ; preds = %792
%797 = load float, float* %15
%798 = fadd float %797, -1.000000e+00
store float %798, float* %15
%799 = load i32, i32* %17
%800 = sext i32 %799 to i64
%801 = getelementptr inbounds float, float* %66, i64 %800
store float %798, float* %801
br label %802
802: ; preds = %796
%803 = load i32, i32* %17
%804 = add nsw i32 %803, 1
store i32 %804, i32* %17
br label %792
805: ; preds = %792
%806 = load float, float* %14
%807 = load float, float* %15
%808 = fcmp une float %806, %807
br i1 %808, label %809, label %811
809: ; preds = %805
%810 = call i32 (...) @abort()
unreachable
811: ; preds = %805
store float 0.000000e+00, float* %15
store float 3.200000e+01, float* %14
store i32 0, i32* %17
br label %812
812: ; preds = %823, %811
%813 = load i32, i32* %17
%814 = load i32, i32* %10
%815 = icmp slt i32 %813, %814
br i1 %815, label %816, label %826
816: ; preds = %812
store float 1.000000e+00, float* %45
%817 = load float, float* %45
%818 = load float, float* %15
%819 = fadd float %818, %817
store float %819, float* %15
%820 = load i32, i32* %17
%821 = sext i32 %820 to i64
%822 = getelementptr inbounds float, float* %66, i64 %821
store float %819, float* %822
br label %823
823: ; preds = %816
%824 = load i32, i32* %17
%825 = add nsw i32 %824, 1
store i32 %825, i32* %17
br label %812
826: ; preds = %812
%827 = load float, float* %14
%828 = load float, float* %15
%829 = fcmp une float %827, %828
br i1 %829, label %830, label %832
830: ; preds = %826
%831 = call i32 (...) @abort()
unreachable
832: ; preds = %826
store float 0.000000e+00, float* %15
store float 3.200000e+01, float* %14
store i32 0, i32* %17
br label %833
833: ; preds = %844, %832
%834 = load i32, i32* %17
%835 = load i32, i32* %10
%836 = icmp slt i32 %834, %835
br i1 %836, label %837, label %847
837: ; preds = %833
store float 1.000000e+00, float* %46
%838 = load float, float* %15
%839 = load float, float* %46
%840 = fadd float %838, %839
store float %840, float* %15
%841 = load i32, i32* %17
%842 = sext i32 %841 to i64
%843 = getelementptr inbounds float, float* %66, i64 %842
store float %840, float* %843
br label %844
844: ; preds = %837
%845 = load i32, i32* %17
%846 = add nsw i32 %845, 1
store i32 %846, i32* %17
br label %833
847: ; preds = %833
%848 = load float, float* %14
%849 = load float, float* %15
%850 = fcmp une float %848, %849
br i1 %850, label %851, label %853
851: ; preds = %847
%852 = call i32 (...) @abort()
unreachable
853: ; preds = %847
store float 0.000000e+00, float* %15
store float 3.200000e+01, float* %14
store i32 0, i32* %17
br label %854
854: ; preds = %865, %853
%855 = load i32, i32* %17
%856 = load i32, i32* %10
%857 = icmp slt i32 %855, %856
br i1 %857, label %858, label %868
858: ; preds = %854
store float 1.000000e+00, float* %47
%859 = load float, float* %47
%860 = load float, float* %15
%861 = fadd float %859, %860
store float %861, float* %15
%862 = load i32, i32* %17
%863 = sext i32 %862 to i64
%864 = getelementptr inbounds float, float* %66, i64 %863
store float %861, float* %864
br label %865
865: ; preds = %858
%866 = load i32, i32* %17
%867 = add nsw i32 %866, 1
store i32 %867, i32* %17
br label %854
868: ; preds = %854
%869 = load float, float* %14
%870 = load float, float* %15
%871 = fcmp une float %869, %870
br i1 %871, label %872, label %874
872: ; preds = %868
%873 = call i32 (...) @abort()
unreachable
874: ; preds = %868
store float 1.000000e+00, float* %15
store float 0x41F0000000000000, float* %14
store i32 0, i32* %17
br label %875
875: ; preds = %886, %874
%876 = load i32, i32* %17
%877 = load i32, i32* %10
%878 = icmp slt i32 %876, %877
br i1 %878, label %879, label %889
879: ; preds = %875
store float 2.000000e+00, float* %48
%880 = load float, float* %48
%881 = load float, float* %15
%882 = fmul float %881, %880
store float %882, float* %15
%883 = load i32, i32* %17
%884 = sext i32 %883 to i64
%885 = getelementptr inbounds float, float* %66, i64 %884
store float %882, float* %885
br label %886
886: ; preds = %879
%887 = load i32, i32* %17
%888 = add nsw i32 %887, 1
store i32 %888, i32* %17
br label %875
889: ; preds = %875
%890 = load float, float* %14
%891 = load float, float* %15
%892 = fcmp une float %890, %891
br i1 %892, label %893, label %895
893: ; preds = %889
%894 = call i32 (...) @abort()
unreachable
895: ; preds = %889
store float 1.000000e+00, float* %15
store float 0x41F0000000000000, float* %14
store i32 0, i32* %17
br label %896
896: ; preds = %908, %895
%897 = load i32, i32* %17
%898 = load i32, i32* %10
%899 = icmp slt i32 %897, %898
br i1 %899, label %900, label %911
900: ; preds = %896
store i64 2, i64* %49
%901 = load float, float* %15
%902 = load i64, i64* %49
%903 = sitofp i64 %902 to float
%904 = fmul float %901, %903
store float %904, float* %15
%905 = load i32, i32* %17
%906 = sext i32 %905 to i64
%907 = getelementptr inbounds float, float* %66, i64 %906
store float %904, float* %907
br label %908
908: ; preds = %900
%909 = load i32, i32* %17
%910 = add nsw i32 %909, 1
store i32 %910, i32* %17
br label %896
911: ; preds = %896
%912 = load float, float* %14
%913 = load float, float* %15
%914 = fcmp une float %912, %913
br i1 %914, label %915, label %917
915: ; preds = %911
%916 = call i32 (...) @abort()
unreachable
917: ; preds = %911
store float 1.000000e+00, float* %15
store float 0x41F0000000000000, float* %14
store i32 0, i32* %17
br label %918
918: ; preds = %929, %917
%919 = load i32, i32* %17
%920 = load i32, i32* %10
%921 = icmp slt i32 %919, %920
br i1 %921, label %922, label %932
922: ; preds = %918
store float 2.000000e+00, float* %50
%923 = load float, float* %50
%924 = load float, float* %15
%925 = fmul float %923, %924
store float %925, float* %15
%926 = load i32, i32* %17
%927 = sext i32 %926 to i64
%928 = getelementptr inbounds float, float* %66, i64 %927
store float %925, float* %928
br label %929
929: ; preds = %922
%930 = load i32, i32* %17
%931 = add nsw i32 %930, 1
store i32 %931, i32* %17
br label %918
932: ; preds = %918
%933 = load float, float* %14
%934 = load float, float* %15
%935 = fcmp une float %933, %934
br i1 %935, label %936, label %938
936: ; preds = %932
%937 = call i32 (...) @abort()
unreachable
938: ; preds = %932
store float 3.200000e+01, float* %15
store float 0.000000e+00, float* %14
store i32 0, i32* %17
br label %939
939: ; preds = %950, %938
%940 = load i32, i32* %17
%941 = load i32, i32* %10
%942 = icmp slt i32 %940, %941
br i1 %942, label %943, label %953
943: ; preds = %939
store float 1.000000e+00, float* %51
%944 = load float, float* %51
%945 = load float, float* %15
%946 = fsub float %945, %944
store float %946, float* %15
%947 = load i32, i32* %17
%948 = sext i32 %947 to i64
%949 = getelementptr inbounds float, float* %66, i64 %948
store float %946, float* %949
br label %950
950: ; preds = %943
%951 = load i32, i32* %17
%952 = add nsw i32 %951, 1
store i32 %952, i32* %17
br label %939
953: ; preds = %939
%954 = load float, float* %14
%955 = load float, float* %15
%956 = fcmp une float %954, %955
br i1 %956, label %957, label %959
957: ; preds = %953
%958 = call i32 (...) @abort()
unreachable
959: ; preds = %953
store float 3.200000e+01, float* %15
store float 0.000000e+00, float* %14
store i32 0, i32* %17
br label %960
960: ; preds = %971, %959
%961 = load i32, i32* %17
%962 = load i32, i32* %10
%963 = icmp slt i32 %961, %962
br i1 %963, label %964, label %974
964: ; preds = %960
store float 1.000000e+00, float* %52
%965 = load float, float* %15
%966 = load float, float* %52
%967 = fsub float %965, %966
store float %967, float* %15
%968 = load i32, i32* %17
%969 = sext i32 %968 to i64
%970 = getelementptr inbounds float, float* %66, i64 %969
store float %967, float* %970
br label %971
971: ; preds = %964
%972 = load i32, i32* %17
%973 = add nsw i32 %972, 1
store i32 %973, i32* %17
br label %960
974: ; preds = %960
%975 = load float, float* %14
%976 = load float, float* %15
%977 = fcmp une float %975, %976
br i1 %977, label %978, label %980
978: ; preds = %974
%979 = call i32 (...) @abort()
unreachable
980: ; preds = %974
store float 1.000000e+00, float* %15
store float 0.000000e+00, float* %14
store i32 0, i32* %17
br label %981
981: ; preds = %992, %980
%982 = load i32, i32* %17
%983 = load i32, i32* %10
%984 = icmp slt i32 %982, %983
br i1 %984, label %985, label %995
985: ; preds = %981
store float 3.200000e+01, float* %53
%986 = load float, float* %53
%987 = load float, float* %15
%988 = fsub float %986, %987
store float %988, float* %15
%989 = load i32, i32* %17
%990 = sext i32 %989 to i64
%991 = getelementptr inbounds float, float* %66, i64 %990
store float %988, float* %991
br label %992
992: ; preds = %985
%993 = load i32, i32* %17
%994 = add nsw i32 %993, 1
store i32 %994, i32* %17
br label %981
995: ; preds = %981
store i32 0, i32* %17
br label %996
996: ; preds = %1025, %995
%997 = load i32, i32* %17
%998 = load i32, i32* %10
%999 = icmp slt i32 %997, %998
br i1 %999, label %1000, label %1028
1000: ; preds = %996
%1001 = load i32, i32* %17
%1002 = srem i32 %1001, 2
%1003 = icmp eq i32 %1002, 0
br i1 %1003, label %1004, label %1014
1004: ; preds = %1000
%1005 = load i32, i32* %17
%1006 = sext i32 %1005 to i64
%1007 = getelementptr inbounds float, float* %66, i64 %1006
%1008 = load float, float* %1007
%1009 = fpext float %1008 to double
%1010 = fcmp une double %1009, 3.100000e+01
br i1 %1010, label %1011, label %1013
1011: ; preds = %1004
%1012 = call i32 (...) @abort()
unreachable
1013: ; preds = %1004
br label %1024
1014: ; preds = %1000
%1015 = load i32, i32* %17
%1016 = sext i32 %1015 to i64
%1017 = getelementptr inbounds float, float* %66, i64 %1016
%1018 = load float, float* %1017
%1019 = fpext float %1018 to double
%1020 = fcmp une double %1019, 1.000000e+00
br i1 %1020, label %1021, label %1023
1021: ; preds = %1014
%1022 = call i32 (...) @abort()
unreachable
1023: ; preds = %1014
br label %1024
1024: ; preds = %1023, %1013
br label %1025
1025: ; preds = %1024
%1026 = load i32, i32* %17
%1027 = add nsw i32 %1026, 1
store i32 %1027, i32* %17
br label %996
1028: ; preds = %996
store float 1.000000e+00, float* %14
store float 0x41F0000000000000, float* %15
store i32 0, i32* %17
br label %1029
1029: ; preds = %1040, %1028
%1030 = load i32, i32* %17
%1031 = load i32, i32* %10
%1032 = icmp slt i32 %1030, %1031
br i1 %1032, label %1033, label %1043
1033: ; preds = %1029
store float 2.000000e+00, float* %54
%1034 = load float, float* %54
%1035 = load float, float* %15
%1036 = fdiv float %1035, %1034
store float %1036, float* %15
%1037 = load i32, i32* %17
%1038 = sext i32 %1037 to i64
%1039 = getelementptr inbounds float, float* %66, i64 %1038
store float %1036, float* %1039
br label %1040
1040: ; preds = %1033
%1041 = load i32, i32* %17
%1042 = add nsw i32 %1041, 1
store i32 %1042, i32* %17
br label %1029
1043: ; preds = %1029
%1044 = load float, float* %14
%1045 = load float, float* %15
%1046 = fcmp une float %1044, %1045
br i1 %1046, label %1047, label %1049
1047: ; preds = %1043
%1048 = call i32 (...) @abort()
unreachable
1049: ; preds = %1043
store float 1.000000e+00, float* %14
store float 0x41F0000000000000, float* %15
store i32 0, i32* %17
br label %1050
1050: ; preds = %1061, %1049
%1051 = load i32, i32* %17
%1052 = load i32, i32* %10
%1053 = icmp slt i32 %1051, %1052
br i1 %1053, label %1054, label %1064
1054: ; preds = %1050
store float 2.000000e+00, float* %55
%1055 = load float, float* %15
%1056 = load float, float* %55
%1057 = fdiv float %1055, %1056
store float %1057, float* %15
%1058 = load i32, i32* %17
%1059 = sext i32 %1058 to i64
%1060 = getelementptr inbounds float, float* %66, i64 %1059
store float %1057, float* %1060
br label %1061
1061: ; preds = %1054
%1062 = load i32, i32* %17
%1063 = add nsw i32 %1062, 1
store i32 %1063, i32* %17
br label %1050
1064: ; preds = %1050
%1065 = load float, float* %14
%1066 = load float, float* %15
%1067 = fcmp une float %1065, %1066
br i1 %1067, label %1068, label %1070
1068: ; preds = %1064
%1069 = call i32 (...) @abort()
unreachable
1070: ; preds = %1064
store float 1.000000e+00, float* %14
store float 0x41F0000000000000, float* %15
store float 0x41F0000000000000, float* %56
%1071 = load float, float* %56
%1072 = load float, float* %15
%1073 = fdiv float %1071, %1072
store float %1073, float* %15
%1074 = getelementptr inbounds float, float* %66, i64 0
store float %1073, float* %1074
%1075 = load float, float* %14
%1076 = load float, float* %15
%1077 = fcmp une float %1075, %1076
br i1 %1077, label %1078, label %1080
1078: ; preds = %1070
%1079 = call i32 (...) @abort()
unreachable
1080: ; preds = %1070
store i32 0, i32* %3
%1081 = load i8*, i8** %11
%1082 = load i32, i32* %3
ret i32 %1082
}

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 = %33, %2
%20 = phi i64 [ 0, %2 ], [ %34, %33 ]
%21 = getelementptr inbounds [32 x float], [32 x float]* %3, i64 0, i64 %20
%22 = load float, float* %21
%23 = fcmp une float %22, 3.100000e+01
br i1 %23, label %24, label %28
24: ; preds = %19
%25 = tail call i32 (...) @abort()
unreachable
26: ; preds = %28
%27 = tail call i32 (...) @abort()
unreachable
28: ; preds = %19
%29 = or i64 %20, 1
%30 = getelementptr inbounds [32 x float], [32 x float]* %3, i64 0, i64 %29
%31 = load float, float* %30
%32 = fcmp une float %31, 1.000000e+00
br i1 %32, label %26, label %33
33: ; preds = %28
%34 = add nuw nsw i64 %20, 2
%35 = icmp eq i64 %34, 32
br i1 %35, label %36, label %19
36: ; preds = %33
ret i32 0
}