#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) {
  float fexp, fgot;
  int iexp, igot;
  long long lexp, lgot;
  int N = 32;
  int i;
  fgot = 1234.0;
  fexp = 1235.0;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < 1; i++)
#pragma acc atomic update
      fgot++;
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
  fexp = fgot - N;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
#pragma acc atomic update
      fgot--;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
  fexp = fgot + N;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
#pragma acc atomic update
      ++fgot;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
  fexp = fgot - N;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
#pragma acc atomic update
      --fgot;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
  fexp = fgot + N;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 1.0;
#pragma acc atomic update
      fgot += expr;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
  fexp = fgot + N;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 1.0;
#pragma acc atomic update
      fgot = fgot + expr;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
  fexp = fgot + N;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 1.0;
#pragma acc atomic update
      fgot = expr + fgot;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 0.5;
#pragma acc atomic update
      fgot = (expr + expr) + fgot;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
  fexp = 1234.0;
  for (i = 0; i < N; i++)
    fexp *= 2.0;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 2.0;
#pragma acc atomic update
      fgot *= expr;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
  fexp = 1234.0;
  for (i = 0; i < N; i++)
    fexp = fexp * 2.0;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 2.0;
#pragma acc atomic update
      fgot = fgot * expr;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
  fexp = 1234.0;
  for (i = 0; i < N; i++)
    fexp = 2.0 * fexp;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 2.0;
#pragma acc atomic update
      fgot = expr * fgot;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 1.0;
#pragma acc atomic update
      fgot = (expr + expr) * fgot;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
  fexp = 1234.0;
  for (i = 0; i < N; i++)
    fexp -= 2.0;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 2.0;
#pragma acc atomic update
      fgot -= expr;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
  fexp = 1234.0;
  for (i = 0; i < N; i++)
    fexp = fexp - 2.0;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 2.0;
#pragma acc atomic update
      fgot = fgot - expr;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
  fexp = 1234.0;
  for (i = 0; i < N; i++)
    fexp = 2.0 - fexp;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 2.0;
#pragma acc atomic update
      fgot = expr - fgot;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 1.0;
#pragma acc atomic update
      fgot = (expr + expr) - fgot;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
  fexp = 1234.0;
  for (i = 0; i < N; i++)
    fexp /= 2.0;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 2.0;
#pragma acc atomic update
      fgot /= expr;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
  fexp = 1234.0;
  for (i = 0; i < N; i++)
    fexp = fexp / 2.0;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 2.0;
#pragma acc atomic update
      fgot = fgot / expr;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
  fexp = 1234.0;
  for (i = 0; i < N; i++)
    fexp = 2.0 / fexp;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 2.0;
#pragma acc atomic update
      fgot = expr / fgot;
    }
  }
  if (fexp != fgot)
    abort();
  fgot = 1234.0;
  fexp = 1234.0;
  for (i = 0; i < N; i++)
    fexp = 2.0 / fexp;
#pragma acc data copy(fgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      float expr = 1.0;
#pragma acc atomic update
      fgot = (expr + expr) / fgot;
    }
  }
  if (fexp != fgot)
    abort();
  igot = ~0;
  iexp = 0;
#pragma acc data copy(igot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = ~(1 << i);
#pragma acc atomic update
      igot &= expr;
    }
  }
  if (iexp != igot)
    abort();
  igot = ~0;
  iexp = 0;
#pragma acc data copy(igot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = ~(1 << i);
#pragma acc atomic update
      igot = igot / expr;
    }
  }
  if (iexp != igot)
    abort();
  igot = ~0;
  iexp = 0;
#pragma acc data copy(igot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = ~(1 << i);
#pragma acc atomic update
      igot = expr & igot;
    }
  }
  if (iexp != igot)
    abort();
  igot = ~0;
  iexp = 0;
#pragma acc data copy(igot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = ~(1 << i);
      int zero = 0;
#pragma acc atomic update
      igot = (expr + zero) & igot;
    }
  }
  if (iexp != igot)
    abort();
  igot = ~0;
  iexp = 0;
#pragma acc data copy(igot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = (1 << i);
#pragma acc atomic update
      igot ^= expr;
    }
  }
  if (iexp != igot)
    abort();
  igot = ~0;
  iexp = 0;
#pragma acc data copy(igot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = (1 << i);
#pragma acc atomic update
      igot = igot ^ expr;
    }
  }
  if (iexp != igot)
    abort();
  igot = ~0;
  iexp = 0;
#pragma acc data copy(igot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = (1 << i);
#pragma acc atomic update
      igot = expr ^ igot;
    }
  }
  if (iexp != igot)
    abort();
  igot = ~0;
  iexp = 0;
#pragma acc data copy(igot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = (1 << i);
      int zero = 0;
#pragma acc atomic update
      igot = (expr + zero) ^ igot;
    }
  }
  if (iexp != igot)
    abort();
  igot = 0;
  iexp = ~0;
#pragma acc data copy(igot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = (1 << i);
#pragma acc atomic update
      igot |= expr;
    }
  }
  if (iexp != igot)
    abort();
  igot = 0;
  iexp = ~0;
#pragma acc data copy(igot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = (1 << i);
#pragma acc atomic update
      igot = igot | expr;
    }
  }
  if (iexp != igot)
    abort();
  igot = 0;
  iexp = ~0;
#pragma acc data copy(igot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = (1 << i);
#pragma acc atomic update
      igot = expr | igot;
    }
  }
  if (iexp != igot)
    abort();
  igot = 0;
  iexp = ~0;
#pragma acc data copy(igot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      int expr = (1 << i);
      int zero = 0;
#pragma acc atomic update
      igot = (expr + zero) | igot;
    }
  }
  if (iexp != igot)
    abort();
  lgot = 1LL;
  lexp = 1LL << N;
#pragma acc data copy(lgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      long long expr = 1LL;
#pragma acc atomic update
      lgot <<= expr;
    }
  }
  if (lexp != lgot)
    abort();
  lgot = 1LL;
  lexp = 1LL << N;
#pragma acc data copy(lgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      long long expr = 1LL;
#pragma acc atomic update
      lgot = lgot << expr;
    }
  }
  if (lexp != lgot)
    abort();
  lgot = 1LL;
  lexp = 2LL;
#pragma acc data copy(lgot)
  {
#pragma acc parallel loop
    for (i = 0; i < 1; i++) {
      long long expr = 1LL;
#pragma acc atomic update
      lgot = expr << lgot;
    }
  }
  if (lexp != lgot)
    abort();
  lgot = 1LL;
  lexp = 2LL;
#pragma acc data copy(lgot)
  {
#pragma acc parallel loop
    for (i = 0; i < 1; i++) {
      long long expr = 1LL;
      long long zero = 0LL;
#pragma acc atomic update
      lgot = (expr + zero) << lgot;
    }
  }
  if (lexp != lgot)
    abort();
  lgot = 1LL << N;
  lexp = 1LL;
#pragma acc data copy(lgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      long long expr = 1LL;
#pragma acc atomic update
      lgot >>= expr;
    }
  }
  if (lexp != lgot)
    abort();
  lgot = 1LL << N;
  lexp = 1LL;
#pragma acc data copy(lgot)
  {
#pragma acc parallel loop
    for (i = 0; i < N; i++) {
      long long expr = 1LL;
#pragma acc atomic update
      lgot = lgot >> expr;
    }
  }
  if (lexp != lgot)
    abort();
  lgot = 1LL;
  lexp = 1LL << (N - 1);
#pragma acc data copy(lgot)
  {
#pragma acc parallel loop
    for (i = 0; i < 1; i++) {
      long long expr = 1LL << N;
#pragma acc atomic update
      lgot = expr >> lgot;
    }
  }
  if (lexp != lgot)
    abort();
  lgot = 1LL;
  lexp = 1LL << (N - 1);
#pragma acc data copy(lgot)
  {
#pragma acc parallel loop
    for (i = 0; i < 1; i++) {
      long long expr = 1LL << N;
      long long zero = 0LL;
#pragma acc atomic update
      lgot = (expr + zero) >> lgot;
    }
  }
  if (lexp != lgot)
    abort();
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x110,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
movl   $0x20,-0x34(%rbp)
movss  0x1ecc(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  0x1ebb(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
cmpl   $0x1,-0x38(%rbp)
jge    117b <main+0x6b>
movss  0x1ea5(%rip),%xmm0
addss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1151 <main+0x41>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    1195 <main+0x85>
jp     1195 <main+0x85>
jmp    119c <main+0x8c>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x1e60(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  -0x18(%rbp),%xmm0
cvtsi2ssl -0x34(%rbp),%xmm1
subss  %xmm1,%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    11ef <main+0xdf>
movss  0x1e3d(%rip),%xmm0
addss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    11c3 <main+0xb3>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    1209 <main+0xf9>
jp     1209 <main+0xf9>
jmp    1210 <main+0x100>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x1dec(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  -0x18(%rbp),%xmm0
cvtsi2ssl -0x34(%rbp),%xmm1
addss  %xmm1,%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1263 <main+0x153>
movss  0x1dbd(%rip),%xmm0
addss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1237 <main+0x127>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    127d <main+0x16d>
jp     127d <main+0x16d>
jmp    1284 <main+0x174>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x1d78(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  -0x18(%rbp),%xmm0
cvtsi2ssl -0x34(%rbp),%xmm1
subss  %xmm1,%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    12d7 <main+0x1c7>
movss  0x1d55(%rip),%xmm0
addss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    12ab <main+0x19b>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    12f1 <main+0x1e1>
jp     12f1 <main+0x1e1>
jmp    12f8 <main+0x1e8>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x1d04(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  -0x18(%rbp),%xmm0
cvtsi2ssl -0x34(%rbp),%xmm1
addss  %xmm1,%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1355 <main+0x245>
movss  0x1cd5(%rip),%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x3c(%rbp),%xmm0
addss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    131f <main+0x20f>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    136f <main+0x25f>
jp     136f <main+0x25f>
jmp    1376 <main+0x266>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x1c86(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  -0x18(%rbp),%xmm0
cvtsi2ssl -0x34(%rbp),%xmm1
addss  %xmm1,%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    13d3 <main+0x2c3>
movss  0x1c57(%rip),%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x18(%rbp),%xmm0
addss  -0x40(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    139d <main+0x28d>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    13ed <main+0x2dd>
jp     13ed <main+0x2dd>
jmp    13f4 <main+0x2e4>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x1c08(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  -0x18(%rbp),%xmm0
cvtsi2ssl -0x34(%rbp),%xmm1
addss  %xmm1,%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1451 <main+0x341>
movss  0x1bd9(%rip),%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x44(%rbp),%xmm0
addss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    141b <main+0x30b>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    146b <main+0x35b>
jp     146b <main+0x35b>
jmp    1472 <main+0x362>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x1b8a(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    14c1 <main+0x3b1>
movss  0x1b76(%rip),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x48(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
addss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1486 <main+0x376>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    14db <main+0x3cb>
jp     14db <main+0x3cb>
jmp    14e2 <main+0x3d2>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x1b1a(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  0x1b0d(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    153b <main+0x42b>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1af8(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1503 <main+0x3f3>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1578 <main+0x468>
movss  0x1ab6(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x4c(%rbp),%xmm0
mulss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1542 <main+0x432>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    1592 <main+0x482>
jp     1592 <main+0x482>
jmp    1599 <main+0x489>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x1a63(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  0x1a56(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    15f2 <main+0x4e2>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1a41(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    15ba <main+0x4aa>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    162f <main+0x51f>
movss  0x19ff(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  -0x18(%rbp),%xmm0
mulss  -0x50(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    15f9 <main+0x4e9>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    1649 <main+0x539>
jp     1649 <main+0x539>
jmp    1650 <main+0x540>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x19ac(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  0x199f(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    16a9 <main+0x599>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x198a(%rip),%xmm0
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1671 <main+0x561>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    16e6 <main+0x5d6>
movss  0x1948(%rip),%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x54(%rbp),%xmm0
mulss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    16b0 <main+0x5a0>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    1700 <main+0x5f0>
jp     1700 <main+0x5f0>
jmp    1707 <main+0x5f7>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x18f5(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1756 <main+0x646>
movss  0x18d9(%rip),%xmm0
movss  %xmm0,-0x58(%rbp)
movss  -0x58(%rbp),%xmm0
addss  -0x58(%rbp),%xmm0
mulss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    171b <main+0x60b>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    1770 <main+0x660>
jp     1770 <main+0x660>
jmp    1777 <main+0x667>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x1885(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  0x1878(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    17d0 <main+0x6c0>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1863(%rip),%xmm1
subsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1798 <main+0x688>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1811 <main+0x701>
movss  0x1821(%rip),%xmm0
movss  %xmm0,-0x5c(%rbp)
movss  -0x5c(%rbp),%xmm1
movss  -0x18(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    17d7 <main+0x6c7>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    182b <main+0x71b>
jp     182b <main+0x71b>
jmp    1832 <main+0x722>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x17ca(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  0x17bd(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    188b <main+0x77b>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x17a8(%rip),%xmm1
subsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1853 <main+0x743>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    18c8 <main+0x7b8>
movss  0x1766(%rip),%xmm0
movss  %xmm0,-0x60(%rbp)
movss  -0x18(%rbp),%xmm0
subss  -0x60(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1892 <main+0x782>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    18e2 <main+0x7d2>
jp     18e2 <main+0x7d2>
jmp    18e9 <main+0x7d9>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x1713(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  0x1706(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1942 <main+0x832>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x16f1(%rip),%xmm0
subsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    190a <main+0x7fa>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    197f <main+0x86f>
movss  0x16af(%rip),%xmm0
movss  %xmm0,-0x64(%rbp)
movss  -0x64(%rbp),%xmm0
subss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1949 <main+0x839>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    1999 <main+0x889>
jp     1999 <main+0x889>
jmp    19a0 <main+0x890>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x165c(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    19ef <main+0x8df>
movss  0x1640(%rip),%xmm0
movss  %xmm0,-0x68(%rbp)
movss  -0x68(%rbp),%xmm0
addss  -0x68(%rbp),%xmm0
subss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    19b4 <main+0x8a4>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    1a09 <main+0x8f9>
jp     1a09 <main+0x8f9>
jmp    1a10 <main+0x900>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x15ec(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  0x15df(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1a69 <main+0x959>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x15ca(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1a31 <main+0x921>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1aaa <main+0x99a>
movss  0x1588(%rip),%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  -0x6c(%rbp),%xmm1
movss  -0x18(%rbp),%xmm0
divss  %xmm1,%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1a70 <main+0x960>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    1ac4 <main+0x9b4>
jp     1ac4 <main+0x9b4>
jmp    1acb <main+0x9bb>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x1531(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  0x1524(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1b24 <main+0xa14>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x150f(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1aec <main+0x9dc>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1b61 <main+0xa51>
movss  0x14cd(%rip),%xmm0
movss  %xmm0,-0x70(%rbp)
movss  -0x18(%rbp),%xmm0
divss  -0x70(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1b2b <main+0xa1b>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    1b7b <main+0xa6b>
jp     1b7b <main+0xa6b>
jmp    1b82 <main+0xa72>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x147a(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  0x146d(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1bdb <main+0xacb>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x1458(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1ba3 <main+0xa93>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1c18 <main+0xb08>
movss  0x1416(%rip),%xmm0
movss  %xmm0,-0x74(%rbp)
movss  -0x74(%rbp),%xmm0
divss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1be2 <main+0xad2>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    1c32 <main+0xb22>
jp     1c32 <main+0xb22>
jmp    1c39 <main+0xb29>
mov    $0x0,%al
call   1030 <abort@plt>
movss  0x13c3(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  0x13b6(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1c92 <main+0xb82>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x13a1(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1c5a <main+0xb4a>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1cd4 <main+0xbc4>
movss  0x135b(%rip),%xmm0
movss  %xmm0,-0x78(%rbp)
movss  -0x78(%rbp),%xmm0
addss  -0x78(%rbp),%xmm0
divss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1c99 <main+0xb89>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    1cee <main+0xbde>
jp     1cee <main+0xbde>
jmp    1cf5 <main+0xbe5>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0xffffffff,-0x20(%rbp)
movl   $0x0,-0x1c(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1d3d <main+0xc2d>
mov    -0x38(%rbp),%ecx
mov    $0x1,%eax
shl    %cl,%eax
xor    $0xffffffff,%eax
mov    %eax,-0x7c(%rbp)
mov    -0x7c(%rbp),%eax
and    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1d0a <main+0xbfa>
mov    -0x1c(%rbp),%eax
cmp    -0x20(%rbp),%eax
je     1d50 <main+0xc40>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0xffffffff,-0x20(%rbp)
movl   $0x0,-0x1c(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1d99 <main+0xc89>
mov    -0x38(%rbp),%ecx
mov    $0x1,%eax
shl    %cl,%eax
xor    $0xffffffff,%eax
mov    %eax,-0x80(%rbp)
mov    -0x20(%rbp),%eax
cltd
idivl  -0x80(%rbp)
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1d65 <main+0xc55>
mov    -0x1c(%rbp),%eax
cmp    -0x20(%rbp),%eax
je     1dac <main+0xc9c>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0xffffffff,-0x20(%rbp)
movl   $0x0,-0x1c(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1dfa <main+0xcea>
mov    -0x38(%rbp),%ecx
mov    $0x1,%eax
shl    %cl,%eax
xor    $0xffffffff,%eax
mov    %eax,-0x84(%rbp)
mov    -0x84(%rbp),%eax
and    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1dc1 <main+0xcb1>
mov    -0x1c(%rbp),%eax
cmp    -0x20(%rbp),%eax
je     1e0d <main+0xcfd>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0xffffffff,-0x20(%rbp)
movl   $0x0,-0x1c(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1e6b <main+0xd5b>
mov    -0x38(%rbp),%ecx
mov    $0x1,%eax
shl    %cl,%eax
xor    $0xffffffff,%eax
mov    %eax,-0x88(%rbp)
movl   $0x0,-0x8c(%rbp)
mov    -0x88(%rbp),%eax
add    -0x8c(%rbp),%eax
and    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1e22 <main+0xd12>
mov    -0x1c(%rbp),%eax
cmp    -0x20(%rbp),%eax
je     1e7e <main+0xd6e>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0xffffffff,-0x20(%rbp)
movl   $0x0,-0x1c(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1ec9 <main+0xdb9>
mov    -0x38(%rbp),%ecx
mov    $0x1,%eax
shl    %cl,%eax
mov    %eax,-0x90(%rbp)
mov    -0x90(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1e93 <main+0xd83>
mov    -0x1c(%rbp),%eax
cmp    -0x20(%rbp),%eax
je     1edc <main+0xdcc>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0xffffffff,-0x20(%rbp)
movl   $0x0,-0x1c(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1f27 <main+0xe17>
mov    -0x38(%rbp),%ecx
mov    $0x1,%eax
shl    %cl,%eax
mov    %eax,-0x94(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x94(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1ef1 <main+0xde1>
mov    -0x1c(%rbp),%eax
cmp    -0x20(%rbp),%eax
je     1f3a <main+0xe2a>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0xffffffff,-0x20(%rbp)
movl   $0x0,-0x1c(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1f85 <main+0xe75>
mov    -0x38(%rbp),%ecx
mov    $0x1,%eax
shl    %cl,%eax
mov    %eax,-0x98(%rbp)
mov    -0x98(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1f4f <main+0xe3f>
mov    -0x1c(%rbp),%eax
cmp    -0x20(%rbp),%eax
je     1f98 <main+0xe88>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0xffffffff,-0x20(%rbp)
movl   $0x0,-0x1c(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    1ff3 <main+0xee3>
mov    -0x38(%rbp),%ecx
mov    $0x1,%eax
shl    %cl,%eax
mov    %eax,-0x9c(%rbp)
movl   $0x0,-0xa0(%rbp)
mov    -0x9c(%rbp),%eax
add    -0xa0(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1fad <main+0xe9d>
mov    -0x1c(%rbp),%eax
cmp    -0x20(%rbp),%eax
je     2006 <main+0xef6>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0x0,-0x20(%rbp)
movl   $0xffffffff,-0x1c(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    2051 <main+0xf41>
mov    -0x38(%rbp),%ecx
mov    $0x1,%eax
shl    %cl,%eax
mov    %eax,-0xa4(%rbp)
mov    -0xa4(%rbp),%eax
or     -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    201b <main+0xf0b>
mov    -0x1c(%rbp),%eax
cmp    -0x20(%rbp),%eax
je     2064 <main+0xf54>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0x0,-0x20(%rbp)
movl   $0xffffffff,-0x1c(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    20af <main+0xf9f>
mov    -0x38(%rbp),%ecx
mov    $0x1,%eax
shl    %cl,%eax
mov    %eax,-0xa8(%rbp)
mov    -0x20(%rbp),%eax
or     -0xa8(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    2079 <main+0xf69>
mov    -0x1c(%rbp),%eax
cmp    -0x20(%rbp),%eax
je     20c2 <main+0xfb2>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0x0,-0x20(%rbp)
movl   $0xffffffff,-0x1c(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    210d <main+0xffd>
mov    -0x38(%rbp),%ecx
mov    $0x1,%eax
shl    %cl,%eax
mov    %eax,-0xac(%rbp)
mov    -0xac(%rbp),%eax
or     -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    20d7 <main+0xfc7>
mov    -0x1c(%rbp),%eax
cmp    -0x20(%rbp),%eax
je     2120 <main+0x1010>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0x0,-0x20(%rbp)
movl   $0xffffffff,-0x1c(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    217b <main+0x106b>
mov    -0x38(%rbp),%ecx
mov    $0x1,%eax
shl    %cl,%eax
mov    %eax,-0xb0(%rbp)
movl   $0x0,-0xb4(%rbp)
mov    -0xb0(%rbp),%eax
add    -0xb4(%rbp),%eax
or     -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    2135 <main+0x1025>
mov    -0x1c(%rbp),%eax
cmp    -0x20(%rbp),%eax
je     218e <main+0x107e>
mov    $0x0,%al
call   1030 <abort@plt>
movq   $0x1,-0x30(%rbp)
mov    -0x34(%rbp),%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x28(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    21e5 <main+0x10d5>
movq   $0x1,-0xc0(%rbp)
mov    -0xc0(%rbp),%rcx
mov    -0x30(%rbp),%rax
shl    %cl,%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    21ae <main+0x109e>
mov    -0x28(%rbp),%rax
cmp    -0x30(%rbp),%rax
je     21fa <main+0x10ea>
mov    $0x0,%al
call   1030 <abort@plt>
movq   $0x1,-0x30(%rbp)
mov    -0x34(%rbp),%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x28(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    2251 <main+0x1141>
movq   $0x1,-0xc8(%rbp)
mov    -0x30(%rbp),%rax
mov    -0xc8(%rbp),%rcx
shl    %cl,%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    221a <main+0x110a>
mov    -0x28(%rbp),%rax
cmp    -0x30(%rbp),%rax
je     2266 <main+0x1156>
mov    $0x0,%al
call   1030 <abort@plt>
movq   $0x1,-0x30(%rbp)
movq   $0x2,-0x28(%rbp)
movl   $0x0,-0x38(%rbp)
cmpl   $0x1,-0x38(%rbp)
jge    22b2 <main+0x11a2>
movq   $0x1,-0xd0(%rbp)
mov    -0xd0(%rbp),%rax
mov    -0x30(%rbp),%rcx
shl    %cl,%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    227d <main+0x116d>
mov    -0x28(%rbp),%rax
cmp    -0x30(%rbp),%rax
je     22c7 <main+0x11b7>
mov    $0x0,%al
call   1030 <abort@plt>
movq   $0x1,-0x30(%rbp)
movq   $0x2,-0x28(%rbp)
movl   $0x0,-0x38(%rbp)
cmpl   $0x1,-0x38(%rbp)
jge    2325 <main+0x1215>
movq   $0x1,-0xd8(%rbp)
movq   $0x0,-0xe0(%rbp)
mov    -0xd8(%rbp),%rax
add    -0xe0(%rbp),%rax
mov    -0x30(%rbp),%rcx
shl    %cl,%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    22de <main+0x11ce>
mov    -0x28(%rbp),%rax
cmp    -0x30(%rbp),%rax
je     233a <main+0x122a>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x34(%rbp),%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x30(%rbp)
movq   $0x1,-0x28(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    2391 <main+0x1281>
movq   $0x1,-0xe8(%rbp)
mov    -0xe8(%rbp),%rcx
mov    -0x30(%rbp),%rax
sar    %cl,%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    235a <main+0x124a>
mov    -0x28(%rbp),%rax
cmp    -0x30(%rbp),%rax
je     23a6 <main+0x1296>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x34(%rbp),%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x30(%rbp)
movq   $0x1,-0x28(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jge    23fd <main+0x12ed>
movq   $0x1,-0xf0(%rbp)
mov    -0x30(%rbp),%rax
mov    -0xf0(%rbp),%rcx
sar    %cl,%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    23c6 <main+0x12b6>
mov    -0x28(%rbp),%rax
cmp    -0x30(%rbp),%rax
je     2412 <main+0x1302>
mov    $0x0,%al
call   1030 <abort@plt>
movq   $0x1,-0x30(%rbp)
mov    -0x34(%rbp),%eax
sub    $0x1,%eax
mov    %eax,%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x28(%rbp)
movl   $0x0,-0x38(%rbp)
cmpl   $0x1,-0x38(%rbp)
jge    2475 <main+0x1365>
mov    -0x34(%rbp),%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0xf8(%rbp)
mov    -0xf8(%rbp),%rax
mov    -0x30(%rbp),%rcx
sar    %cl,%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    2437 <main+0x1327>
mov    -0x28(%rbp),%rax
cmp    -0x30(%rbp),%rax
je     248a <main+0x137a>
mov    $0x0,%al
call   1030 <abort@plt>
movq   $0x1,-0x30(%rbp)
mov    -0x34(%rbp),%eax
sub    $0x1,%eax
mov    %eax,%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x28(%rbp)
movl   $0x0,-0x38(%rbp)
cmpl   $0x1,-0x38(%rbp)
jge    24ff <main+0x13ef>
mov    -0x34(%rbp),%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x100(%rbp)
movq   $0x0,-0x108(%rbp)
mov    -0x100(%rbp),%rax
add    -0x108(%rbp),%rax
mov    -0x30(%rbp),%rcx
sar    %cl,%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    24af <main+0x139f>
mov    -0x28(%rbp),%rax
cmp    -0x30(%rbp),%rax
je     2514 <main+0x1404>
mov    $0x0,%al
call   1030 <abort@plt>
xor    %eax,%eax
add    $0x110,%rsp
pop    %rbp
ret

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

LLVM IR (-O2):
define i32 @main(i32 %0, i8** nocapture readnone %1) {
br label %3
3: ; preds = %3, %2
%4 = phi float [ 1.234000e+03, %2 ], [ %9, %3 ]
%5 = phi i32 [ 0, %2 ], [ %10, %3 ]
%6 = fdiv float 2.000000e+00, %4
%7 = fdiv float 2.000000e+00, %6
%8 = fdiv float 2.000000e+00, %7
%9 = fdiv float 2.000000e+00, %8
%10 = add nuw nsw i32 %5, 4
%11 = icmp eq i32 %10, 32
br i1 %11, label %12, label %3
12: ; preds = %3, %12
%13 = phi float [ %18, %12 ], [ 1.234000e+03, %3 ]
%14 = phi i32 [ %19, %12 ], [ 0, %3 ]
%15 = fdiv float 2.000000e+00, %13
%16 = fdiv float 2.000000e+00, %15
%17 = fdiv float 2.000000e+00, %16
%18 = fdiv float 2.000000e+00, %17
%19 = add nuw nsw i32 %14, 4
%20 = icmp eq i32 %19, 32
br i1 %20, label %21, label %12
21: ; preds = %12
%22 = fcmp une float %9, %18
br i1 %22, label %23, label %25
23: ; preds = %21
%24 = tail call i32 (...) @abort()
unreachable
25: ; preds = %21, %25
%26 = phi float [ %31, %25 ], [ 1.234000e+03, %21 ]
%27 = phi i32 [ %32, %25 ], [ 0, %21 ]
%28 = fdiv float 2.000000e+00, %26
%29 = fdiv float 2.000000e+00, %28
%30 = fdiv float 2.000000e+00, %29
%31 = fdiv float 2.000000e+00, %30
%32 = add nuw nsw i32 %27, 4
%33 = icmp eq i32 %32, 32
br i1 %33, label %34, label %25
34: ; preds = %25, %34
%35 = phi float [ %40, %34 ], [ 1.234000e+03, %25 ]
%36 = phi i32 [ %41, %34 ], [ 0, %25 ]
%37 = fdiv float 2.000000e+00, %35
%38 = fdiv float 2.000000e+00, %37
%39 = fdiv float 2.000000e+00, %38
%40 = fdiv float 2.000000e+00, %39
%41 = add nuw nsw i32 %36, 4
%42 = icmp eq i32 %41, 32
br i1 %42, label %43, label %34
43: ; preds = %34
%44 = fcmp une float %31, %40
br i1 %44, label %45, label %47
45: ; preds = %43
%46 = tail call i32 (...) @abort()
unreachable
47: ; preds = %43
ret i32 0
}