#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 */
float exp(float);
double log(float);
void cb2008_ampf(float *ampf, float *dt, int n, float *vref, float *vsite,
                 float *vpga, float *pga, float *fmin, float *fmidbot,
                 float *fmid, float *fhigh, float *fhightop, float *fmax,
                 float *flowcap) {
  float scon_c, scon_n, per[22], c10[22], c11[22], k1[22], k2[22], k3[22];
  float ampf0[22];
  float a_1100, fs_1100, fs_vpga, fs_vref, fsite;
  float df, ampv, afac, freq;
  float f0, f1, a0, a1, dadf, ampf_cap;
  int i, j;
  int nper = 22;
  scon_c = 1.88;
  scon_n = 1.18;
  per[0] = 0.0;
  per[1] = 0.01;
  per[2] = 0.02;
  per[3] = 0.03;
  per[4] = 0.05;
  per[5] = 0.075;
  per[6] = 0.10;
  per[7] = 0.15;
  per[8] = 0.20;
  per[9] = 0.25;
  per[10] = 0.30;
  per[11] = 0.40;
  per[12] = 0.50;
  per[13] = 0.75;
  per[14] = 1.00;
  per[15] = 1.50;
  per[16] = 2.00;
  per[17] = 3.00;
  per[18] = 4.00;
  per[19] = 5.00;
  per[20] = 7.50;
  per[21] = 10.0;
  c10[0] = 1.058;
  c10[1] = 1.058;
  c10[2] = 1.102;
  c10[3] = 1.174;
  c10[4] = 1.272;
  c10[5] = 1.438;
  c10[6] = 1.604;
  c10[7] = 1.928;
  c10[8] = 2.194;
  c10[9] = 2.351;
  c10[10] = 2.46;
  c10[11] = 2.587;
  c10[12] = 2.544;
  c10[13] = 2.133;
  c10[14] = 1.571;
  c10[15] = 0.406;
  c10[16] = -0.456;
  c10[17] = -0.82;
  c10[18] = -0.82;
  c10[19] = -0.82;
  c10[20] = -0.82;
  c10[21] = -0.82;
  c11[0] = 0.04;
  c11[1] = 0.04;
  c11[2] = 0.04;
  c11[3] = 0.04;
  c11[4] = 0.04;
  c11[5] = 0.04;
  c11[6] = 0.04;
  c11[7] = 0.04;
  c11[8] = 0.04;
  c11[9] = 0.04;
  c11[10] = 0.04;
  c11[11] = 0.04;
  c11[12] = 0.04;
  c11[13] = 0.077;
  c11[14] = 0.15;
  c11[15] = 0.253;
  c11[16] = 0.3;
  c11[17] = 0.3;
  c11[18] = 0.3;
  c11[19] = 0.3;
  c11[20] = 0.3;
  c11[21] = 0.3;
  k1[0] = 865.0;
  k1[1] = 865.0;
  k1[2] = 865.0;
  k1[3] = 908.0;
  k1[4] = 1054.0;
  k1[5] = 1086.0;
  k1[6] = 1032.0;
  k1[7] = 878.0;
  k1[8] = 748.0;
  k1[9] = 654.0;
  k1[10] = 587.0;
  k1[11] = 503.0;
  k1[12] = 457.0;
  k1[13] = 410.0;
  k1[14] = 400.0;
  k1[15] = 400.0;
  k1[16] = 400.0;
  k1[17] = 400.0;
  k1[18] = 400.0;
  k1[19] = 400.0;
  k1[20] = 400.0;
  k1[21] = 400.0;
  k2[0] = -1.186;
  k2[1] = -1.186;
  k2[2] = -1.219;
  k2[3] = -1.273;
  k2[4] = -1.346;
  k2[5] = -1.471;
  k2[6] = -1.624;
  k2[7] = -1.931;
  k2[8] = -2.188;
  k2[9] = -2.381;
  k2[10] = -2.518;
  k2[11] = -2.657;
  k2[12] = -2.669;
  k2[13] = -2.401;
  k2[14] = -1.955;
  k2[15] = -1.025;
  k2[16] = -0.299;
  k2[17] = 0.0;
  k2[18] = 0.0;
  k2[19] = 0.0;
  k2[20] = 0.0;
  k2[21] = 0.0;
  k3[0] = 1.839;
  k3[1] = 1.839;
  k3[2] = 1.84;
  k3[3] = 1.841;
  k3[4] = 1.843;
  k3[5] = 1.845;
  k3[6] = 1.847;
  k3[7] = 1.852;
  k3[8] = 1.856;
  k3[9] = 1.861;
  k3[10] = 1.865;
  k3[11] = 1.874;
  k3[12] = 1.883;
  k3[13] = 1.906;
  k3[14] = 1.929;
  k3[15] = 1.974;
  k3[16] = 2.019;
  k3[17] = 2.11;
  k3[18] = 2.2;
  k3[19] = 2.291;
  k3[20] = 2.517;
  k3[21] = 2.744;
  fs_1100 = (c10[0] + k2[0] * scon_n) * log(1100.0 / k1[0]);
  if ((*vpga) < k1[0]) {
    fs_vpga =
        c10[0] * log((*vpga) / k1[0]) +
        k2[0] * (log(((*pga) + scon_c * exp(scon_n * log((*vpga) / k1[0]))) /
                     ((*pga) + scon_c)));
  } else if ((*vpga) < 1100.0)
    fs_vpga = (c10[0] + k2[0] * scon_n) * log((*vpga) / k1[0]);
  else
    fs_vpga = (c10[0] + k2[0] * scon_n) * log(1100.0 / k1[0]);
  a_1100 = (*pga) * exp(fs_1100 - fs_vpga);
  ampf_cap = -1.0;
  for (i = 0; i < nper; i++) {
    if ((*vsite) < k1[i]) {
      fsite =
          c10[i] * log((*vsite) / k1[i]) +
          k2[i] * (log((a_1100 + scon_c * exp(scon_n * log((*vsite) / k1[i]))) /
                       (a_1100 + scon_c)));
    } else if ((*vsite) < 1100.0)
      fsite = (c10[i] + k2[i] * scon_n) * log((*vsite) / k1[i]);
    else
      fsite = (c10[i] + k2[i] * scon_n) * log(1100.0 / k1[i]);
    if ((*vref) < k1[i]) {
      fs_vref =
          c10[i] * log((*vref) / k1[i]) +
          k2[i] * (log((a_1100 + scon_c * exp(scon_n * log((*vref) / k1[i]))) /
                       (a_1100 + scon_c)));
    } else if ((*vref) < 1100.0)
      fs_vref = (c10[i] + k2[i] * scon_n) * log((*vref) / k1[i]);
    else
      fs_vref = (c10[i] + k2[i] * scon_n) * log(1100.0 / k1[i]);
    ampf0[i] = exp(fsite - fs_vref);
    if (1.0 / per[i] <= (*flowcap)) {
      if (ampf_cap < 0.0)
        ampf_cap = ampf0[i];
      else
        ampf0[i] = ampf_cap;
    }
  }
  j = nper - 1;
  f0 = 1.0 / per[j];
  a0 = ampf0[j];
  f1 = 1.0 / per[j];
  a1 = ampf0[j];
  dadf = 0.0;
  df = 1.0 / (n * (*dt));
  for (i = 1; i < n / 2; i++) {
    freq = i * df;
    if (freq > f1) {
      f0 = f1;
      a0 = a1;
      if (j > 0)
        j--;
      if (per[j] != 0.0)
        f1 = 1.0 / per[j];
      else
        f1 = 1000.0;
      a1 = ampf0[j];
      if (f1 != f0)
        dadf = (a1 - a0) / log(f1 / f0);
      else
        dadf = 0.0;
    }
    ampv = a0 + dadf * log(freq / f0);
    if (freq < *fmin)
      afac = 1.0;
    else if (freq < *fmidbot)
      afac =
          1.0 + log(freq / (*fmin)) * (ampv - 1.0) / log((*fmidbot) / (*fmin));
    else if (freq < *fmid)
      afac = ampv;
    else if (freq < *fhigh)
      afac = ampv;
    else if (freq < *fhightop)
      afac = ampv;
    else if (freq < *fmax)
      afac = ampv + log(freq / (*fhightop)) * (1.0 - ampv) /
                        log((*fmax) / (*fhightop));
    else
      afac = 1.0;
    ampf[i] = afac;
  }
}


x86 assembly (clang, -O0):
push   %rbp
mov    %rsp,%rbp
sub    $0x410,%rsp
mov    0x48(%rbp),%rax
mov    0x40(%rbp),%rax
mov    0x38(%rbp),%rax
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %edx,-0x14(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
movl   $0x16,-0x318(%rbp)
movss  0x200c(%rip),%xmm0
movss  %xmm0,-0x34(%rbp)
movss  0x1ffb(%rip),%xmm0
movss  %xmm0,-0x38(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x90(%rbp)
ff
movss  0x1fdf(%rip),%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
movss  0x1fcb(%rip),%xmm0
movss  %xmm0,-0x88(%rbp)
ff
movss  0x1fb7(%rip),%xmm0
movss  %xmm0,-0x84(%rbp)
ff
movss  0x1fa3(%rip),%xmm0
movss  %xmm0,-0x80(%rbp)
movss  0x1f92(%rip),%xmm0
movss  %xmm0,-0x7c(%rbp)
movss  0x1f81(%rip),%xmm0
movss  %xmm0,-0x78(%rbp)
movss  0x1ef0(%rip),%xmm0
movss  %xmm0,-0x74(%rbp)
movss  0x1f63(%rip),%xmm0
movss  %xmm0,-0x70(%rbp)
movss  0x1f52(%rip),%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  0x1ec1(%rip),%xmm0
movss  %xmm0,-0x68(%rbp)
movss  0x1f34(%rip),%xmm0
movss  %xmm0,-0x64(%rbp)
movss  0x1f23(%rip),%xmm0
movss  %xmm0,-0x60(%rbp)
movss  0x1f12(%rip),%xmm0
movss  %xmm0,-0x5c(%rbp)
movss  0x1f01(%rip),%xmm0
movss  %xmm0,-0x58(%rbp)
movss  0x1ef0(%rip),%xmm0
movss  %xmm0,-0x54(%rbp)
movss  0x1edf(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0x1ece(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  0x1ebd(%rip),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  0x1eac(%rip),%xmm0
movss  %xmm0,-0x44(%rbp)
movss  0x1e9b(%rip),%xmm0
movss  %xmm0,-0x40(%rbp)
movss  0x1e8a(%rip),%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  0x1e79(%rip),%xmm0
movss  %xmm0,-0xf0(%rbp)
ff
movss  0x1e69(%rip),%xmm0
movss  %xmm0,-0xec(%rbp)
ff
movss  0x1e55(%rip),%xmm0
movss  %xmm0,-0xe8(%rbp)
ff
movss  0x1e41(%rip),%xmm0
movss  %xmm0,-0xe4(%rbp)
ff
movss  0x1e2d(%rip),%xmm0
movss  %xmm0,-0xe0(%rbp)
ff
movss  0x1e19(%rip),%xmm0
movss  %xmm0,-0xdc(%rbp)
ff
movss  0x1e05(%rip),%xmm0
movss  %xmm0,-0xd8(%rbp)
ff
movss  0x1df1(%rip),%xmm0
movss  %xmm0,-0xd4(%rbp)
ff
movss  0x1ddd(%rip),%xmm0
movss  %xmm0,-0xd0(%rbp)
ff
movss  0x1dc9(%rip),%xmm0
movss  %xmm0,-0xcc(%rbp)
ff
movss  0x1db5(%rip),%xmm0
movss  %xmm0,-0xc8(%rbp)
ff
movss  0x1da1(%rip),%xmm0
movss  %xmm0,-0xc4(%rbp)
ff
movss  0x1d8d(%rip),%xmm0
movss  %xmm0,-0xc0(%rbp)
ff
movss  0x1d79(%rip),%xmm0
movss  %xmm0,-0xbc(%rbp)
ff
movss  0x1d65(%rip),%xmm0
movss  %xmm0,-0xb8(%rbp)
ff
movss  0x1d51(%rip),%xmm0
movss  %xmm0,-0xb4(%rbp)
ff
movss  0x1d3d(%rip),%xmm0
movss  %xmm0,-0xb0(%rbp)
ff
movss  0x1d29(%rip),%xmm0
movss  %xmm0,-0xac(%rbp)
ff
movss  0x1d19(%rip),%xmm0
movss  %xmm0,-0xa8(%rbp)
ff
movss  0x1d09(%rip),%xmm0
movss  %xmm0,-0xa4(%rbp)
ff
movss  0x1cf9(%rip),%xmm0
movss  %xmm0,-0xa0(%rbp)
ff
movss  0x1ce9(%rip),%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
movss  0x1cd5(%rip),%xmm0
movss  %xmm0,-0x150(%rbp)
ff
movss  0x1cc5(%rip),%xmm0
movss  %xmm0,-0x14c(%rbp)
ff
movss  0x1cb5(%rip),%xmm0
movss  %xmm0,-0x148(%rbp)
ff
movss  0x1ca5(%rip),%xmm0
movss  %xmm0,-0x144(%rbp)
ff
movss  0x1c95(%rip),%xmm0
movss  %xmm0,-0x140(%rbp)
ff
movss  0x1c85(%rip),%xmm0
movss  %xmm0,-0x13c(%rbp)
ff
movss  0x1c75(%rip),%xmm0
movss  %xmm0,-0x138(%rbp)
ff
movss  0x1c65(%rip),%xmm0
movss  %xmm0,-0x134(%rbp)
ff
movss  0x1c55(%rip),%xmm0
movss  %xmm0,-0x130(%rbp)
ff
movss  0x1c45(%rip),%xmm0
movss  %xmm0,-0x12c(%rbp)
ff
movss  0x1c35(%rip),%xmm0
movss  %xmm0,-0x128(%rbp)
ff
movss  0x1c25(%rip),%xmm0
movss  %xmm0,-0x124(%rbp)
ff
movss  0x1c15(%rip),%xmm0
movss  %xmm0,-0x120(%rbp)
ff
movss  0x1c01(%rip),%xmm0
movss  %xmm0,-0x11c(%rbp)
ff
movss  0x1bed(%rip),%xmm0
movss  %xmm0,-0x118(%rbp)
ff
movss  0x1bd9(%rip),%xmm0
movss  %xmm0,-0x114(%rbp)
ff
movss  0x1bc5(%rip),%xmm0
movss  %xmm0,-0x110(%rbp)
ff
movss  0x1bb5(%rip),%xmm0
movss  %xmm0,-0x10c(%rbp)
ff
movss  0x1ba5(%rip),%xmm0
movss  %xmm0,-0x108(%rbp)
ff
movss  0x1b95(%rip),%xmm0
movss  %xmm0,-0x104(%rbp)
ff
movss  0x1b85(%rip),%xmm0
movss  %xmm0,-0x100(%rbp)
ff
movss  0x1b75(%rip),%xmm0
movss  %xmm0,-0xfc(%rbp)
ff
movss  0x1b61(%rip),%xmm0
movss  %xmm0,-0x1b0(%rbp)
ff
movss  0x1b51(%rip),%xmm0
movss  %xmm0,-0x1ac(%rbp)
ff
movss  0x1b41(%rip),%xmm0
movss  %xmm0,-0x1a8(%rbp)
ff
movss  0x1b2d(%rip),%xmm0
movss  %xmm0,-0x1a4(%rbp)
ff
movss  0x1b19(%rip),%xmm0
movss  %xmm0,-0x1a0(%rbp)
ff
movss  0x1b05(%rip),%xmm0
movss  %xmm0,-0x19c(%rbp)
ff
movss  0x1af1(%rip),%xmm0
movss  %xmm0,-0x198(%rbp)
ff
movss  0x1add(%rip),%xmm0
movss  %xmm0,-0x194(%rbp)
ff
movss  0x1ac9(%rip),%xmm0
movss  %xmm0,-0x190(%rbp)
ff
movss  0x1ab5(%rip),%xmm0
movss  %xmm0,-0x18c(%rbp)
ff
movss  0x1aa1(%rip),%xmm0
movss  %xmm0,-0x188(%rbp)
ff
movss  0x1a8d(%rip),%xmm0
movss  %xmm0,-0x184(%rbp)
ff
movss  0x1a79(%rip),%xmm0
movss  %xmm0,-0x180(%rbp)
ff
movss  0x1a65(%rip),%xmm0
movss  %xmm0,-0x17c(%rbp)
ff
movss  0x1a51(%rip),%xmm0
movss  %xmm0,-0x178(%rbp)
ff
movss  0x1a41(%rip),%xmm0
movss  %xmm0,-0x174(%rbp)
ff
movss  0x1a31(%rip),%xmm0
movss  %xmm0,-0x170(%rbp)
ff
movss  0x1a21(%rip),%xmm0
movss  %xmm0,-0x16c(%rbp)
ff
movss  0x1a11(%rip),%xmm0
movss  %xmm0,-0x168(%rbp)
ff
movss  0x1a01(%rip),%xmm0
movss  %xmm0,-0x164(%rbp)
ff
movss  0x19f1(%rip),%xmm0
movss  %xmm0,-0x160(%rbp)
ff
movss  0x19e1(%rip),%xmm0
movss  %xmm0,-0x15c(%rbp)
ff
movss  0x19cd(%rip),%xmm0
movss  %xmm0,-0x210(%rbp)
ff
movss  0x19bd(%rip),%xmm0
movss  %xmm0,-0x20c(%rbp)
ff
movss  0x19a9(%rip),%xmm0
movss  %xmm0,-0x208(%rbp)
ff
movss  0x1995(%rip),%xmm0
movss  %xmm0,-0x204(%rbp)
ff
movss  0x1981(%rip),%xmm0
movss  %xmm0,-0x200(%rbp)
ff
movss  0x196d(%rip),%xmm0
movss  %xmm0,-0x1fc(%rbp)
ff
movss  0x1959(%rip),%xmm0
movss  %xmm0,-0x1f8(%rbp)
ff
movss  0x1945(%rip),%xmm0
movss  %xmm0,-0x1f4(%rbp)
ff
movss  0x1931(%rip),%xmm0
movss  %xmm0,-0x1f0(%rbp)
ff
movss  0x191d(%rip),%xmm0
movss  %xmm0,-0x1ec(%rbp)
ff
movss  0x1909(%rip),%xmm0
movss  %xmm0,-0x1e8(%rbp)
ff
movss  0x18f5(%rip),%xmm0
movss  %xmm0,-0x1e4(%rbp)
ff
movss  0x18e1(%rip),%xmm0
movss  %xmm0,-0x1e0(%rbp)
ff
movss  0x18cd(%rip),%xmm0
movss  %xmm0,-0x1dc(%rbp)
ff
movss  0x18b9(%rip),%xmm0
movss  %xmm0,-0x1d8(%rbp)
ff
movss  0x18a5(%rip),%xmm0
movss  %xmm0,-0x1d4(%rbp)
ff
movss  0x1891(%rip),%xmm0
movss  %xmm0,-0x1d0(%rbp)
ff
xorps  %xmm0,%xmm0
movss  %xmm0,-0x1cc(%rbp)
ff
xorps  %xmm0,%xmm0
movss  %xmm0,-0x1c8(%rbp)
ff
xorps  %xmm0,%xmm0
movss  %xmm0,-0x1c4(%rbp)
ff
xorps  %xmm0,%xmm0
movss  %xmm0,-0x1c0(%rbp)
ff
xorps  %xmm0,%xmm0
movss  %xmm0,-0x1bc(%rbp)
ff
movss  0x1846(%rip),%xmm0
movss  %xmm0,-0x270(%rbp)
ff
movss  0x1836(%rip),%xmm0
movss  %xmm0,-0x26c(%rbp)
ff
movss  0x1822(%rip),%xmm0
movss  %xmm0,-0x268(%rbp)
ff
movss  0x180e(%rip),%xmm0
movss  %xmm0,-0x264(%rbp)
ff
movss  0x17fa(%rip),%xmm0
movss  %xmm0,-0x260(%rbp)
ff
movss  0x17e6(%rip),%xmm0
movss  %xmm0,-0x25c(%rbp)
ff
movss  0x17d2(%rip),%xmm0
movss  %xmm0,-0x258(%rbp)
ff
movss  0x17be(%rip),%xmm0
movss  %xmm0,-0x254(%rbp)
ff
movss  0x17aa(%rip),%xmm0
movss  %xmm0,-0x250(%rbp)
ff
movss  0x1796(%rip),%xmm0
movss  %xmm0,-0x24c(%rbp)
ff
movss  0x1782(%rip),%xmm0
movss  %xmm0,-0x248(%rbp)
ff
movss  0x176e(%rip),%xmm0
movss  %xmm0,-0x244(%rbp)
ff
movss  0x175a(%rip),%xmm0
movss  %xmm0,-0x240(%rbp)
ff
movss  0x1746(%rip),%xmm0
movss  %xmm0,-0x23c(%rbp)
ff
movss  0x1732(%rip),%xmm0
movss  %xmm0,-0x238(%rbp)
ff
movss  0x171e(%rip),%xmm0
movss  %xmm0,-0x234(%rbp)
ff
movss  0x170a(%rip),%xmm0
movss  %xmm0,-0x230(%rbp)
ff
movss  0x16f6(%rip),%xmm0
movss  %xmm0,-0x22c(%rbp)
ff
movss  0x16e2(%rip),%xmm0
movss  %xmm0,-0x228(%rbp)
ff
movss  0x16ce(%rip),%xmm0
movss  %xmm0,-0x224(%rbp)
ff
movss  0x16ba(%rip),%xmm0
movss  %xmm0,-0x220(%rbp)
ff
movss  0x16a6(%rip),%xmm0
movss  %xmm0,-0x21c(%rbp)
ff
movss  -0xf0(%rbp),%xmm1
ff
movss  -0x210(%rbp),%xmm0
ff
movss  -0x38(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x320(%rbp)
ff
movss  -0x1b0(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm1
movsd  0x1651(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
call   1040 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x320(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2d8(%rbp)
ff
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm1
movss  -0x1b0(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jbe    1af9 <cb2008_ampf+0x9d9>
movss  -0xf0(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x328(%rbp)
ff
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm0
divss  -0x1b0(%rbp),%xmm0
ff
call   1040 <log@plt>
movsd  %xmm0,-0x330(%rbp)
ff
movss  -0x210(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x338(%rbp)
ff
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x340(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x33c(%rbp)
ff
movss  -0x38(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x348(%rbp)
ff
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm0
divss  -0x1b0(%rbp),%xmm0
ff
call   1040 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x348(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
call   1030 <exp@plt>
movss  -0x340(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movss  -0x33c(%rbp),%xmm0
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    0x10(%rbp),%rax
movss  (%rax),%xmm1
addss  -0x34(%rbp),%xmm1
divss  %xmm1,%xmm0
call   1040 <log@plt>
movsd  -0x338(%rbp),%xmm1
ff
movsd  -0x330(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x328(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2dc(%rbp)
ff
jmp    1bdf <cb2008_ampf+0xabf>
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x14f3(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    1b75 <cb2008_ampf+0xa55>
movss  -0xf0(%rbp),%xmm1
ff
movss  -0x210(%rbp),%xmm0
ff
movss  -0x38(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x350(%rbp)
ff
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm0
divss  -0x1b0(%rbp),%xmm0
ff
call   1040 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x350(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2dc(%rbp)
ff
jmp    1bda <cb2008_ampf+0xaba>
movss  -0xf0(%rbp),%xmm1
ff
movss  -0x210(%rbp),%xmm0
ff
movss  -0x38(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x358(%rbp)
ff
movss  -0x1b0(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm1
movsd  0x144e(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
call   1040 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x358(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2dc(%rbp)
ff
jmp    1bdf <cb2008_ampf+0xabf>
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x35c(%rbp)
ff
movss  -0x2d8(%rbp),%xmm0
ff
subss  -0x2dc(%rbp),%xmm0
ff
call   1030 <exp@plt>
movaps %xmm0,%xmm1
movss  -0x35c(%rbp),%xmm0
ff
mulss  %xmm1,%xmm0
movss  %xmm0,-0x2d4(%rbp)
ff
movss  0x1561(%rip),%xmm0
movss  %xmm0,-0x30c(%rbp)
ff
movl   $0x0,-0x310(%rbp)
mov    -0x310(%rbp),%eax
cmp    -0x318(%rbp),%eax
jge    21ce <cb2008_ampf+0x10ae>
mov    -0x28(%rbp),%rax
movss  (%rax),%xmm1
movslq -0x310(%rbp),%rax
movss  -0x1b0(%rbp,%rax,4),%xmm0
ff ff
ucomiss %xmm1,%xmm0
jbe    1d91 <cb2008_ampf+0xc71>
movslq -0x310(%rbp),%rax
movss  -0xf0(%rbp,%rax,4),%xmm0
ff ff
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x368(%rbp)
ff
mov    -0x28(%rbp),%rax
movss  (%rax),%xmm0
movslq -0x310(%rbp),%rax
divss  -0x1b0(%rbp,%rax,4),%xmm0
ff ff
call   1040 <log@plt>
movsd  %xmm0,-0x370(%rbp)
ff
movslq -0x310(%rbp),%rax
movss  -0x210(%rbp,%rax,4),%xmm0
ff ff
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x378(%rbp)
ff
movss  -0x2d4(%rbp),%xmm0
ff
movss  %xmm0,-0x380(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x37c(%rbp)
ff
movss  -0x38(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x388(%rbp)
ff
mov    -0x28(%rbp),%rax
movss  (%rax),%xmm0
movslq -0x310(%rbp),%rax
divss  -0x1b0(%rbp,%rax,4),%xmm0
ff ff
call   1040 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x388(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
call   1030 <exp@plt>
movss  -0x380(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movss  -0x37c(%rbp),%xmm0
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  -0x2d4(%rbp),%xmm1
ff
addss  -0x34(%rbp),%xmm1
divss  %xmm1,%xmm0
call   1040 <log@plt>
movsd  -0x378(%rbp),%xmm1
ff
movsd  -0x370(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x368(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2e4(%rbp)
ff
jmp    1ea7 <cb2008_ampf+0xd87>
mov    -0x28(%rbp),%rax
movss  (%rax),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x125b(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    1e25 <cb2008_ampf+0xd05>
movslq -0x310(%rbp),%rax
movss  -0xf0(%rbp,%rax,4),%xmm1
ff ff
movslq -0x310(%rbp),%rax
movss  -0x210(%rbp,%rax,4),%xmm0
ff ff
movss  -0x38(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x390(%rbp)
ff
mov    -0x28(%rbp),%rax
movss  (%rax),%xmm0
movslq -0x310(%rbp),%rax
divss  -0x1b0(%rbp,%rax,4),%xmm0
ff ff
call   1040 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x390(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2e4(%rbp)
ff
jmp    1ea2 <cb2008_ampf+0xd82>
movslq -0x310(%rbp),%rax
movss  -0xf0(%rbp,%rax,4),%xmm1
ff ff
movslq -0x310(%rbp),%rax
movss  -0x210(%rbp,%rax,4),%xmm0
ff ff
movss  -0x38(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x398(%rbp)
ff
movslq -0x310(%rbp),%rax
movss  -0x1b0(%rbp,%rax,4),%xmm0
ff ff
cvtss2sd %xmm0,%xmm1
movsd  0x1186(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
call   1040 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x398(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2e4(%rbp)
ff
jmp    1ea7 <cb2008_ampf+0xd87>
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm1
movslq -0x310(%rbp),%rax
movss  -0x1b0(%rbp,%rax,4),%xmm0
ff ff
ucomiss %xmm1,%xmm0
jbe    1ff1 <cb2008_ampf+0xed1>
movslq -0x310(%rbp),%rax
movss  -0xf0(%rbp,%rax,4),%xmm0
ff ff
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x3a0(%rbp)
ff
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm0
movslq -0x310(%rbp),%rax
divss  -0x1b0(%rbp,%rax,4),%xmm0
ff ff
call   1040 <log@plt>
movsd  %xmm0,-0x3a8(%rbp)
ff
movslq -0x310(%rbp),%rax
movss  -0x210(%rbp,%rax,4),%xmm0
ff ff
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x3b0(%rbp)
ff
movss  -0x2d4(%rbp),%xmm0
ff
movss  %xmm0,-0x3b8(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x3b4(%rbp)
ff
movss  -0x38(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x3c0(%rbp)
ff
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm0
movslq -0x310(%rbp),%rax
divss  -0x1b0(%rbp,%rax,4),%xmm0
ff ff
call   1040 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x3c0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
call   1030 <exp@plt>
movss  -0x3b8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movss  -0x3b4(%rbp),%xmm0
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  -0x2d4(%rbp),%xmm1
ff
addss  -0x34(%rbp),%xmm1
divss  %xmm1,%xmm0
call   1040 <log@plt>
movsd  -0x3b0(%rbp),%xmm1
ff
movsd  -0x3a8(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x3a0(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2e0(%rbp)
ff
jmp    2107 <cb2008_ampf+0xfe7>
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xffb(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    2085 <cb2008_ampf+0xf65>
movslq -0x310(%rbp),%rax
movss  -0xf0(%rbp,%rax,4),%xmm1
ff ff
movslq -0x310(%rbp),%rax
movss  -0x210(%rbp,%rax,4),%xmm0
ff ff
movss  -0x38(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x3c8(%rbp)
ff
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm0
movslq -0x310(%rbp),%rax
divss  -0x1b0(%rbp,%rax,4),%xmm0
ff ff
call   1040 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x3c8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2e0(%rbp)
ff
jmp    2102 <cb2008_ampf+0xfe2>
movslq -0x310(%rbp),%rax
movss  -0xf0(%rbp,%rax,4),%xmm1
ff ff
movslq -0x310(%rbp),%rax
movss  -0x210(%rbp,%rax,4),%xmm0
ff ff
movss  -0x38(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x3d0(%rbp)
ff
movslq -0x310(%rbp),%rax
movss  -0x1b0(%rbp,%rax,4),%xmm0
ff ff
cvtss2sd %xmm0,%xmm1
movsd  0xf26(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
call   1040 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x3d0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2e0(%rbp)
ff
jmp    2107 <cb2008_ampf+0xfe7>
movss  -0x2e4(%rbp),%xmm0
ff
subss  -0x2e0(%rbp),%xmm0
ff
call   1030 <exp@plt>
movslq -0x310(%rbp),%rax
movss  %xmm0,-0x2d0(%rbp,%rax,4)
ff ff
movslq -0x310(%rbp),%rax
movss  -0x90(%rbp,%rax,4),%xmm0
ff ff
cvtss2sd %xmm0,%xmm0
movsd  0xec0(%rip),%xmm1
divsd  %xmm0,%xmm1
mov    0x48(%rbp),%rax
movss  (%rax),%xmm0
cvtss2sd %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     21b5 <cb2008_ampf+0x1095>
movss  -0x30c(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    2198 <cb2008_ampf+0x1078>
movslq -0x310(%rbp),%rax
movss  -0x2d0(%rbp,%rax,4),%xmm0
ff ff
movss  %xmm0,-0x30c(%rbp)
ff
jmp    21b0 <cb2008_ampf+0x1090>
movss  -0x30c(%rbp),%xmm0
ff
movslq -0x310(%rbp),%rax
movss  %xmm0,-0x2d0(%rbp,%rax,4)
ff ff
jmp    21b5 <cb2008_ampf+0x1095>
jmp    21ba <cb2008_ampf+0x109a>
mov    -0x310(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x310(%rbp)
jmp    1c35 <cb2008_ampf+0xb15>
mov    -0x318(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x314(%rbp)
movslq -0x314(%rbp),%rax
movss  -0x90(%rbp,%rax,4),%xmm0
ff ff
cvtss2sd %xmm0,%xmm1
movsd  0xe0f(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2f8(%rbp)
ff
movslq -0x314(%rbp),%rax
movss  -0x2d0(%rbp,%rax,4),%xmm0
ff ff
movss  %xmm0,-0x300(%rbp)
ff
movslq -0x314(%rbp),%rax
movss  -0x90(%rbp,%rax,4),%xmm0
ff ff
cvtss2sd %xmm0,%xmm1
movsd  0xdcb(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2fc(%rbp)
ff
movslq -0x314(%rbp),%rax
movss  -0x2d0(%rbp,%rax,4),%xmm0
ff ff
movss  %xmm0,-0x304(%rbp)
ff
xorps  %xmm0,%xmm0
movss  %xmm0,-0x308(%rbp)
ff
cvtsi2ssl -0x14(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mulss  (%rax),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xd7f(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2e8(%rbp)
ff
movl   $0x1,-0x310(%rbp)
mov    -0x310(%rbp),%eax
mov    %eax,-0x3d4(%rbp)
mov    -0x14(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x3d4(%rbp),%eax
cmp    %ecx,%eax
jge    26e1 <cb2008_ampf+0x15c1>
cvtsi2ssl -0x310(%rbp),%xmm0
ff
mulss  -0x2e8(%rbp),%xmm0
ff
movss  %xmm0,-0x2f4(%rbp)
ff
movss  -0x2f4(%rbp),%xmm0
ff
ucomiss -0x2fc(%rbp),%xmm0
jbe    2439 <cb2008_ampf+0x1319>
movss  -0x2fc(%rbp),%xmm0
ff
movss  %xmm0,-0x2f8(%rbp)
ff
movss  -0x304(%rbp),%xmm0
ff
movss  %xmm0,-0x300(%rbp)
ff
cmpl   $0x0,-0x314(%rbp)
jle    2333 <cb2008_ampf+0x1213>
mov    -0x314(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x314(%rbp)
movslq -0x314(%rbp),%rax
movss  -0x90(%rbp,%rax,4),%xmm0
ff ff
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    235f <cb2008_ampf+0x123f>
jp     235f <cb2008_ampf+0x123f>
jmp    2390 <cb2008_ampf+0x1270>
movslq -0x314(%rbp),%rax
movss  -0x90(%rbp,%rax,4),%xmm0
ff ff
cvtss2sd %xmm0,%xmm1
movsd  0xc8d(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2fc(%rbp)
ff
jmp    23a0 <cb2008_ampf+0x1280>
movss  0xdf0(%rip),%xmm0
movss  %xmm0,-0x2fc(%rbp)
ff
movslq -0x314(%rbp),%rax
movss  -0x2d0(%rbp,%rax,4),%xmm0
ff ff
movss  %xmm0,-0x304(%rbp)
ff
movss  -0x2fc(%rbp),%xmm0
ff
ucomiss -0x2f8(%rbp),%xmm0
jne    23d8 <cb2008_ampf+0x12b8>
jp     23d8 <cb2008_ampf+0x12b8>
jmp    2429 <cb2008_ampf+0x1309>
movss  -0x304(%rbp),%xmm0
ff
subss  -0x300(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x3e0(%rbp)
ff
movss  -0x2fc(%rbp),%xmm0
ff
divss  -0x2f8(%rbp),%xmm0
ff
call   1040 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x3e0(%rbp),%xmm0
ff
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x308(%rbp)
ff
jmp    2434 <cb2008_ampf+0x1314>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x308(%rbp)
ff
jmp    2439 <cb2008_ampf+0x1319>
movss  -0x300(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x3f0(%rbp)
ff
movss  -0x308(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x3e8(%rbp)
ff
movss  -0x2f4(%rbp),%xmm0
ff
divss  -0x2f8(%rbp),%xmm0
ff
call   1040 <log@plt>
movsd  -0x3f0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x3e8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2ec(%rbp)
ff
movss  -0x2f4(%rbp),%xmm1
ff
mov    0x18(%rbp),%rax
movss  (%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    24cb <cb2008_ampf+0x13ab>
movss  0xc8e(%rip),%xmm0
movss  %xmm0,-0x2f0(%rbp)
ff
jmp    26b5 <cb2008_ampf+0x1595>
movss  -0x2f4(%rbp),%xmm1
ff
mov    0x20(%rbp),%rax
movss  (%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    255b <cb2008_ampf+0x143b>
movss  -0x2f4(%rbp),%xmm0
ff
mov    0x18(%rbp),%rax
divss  (%rax),%xmm0
call   1040 <log@plt>
movss  -0x2ec(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xafb(%rip),%xmm2
subsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x3f8(%rbp)
ff
mov    0x20(%rbp),%rax
movss  (%rax),%xmm0
mov    0x18(%rbp),%rax
divss  (%rax),%xmm0
call   1040 <log@plt>
movsd  -0x3f8(%rbp),%xmm1
ff
divsd  %xmm0,%xmm1
movsd  0xac2(%rip),%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2f0(%rbp)
ff
jmp    26b0 <cb2008_ampf+0x1590>
movss  -0x2f4(%rbp),%xmm1
ff
mov    0x28(%rbp),%rax
movss  (%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    2589 <cb2008_ampf+0x1469>
movss  -0x2ec(%rbp),%xmm0
ff
movss  %xmm0,-0x2f0(%rbp)
ff
jmp    26ab <cb2008_ampf+0x158b>
movss  -0x2f4(%rbp),%xmm1
ff
mov    0x30(%rbp),%rax
movss  (%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    25b7 <cb2008_ampf+0x1497>
movss  -0x2ec(%rbp),%xmm0
ff
movss  %xmm0,-0x2f0(%rbp)
ff
jmp    26a6 <cb2008_ampf+0x1586>
movss  -0x2f4(%rbp),%xmm1
ff
mov    0x38(%rbp),%rax
movss  (%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    25e5 <cb2008_ampf+0x14c5>
movss  -0x2ec(%rbp),%xmm0
ff
movss  %xmm0,-0x2f0(%rbp)
ff
jmp    26a1 <cb2008_ampf+0x1581>
movss  -0x2f4(%rbp),%xmm1
ff
mov    0x40(%rbp),%rax
movss  (%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    268c <cb2008_ampf+0x156c>
movss  -0x2ec(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x400(%rbp)
ff
movss  -0x2f4(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
divss  (%rax),%xmm0
call   1040 <log@plt>
movss  -0x2ec(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm2
movsd  0x9cd(%rip),%xmm1
subsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x408(%rbp)
ff
mov    0x40(%rbp),%rax
movss  (%rax),%xmm0
mov    0x38(%rbp),%rax
divss  (%rax),%xmm0
call   1040 <log@plt>
movsd  -0x408(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x400(%rbp),%xmm0
ff
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2f0(%rbp)
ff
jmp    269c <cb2008_ampf+0x157c>
movss  0xab8(%rip),%xmm0
movss  %xmm0,-0x2f0(%rbp)
ff
jmp    26a1 <cb2008_ampf+0x1581>
jmp    26a6 <cb2008_ampf+0x1586>
jmp    26ab <cb2008_ampf+0x158b>
jmp    26b0 <cb2008_ampf+0x1590>
jmp    26b5 <cb2008_ampf+0x1595>
movss  -0x2f0(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
movslq -0x310(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x310(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x310(%rbp)
jmp    22a3 <cb2008_ampf+0x1183>
add    $0x410,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x228,%rsp
mov    %r9,%rbp
mov    %r8,%r13
mov    %rcx,%rbx
mov    %edx,%r12d
mov    %rsi,0x40(%rsp)
mov    %rdi,%r14
mov    0x260(%rsp),%r15
movaps 0xeac(%rip),%xmm0
movaps %xmm0,0x110(%rsp)
movaps 0xead(%rip),%xmm0
movaps %xmm0,0x120(%rsp)
movaps 0xeae(%rip),%xmm0
movaps %xmm0,0x130(%rsp)
movaps 0xeaf(%rip),%xmm0
movaps %xmm0,0x140(%rsp)
movaps 0xeb0(%rip),%xmm0
movaps %xmm0,0x150(%rsp)
movabs $0x4120000040f00000,%rax
mov    %rax,0x160(%rsp)
movaps 0xe9f(%rip),%xmm0
movaps %xmm0,0x50(%rsp)
movaps 0xea3(%rip),%xmm0
movaps %xmm0,0x60(%rsp)
movaps 0xea7(%rip),%xmm0
movaps %xmm0,0x70(%rsp)
movaps 0xeab(%rip),%xmm0
movaps %xmm0,0x80(%rsp)
movaps 0xeac(%rip),%xmm0
movaps %xmm0,0x90(%rsp)
movabs $0xbf51eb85bf51eb85,%rax
eb 51 bf
mov    %rax,0xa0(%rsp)
movaps 0xe9b(%rip),%xmm0
movaps %xmm0,0x170(%rsp)
movaps 0xe9c(%rip),%xmm0
movaps %xmm0,0x180(%rsp)
movaps 0xe9d(%rip),%xmm0
movaps %xmm0,0x190(%rsp)
movaps 0xe9e(%rip),%xmm0
movaps %xmm0,0x1a0(%rsp)
movaps 0xe9f(%rip),%xmm0
movaps %xmm0,0x1b0(%rsp)
movabs $0x43c8000043c80000,%rax
mov    %rax,0x1c0(%rsp)
movaps 0xe8e(%rip),%xmm0
movaps %xmm0,0xb0(%rsp)
movaps 0xe8f(%rip),%xmm0
movaps %xmm0,0xc0(%rsp)
movaps 0xe90(%rip),%xmm0
movaps %xmm0,0xd0(%rsp)
movaps 0xe91(%rip),%xmm0
movaps %xmm0,0xe0(%rsp)
movl   $0xbe991687,0xf0(%rsp)
87 16 99 be
xorps  %xmm0,%xmm0
movups %xmm0,0xf4(%rsp)
movl   $0x0,0x104(%rsp)
movss  0xe70(%rip),%xmm0
call   1040 <log@plt>
mulsd  0xe8b(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,(%rsp)
movss  0x0(%rbp),%xmm0
movss  0xe51(%rip),%xmm1
ucomiss %xmm0,%xmm1
jbe    137b <cb2008_ampf+0x25b>
movss  0x50(%rsp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  %xmm1,0x18(%rsp)
divss  0xe30(%rip),%xmm0
call   1040 <log@plt>
movsd  %xmm0,0x20(%rsp)
movss  (%r15),%xmm0
movss  %xmm0,0x10(%rsp)
movss  0x0(%rbp),%xmm0
divss  0xe0d(%rip),%xmm0
call   1040 <log@plt>
mulsd  0xe2c(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
call   1030 <exp@plt>
movss  0xdfb(%rip),%xmm1
mulss  %xmm1,%xmm0
addss  0x10(%rsp),%xmm0
addss  (%r15),%xmm1
divss  %xmm1,%xmm0
call   1040 <log@plt>
mulsd  0xe03(%rip),%xmm0
movsd  0x20(%rsp),%xmm1
mulsd  0x18(%rsp),%xmm1
addsd  %xmm0,%xmm1
movapd %xmm1,%xmm0
jmp    13bd <cb2008_ampf+0x29d>
movss  0xdb5(%rip),%xmm1
ucomiss %xmm0,%xmm1
movss  0x50(%rsp),%xmm1
addss  0xda8(%rip),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  %xmm1,0x18(%rsp)
jbe    13aa <cb2008_ampf+0x28a>
divss  0xd8c(%rip),%xmm0
jmp    13b2 <cb2008_ampf+0x292>
movss  0xd7e(%rip),%xmm0
call   1040 <log@plt>
mulsd  0x18(%rsp),%xmm0
mov    %r15,%rax
mov    0x298(%rsp),%r15
xorps  %xmm1,%xmm1
cvtsd2ss %xmm0,%xmm1
movss  (%rsp),%xmm0
subss  %xmm1,%xmm0
movss  (%rax),%xmm1
movss  %xmm1,(%rsp)
call   1030 <exp@plt>
mulss  (%rsp),%xmm0
movss  0xd4d(%rip),%xmm1
movss  %xmm0,0x28(%rsp)
addss  %xmm0,%xmm1
movss  %xmm1,0xc(%rsp)
movss  0xd39(%rip),%xmm0
xor    %ebp,%ebp
movss  0xd1f(%rip),%xmm2
cs nopw 0x0(%rax,%rax,1)
nop
movss  %xmm0,0x20(%rsp)
movss  0x0(%r13),%xmm0
ucomiss %xmm0,%xmm2
movss  %xmm2,0x18(%rsp)
jbe    14d0 <cb2008_ampf+0x3b0>
movss  0x50(%rsp,%rbp,1),%xmm1
movss  %xmm1,0x10(%rsp)
cvtss2sd %xmm1,%xmm1
movsd  %xmm1,0x30(%rsp)
divss  %xmm2,%xmm0
call   1040 <log@plt>
movsd  %xmm0,(%rsp)
movss  0xb0(%rsp,%rbp,1),%xmm0
movss  %xmm0,0x38(%rsp)
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,0x48(%rsp)
movss  0x0(%r13),%xmm0
divss  0x18(%rsp),%xmm0
call   1040 <log@plt>
mulsd  0xccf(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
call   1030 <exp@plt>
mulss  0xc9e(%rip),%xmm0
addss  0x28(%rsp),%xmm0
divss  0xc(%rsp),%xmm0
call   1040 <log@plt>
mulsd  0x48(%rsp),%xmm0
movsd  (%rsp),%xmm1
mulsd  0x30(%rsp),%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,(%rsp)
jmp    1523 <cb2008_ampf+0x403>
nop
movss  0xc60(%rip),%xmm3
ucomiss %xmm0,%xmm3
movss  0x50(%rsp,%rbp,1),%xmm4
movss  0xb0(%rsp,%rbp,1),%xmm1
movss  %xmm1,0x38(%rsp)
mulss  0xc50(%rip),%xmm1
movss  %xmm4,0x10(%rsp)
addss  %xmm4,%xmm1
cvtss2sd %xmm1,%xmm1
movsd  %xmm1,(%rsp)
ja     1510 <cb2008_ampf+0x3f0>
movaps %xmm3,%xmm0
divss  %xmm2,%xmm0
call   1040 <log@plt>
mulsd  (%rsp),%xmm0
movsd  %xmm0,(%rsp)
movss  (%rbx),%xmm0
movss  0x18(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jbe    15c0 <cb2008_ampf+0x4a0>
movss  0x10(%rsp),%xmm2
cvtss2sd %xmm2,%xmm2
movsd  %xmm2,0x10(%rsp)
divss  %xmm1,%xmm0
call   1040 <log@plt>
movsd  %xmm0,0x30(%rsp)
movss  0x38(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,0x38(%rsp)
movss  (%rbx),%xmm0
divss  0x18(%rsp),%xmm0
call   1040 <log@plt>
mulsd  0xbe4(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
call   1030 <exp@plt>
mulss  0xbb3(%rip),%xmm0
addss  0x28(%rsp),%xmm0
divss  0xc(%rsp),%xmm0
call   1040 <log@plt>
movsd  0x30(%rsp),%xmm1
mulsd  0x38(%rsp),%xmm0
mulsd  0x10(%rsp),%xmm1
addsd  %xmm0,%xmm1
jmp    1600 <cb2008_ampf+0x4e0>
cs nopw 0x0(%rax,%rax,1)
movss  0xb70(%rip),%xmm2
ucomiss %xmm0,%xmm2
movss  0x38(%rsp),%xmm3
mulss  0xb6f(%rip),%xmm3
addss  0x10(%rsp),%xmm3
cvtss2sd %xmm3,%xmm3
movsd  %xmm3,0x10(%rsp)
ja     15ee <cb2008_ampf+0x4ce>
movaps %xmm2,%xmm0
divss  %xmm1,%xmm0
call   1040 <log@plt>
movaps %xmm0,%xmm1
mulsd  0x10(%rsp),%xmm1
movsd  (%rsp),%xmm0
cvtsd2ss %xmm0,%xmm0
cvtsd2ss %xmm1,%xmm1
subss  %xmm1,%xmm0
call   1030 <exp@plt>
movss  %xmm0,0x1d0(%rsp,%rbp,1)
movss  0x110(%rsp,%rbp,1),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xb3c(%rip),%xmm2
divsd  %xmm1,%xmm2
movss  (%r15),%xmm1
cvtss2sd %xmm1,%xmm1
ucomisd %xmm2,%xmm1
jae    1650 <cb2008_ampf+0x530>
movss  0x20(%rsp),%xmm0
jmp    166d <cb2008_ampf+0x54d>
nop
xorps  %xmm1,%xmm1
movss  0x20(%rsp),%xmm2
ucomiss %xmm2,%xmm1
ja     166d <cb2008_ampf+0x54d>
movaps %xmm2,%xmm1
movss  %xmm2,0x1d0(%rsp,%rbp,1)
movaps %xmm2,%xmm0
cmp    $0x54,%rbp
je     1685 <cb2008_ampf+0x565>
movss  0x174(%rsp,%rbp,1),%xmm2
add    $0x4,%rbp
jmp    1420 <cb2008_ampf+0x300>
cmp    $0x4,%r12d
mov    0x280(%rsp),%r13
jl     19ac <cb2008_ampf+0x88c>
movss  0xaad(%rip),%xmm1
movaps %xmm1,%xmm2
divss  0x164(%rsp),%xmm2
xorps  %xmm0,%xmm0
cvtsi2ss %r12d,%xmm0
movss  0x224(%rsp),%xmm3
mov    0x40(%rsp),%rax
mulss  (%rax),%xmm0
divss  %xmm0,%xmm1
movss  %xmm1,0x38(%rsp)
shr    %r12d
mov    $0x15,%ebx
mov    $0x1,%ebp
xorps  %xmm0,%xmm0
movss  %xmm0,0x28(%rsp)
movss  %xmm3,0x10(%rsp)
movss  %xmm3,0xc(%rsp)
movss  %xmm2,0x20(%rsp)
jmp    171b <cb2008_ampf+0x5fb>
nopl   0x0(%rax)
movaps %xmm3,%xmm2
movss  %xmm2,(%r14,%rbp,4)
add    $0x1,%rbp
cmp    %rbp,%r12
movss  (%rsp),%xmm2
je     19ac <cb2008_ampf+0x88c>
xorps  %xmm3,%xmm3
cvtsi2ss %ebp,%xmm3
mulss  0x38(%rsp),%xmm3
ucomiss %xmm2,%xmm3
movss  %xmm3,0x18(%rsp)
jbe    1800 <cb2008_ampf+0x6e0>
xor    %eax,%eax
test   %ebx,%ebx
setg   %al
sub    %eax,%ebx
movslq %ebx,%rax
movss  0x110(%rsp,%rax,4),%xmm0
ucomiss 0xa01(%rip),%xmm0
movss  0x9f5(%rip),%xmm1
jne    175f <cb2008_ampf+0x63f>
jnp    176b <cb2008_ampf+0x64b>
movss  0x9e5(%rip),%xmm1
divss  %xmm0,%xmm1
movss  0x1d0(%rsp,%rax,4),%xmm4
ucomiss %xmm2,%xmm1
jne    177f <cb2008_ampf+0x65f>
jnp    180d <cb2008_ampf+0x6ed>
movaps %xmm4,%xmm0
subss  0x10(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,0x28(%rsp)
movaps %xmm1,%xmm0
divss  %xmm2,%xmm0
movss  %xmm2,(%rsp)
movss  %xmm1,0xc(%rsp)
movss  %xmm4,0x20(%rsp)
call   1040 <log@plt>
movss  0x18(%rsp),%xmm3
movsd  0x28(%rsp),%xmm1
divsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
cvtsd2ss %xmm1,%xmm0
movss  %xmm0,0x28(%rsp)
movss  (%rsp),%xmm2
movss  0xc(%rsp),%xmm0
movss  %xmm0,(%rsp)
movss  0x10(%rsp),%xmm0
movss  %xmm0,0xc(%rsp)
movss  0x20(%rsp),%xmm0
movss  %xmm0,0x10(%rsp)
jmp    1830 <cb2008_ampf+0x710>
cs nopw 0x0(%rax,%rax,1)
movss  %xmm2,(%rsp)
movss  0x20(%rsp),%xmm2
jmp    1830 <cb2008_ampf+0x710>
xorps  %xmm0,%xmm0
movss  %xmm0,0x28(%rsp)
movss  %xmm1,(%rsp)
movss  0x10(%rsp),%xmm0
movss  %xmm0,0xc(%rsp)
movss  %xmm4,0x10(%rsp)
nopl   (%rax)
movaps %xmm3,%xmm0
movss  %xmm2,0x20(%rsp)
divss  %xmm2,%xmm0
call   1040 <log@plt>
movss  0x18(%rsp),%xmm4
mov    0x268(%rsp),%rax
movss  (%rax),%xmm1
ucomiss %xmm4,%xmm1
movss  0x8ed(%rip),%xmm2
mov    0x270(%rsp),%r15
ja     1703 <cb2008_ampf+0x5e3>
movss  0xc(%rsp),%xmm2
cvtss2sd %xmm2,%xmm2
movss  0x28(%rsp),%xmm3
cvtss2sd %xmm3,%xmm3
mulsd  %xmm0,%xmm3
addsd  %xmm2,%xmm3
cvtsd2ss %xmm3,%xmm3
movss  (%r15),%xmm0
ucomiss %xmm4,%xmm0
jbe    1910 <cb2008_ampf+0x7f0>
divss  %xmm1,%xmm4
movaps %xmm4,%xmm0
movss  %xmm3,0x18(%rsp)
call   1040 <log@plt>
movss  0x18(%rsp),%xmm1
cvtss2sd %xmm1,%xmm1
addsd  0x8bd(%rip),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x18(%rsp)
mov    0x268(%rsp),%rcx
movsd  0x89b(%rip),%xmm0
movsd  %xmm0,0x30(%rsp)
movss  (%r15),%xmm0
divss  (%rcx),%xmm0
call   1040 <log@plt>
movsd  0x18(%rsp),%xmm1
divsd  %xmm0,%xmm1
addsd  0x30(%rsp),%xmm1
xorps  %xmm2,%xmm2
cvtsd2ss %xmm1,%xmm2
jmp    1703 <cb2008_ampf+0x5e3>
cs nopw 0x0(%rax,%rax,1)
nop
mov    0x278(%rsp),%rax
movss  (%rax),%xmm0
ucomiss %xmm4,%xmm0
ja     1700 <cb2008_ampf+0x5e0>
movss  0x0(%r13),%xmm0
ucomiss %xmm4,%xmm0
ja     1700 <cb2008_ampf+0x5e0>
mov    0x288(%rsp),%rax
movss  (%rax),%xmm0
ucomiss %xmm4,%xmm0
ja     1700 <cb2008_ampf+0x5e0>
mov    0x290(%rsp),%rax
movss  (%rax),%xmm1
ucomiss %xmm4,%xmm1
movss  0x7ec(%rip),%xmm2
jbe    1703 <cb2008_ampf+0x5e3>
xorps  %xmm1,%xmm1
cvtss2sd %xmm3,%xmm1
movsd  %xmm1,0x30(%rsp)
divss  %xmm0,%xmm4
movaps %xmm4,%xmm0
call   1040 <log@plt>
movsd  0x7e9(%rip),%xmm1
subsd  0x30(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x18(%rsp)
mov    0x290(%rsp),%r15
mov    0x288(%rsp),%rcx
jmp    18db <cb2008_ampf+0x7bb>
add    $0x228,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @cb2008_ampf(float* %0, float* %1, i32 %2, float* %3, float* %4, float* %5, float* %6, float* %7, float* %8, float* %9, float* %10, float* %11, float* %12, float* %13) {
%15 = alloca float*
%16 = alloca float*
%17 = alloca i32
%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 float
%31 = alloca [22 x float]
%32 = alloca [22 x float]
%33 = alloca [22 x float]
%34 = alloca [22 x float]
%35 = alloca [22 x float]
%36 = alloca [22 x float]
%37 = alloca [22 x float]
%38 = alloca float
%39 = alloca float
%40 = alloca float
%41 = alloca float
%42 = alloca float
%43 = alloca float
%44 = alloca float
%45 = alloca float
%46 = alloca float
%47 = alloca float
%48 = alloca float
%49 = alloca float
%50 = alloca float
%51 = alloca float
%52 = alloca float
%53 = alloca i32
%54 = alloca i32
%55 = alloca i32
store float* %0, float** %15
store float* %1, float** %16
store i32 %2, i32* %17
store float* %3, float** %18
store float* %4, float** %19
store float* %5, float** %20
store float* %6, float** %21
store float* %7, float** %22
store float* %8, float** %23
store float* %9, float** %24
store float* %10, float** %25
store float* %11, float** %26
store float* %12, float** %27
store float* %13, float** %28
store i32 22, i32* %55
store float 0x3FFE147AE0000000, float* %29
store float 0x3FF2E147A0000000, float* %30
%56 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 0
store float 0.000000e+00, float* %56
%57 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 1
store float 0x3F847AE140000000, float* %57
%58 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 2
store float 0x3F947AE140000000, float* %58
%59 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 3
store float 0x3F9EB851E0000000, float* %59
%60 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 4
store float 0x3FA99999A0000000, float* %60
%61 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 5
store float 0x3FB3333340000000, float* %61
%62 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 6
store float 0x3FB99999A0000000, float* %62
%63 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 7
store float 0x3FC3333340000000, float* %63
%64 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 8
store float 0x3FC99999A0000000, float* %64
%65 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 9
store float 2.500000e-01, float* %65
%66 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 10
store float 0x3FD3333340000000, float* %66
%67 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 11
store float 0x3FD99999A0000000, float* %67
%68 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 12
store float 5.000000e-01, float* %68
%69 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 13
store float 7.500000e-01, float* %69
%70 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 14
store float 1.000000e+00, float* %70
%71 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 15
store float 1.500000e+00, float* %71
%72 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 16
store float 2.000000e+00, float* %72
%73 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 17
store float 3.000000e+00, float* %73
%74 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 18
store float 4.000000e+00, float* %74
%75 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 19
store float 5.000000e+00, float* %75
%76 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 20
store float 7.500000e+00, float* %76
%77 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 21
store float 1.000000e+01, float* %77
%78 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 0
store float 0x3FF0ED9160000000, float* %78
%79 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 1
store float 0x3FF0ED9160000000, float* %79
%80 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 2
store float 0x3FF1A1CAC0000000, float* %80
%81 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 3
store float 0x3FF2C8B440000000, float* %81
%82 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 4
store float 0x3FF45A1CA0000000, float* %82
%83 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 5
store float 0x3FF7020C40000000, float* %83
%84 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 6
store float 0x3FF9A9FBE0000000, float* %84
%85 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 7
store float 0x3FFED91680000000, float* %85
%86 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 8
store float 0x40018D4FE0000000, float* %86
%87 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 9
store float 0x4002CED920000000, float* %87
%88 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 10
store float 0x4003AE1480000000, float* %88
%89 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 11
store float 0x4004B22D00000000, float* %89
%90 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 12
store float 0x40045A1CA0000000, float* %90
%91 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 13
store float 0x4001106240000000, float* %91
%92 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 14
store float 0x3FF922D0E0000000, float* %92
%93 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 15
store float 0x3FD9FBE760000000, float* %93
%94 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 16
store float 0xBFDD2F1AA0000000, float* %94
%95 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 17
store float 0xBFEA3D70A0000000, float* %95
%96 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 18
store float 0xBFEA3D70A0000000, float* %96
%97 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 19
store float 0xBFEA3D70A0000000, float* %97
%98 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 20
store float 0xBFEA3D70A0000000, float* %98
%99 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 21
store float 0xBFEA3D70A0000000, float* %99
%100 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 0
store float 0x3FA47AE140000000, float* %100
%101 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 1
store float 0x3FA47AE140000000, float* %101
%102 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 2
store float 0x3FA47AE140000000, float* %102
%103 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 3
store float 0x3FA47AE140000000, float* %103
%104 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 4
store float 0x3FA47AE140000000, float* %104
%105 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 5
store float 0x3FA47AE140000000, float* %105
%106 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 6
store float 0x3FA47AE140000000, float* %106
%107 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 7
store float 0x3FA47AE140000000, float* %107
%108 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 8
store float 0x3FA47AE140000000, float* %108
%109 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 9
store float 0x3FA47AE140000000, float* %109
%110 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 10
store float 0x3FA47AE140000000, float* %110
%111 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 11
store float 0x3FA47AE140000000, float* %111
%112 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 12
store float 0x3FA47AE140000000, float* %112
%113 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 13
store float 0x3FB3B645A0000000, float* %113
%114 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 14
store float 0x3FC3333340000000, float* %114
%115 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 15
store float 0x3FD03126E0000000, float* %115
%116 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 16
store float 0x3FD3333340000000, float* %116
%117 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 17
store float 0x3FD3333340000000, float* %117
%118 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 18
store float 0x3FD3333340000000, float* %118
%119 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 19
store float 0x3FD3333340000000, float* %119
%120 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 20
store float 0x3FD3333340000000, float* %120
%121 = getelementptr inbounds [22 x float], [22 x float]* %33, i64 0, i64 21
store float 0x3FD3333340000000, float* %121
%122 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 0
store float 8.650000e+02, float* %122
%123 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 1
store float 8.650000e+02, float* %123
%124 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 2
store float 8.650000e+02, float* %124
%125 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 3
store float 9.080000e+02, float* %125
%126 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 4
store float 1.054000e+03, float* %126
%127 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 5
store float 1.086000e+03, float* %127
%128 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 6
store float 1.032000e+03, float* %128
%129 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 7
store float 8.780000e+02, float* %129
%130 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 8
store float 7.480000e+02, float* %130
%131 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 9
store float 6.540000e+02, float* %131
%132 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 10
store float 5.870000e+02, float* %132
%133 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 11
store float 5.030000e+02, float* %133
%134 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 12
store float 4.570000e+02, float* %134
%135 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 13
store float 4.100000e+02, float* %135
%136 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 14
store float 4.000000e+02, float* %136
%137 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 15
store float 4.000000e+02, float* %137
%138 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 16
store float 4.000000e+02, float* %138
%139 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 17
store float 4.000000e+02, float* %139
%140 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 18
store float 4.000000e+02, float* %140
%141 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 19
store float 4.000000e+02, float* %141
%142 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 20
store float 4.000000e+02, float* %142
%143 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 21
store float 4.000000e+02, float* %143
%144 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 0
store float 0xBFF2F9DB20000000, float* %144
%145 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 1
store float 0xBFF2F9DB20000000, float* %145
%146 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 2
store float 0xBFF3810620000000, float* %146
%147 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 3
store float 0xBFF45E3540000000, float* %147
%148 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 4
store float 0xBFF5893740000000, float* %148
%149 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 5
store float 0xBFF7893740000000, float* %149
%150 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 6
store float 0xBFF9FBE760000000, float* %150
%151 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 7
store float 0xBFFEE56040000000, float* %151
%152 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 8
store float 0xC001810620000000, float* %152
%153 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 9
store float 0xC0030C49C0000000, float* %153
%154 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 10
store float 0xC00424DD20000000, float* %154
%155 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 11
store float 0xC005418940000000, float* %155
%156 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 12
store float 0xC0055A1CA0000000, float* %156
%157 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 13
store float 0xC003353F80000000, float* %157
%158 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 14
store float 0xBFFF47AE20000000, float* %158
%159 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 15
store float 0xBFF0666660000000, float* %159
%160 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 16
store float 0xBFD322D0E0000000, float* %160
%161 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 17
store float 0.000000e+00, float* %161
%162 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 18
store float 0.000000e+00, float* %162
%163 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 19
store float 0.000000e+00, float* %163
%164 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 20
store float 0.000000e+00, float* %164
%165 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 21
store float 0.000000e+00, float* %165
%166 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 0
store float 0x3FFD6C8B40000000, float* %166
%167 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 1
store float 0x3FFD6C8B40000000, float* %167
%168 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 2
store float 0x3FFD70A3E0000000, float* %168
%169 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 3
store float 0x3FFD74BC60000000, float* %169
%170 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 4
store float 0x3FFD7CEDA0000000, float* %170
%171 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 5
store float 0x3FFD851EC0000000, float* %171
%172 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 6
store float 0x3FFD8D4FE0000000, float* %172
%173 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 7
store float 0x3FFDA1CAC0000000, float* %173
%174 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 8
store float 0x3FFDB22D00000000, float* %174
%175 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 9
store float 0x3FFDC6A7E0000000, float* %175
%176 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 10
store float 0x3FFDD70A40000000, float* %176
%177 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 11
store float 0x3FFDFBE760000000, float* %177
%178 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 12
store float 0x3FFE20C4A0000000, float* %178
%179 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 13
store float 0x3FFE7EF9E0000000, float* %179
%180 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 14
store float 0x3FFEDD2F20000000, float* %180
%181 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 15
store float 0x3FFF958100000000, float* %181
%182 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 16
store float 0x400026E980000000, float* %182
%183 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 17
store float 0x4000E147A0000000, float* %183
%184 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 18
store float 0x40019999A0000000, float* %184
%185 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 19
store float 0x400253F7C0000000, float* %185
%186 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 20
store float 0x400422D0E0000000, float* %186
%187 = getelementptr inbounds [22 x float], [22 x float]* %36, i64 0, i64 21
store float 0x4005F3B640000000, float* %187
%188 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 0
%189 = load float, float* %188
%190 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 0
%191 = load float, float* %190
%192 = load float, float* %30
%193 = call float @llvm.fmuladd.f32(float %191, float %192, float %189)
%194 = fpext float %193 to double
%195 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 0
%196 = load float, float* %195
%197 = fpext float %196 to double
%198 = fdiv double 1.100000e+03, %197
%199 = fptrunc double %198 to float
%200 = call double @log(float %199)
%201 = fmul double %194, %200
%202 = fptrunc double %201 to float
store float %202, float* %39
%203 = load float*, float** %20
%204 = load float, float* %203
%205 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 0
%206 = load float, float* %205
%207 = fcmp olt float %204, %206
br i1 %207, label %208, label %245
208: ; preds = %14
%209 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 0
%210 = load float, float* %209
%211 = fpext float %210 to double
%212 = load float*, float** %20
%213 = load float, float* %212
%214 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 0
%215 = load float, float* %214
%216 = fdiv float %213, %215
%217 = call double @log(float %216)
%218 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 0
%219 = load float, float* %218
%220 = fpext float %219 to double
%221 = load float*, float** %21
%222 = load float, float* %221
%223 = load float, float* %29
%224 = load float, float* %30
%225 = fpext float %224 to double
%226 = load float*, float** %20
%227 = load float, float* %226
%228 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 0
%229 = load float, float* %228
%230 = fdiv float %227, %229
%231 = call double @log(float %230)
%232 = fmul double %225, %231
%233 = fptrunc double %232 to float
%234 = call float @exp(float %233)
%235 = call float @llvm.fmuladd.f32(float %223, float %234, float %222)
%236 = load float*, float** %21
%237 = load float, float* %236
%238 = load float, float* %29
%239 = fadd float %237, %238
%240 = fdiv float %235, %239
%241 = call double @log(float %240)
%242 = fmul double %220, %241
%243 = call double @llvm.fmuladd.f64(double %211, double %217, double %242)
%244 = fptrunc double %243 to float
store float %244, float* %40
br label %283
245: ; preds = %14
%246 = load float*, float** %20
%247 = load float, float* %246
%248 = fpext float %247 to double
%249 = fcmp olt double %248, 1.100000e+03
br i1 %249, label %250, label %266
250: ; preds = %245
%251 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 0
%252 = load float, float* %251
%253 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 0
%254 = load float, float* %253
%255 = load float, float* %30
%256 = call float @llvm.fmuladd.f32(float %254, float %255, float %252)
%257 = fpext float %256 to double
%258 = load float*, float** %20
%259 = load float, float* %258
%260 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 0
%261 = load float, float* %260
%262 = fdiv float %259, %261
%263 = call double @log(float %262)
%264 = fmul double %257, %263
%265 = fptrunc double %264 to float
store float %265, float* %40
br label %282
266: ; preds = %245
%267 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 0
%268 = load float, float* %267
%269 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 0
%270 = load float, float* %269
%271 = load float, float* %30
%272 = call float @llvm.fmuladd.f32(float %270, float %271, float %268)
%273 = fpext float %272 to double
%274 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 0
%275 = load float, float* %274
%276 = fpext float %275 to double
%277 = fdiv double 1.100000e+03, %276
%278 = fptrunc double %277 to float
%279 = call double @log(float %278)
%280 = fmul double %273, %279
%281 = fptrunc double %280 to float
store float %281, float* %40
br label %282
282: ; preds = %266, %250
br label %283
283: ; preds = %282, %208
%284 = load float*, float** %21
%285 = load float, float* %284
%286 = load float, float* %39
%287 = load float, float* %40
%288 = fsub float %286, %287
%289 = call float @exp(float %288)
%290 = fmul float %285, %289
store float %290, float* %38
store float -1.000000e+00, float* %52
store i32 0, i32* %53
br label %291
291: ; preds = %531, %283
%292 = load i32, i32* %53
%293 = load i32, i32* %55
%294 = icmp slt i32 %292, %293
br i1 %294, label %295, label %534
295: ; preds = %291
%296 = load float*, float** %19
%297 = load float, float* %296
%298 = load i32, i32* %53
%299 = sext i32 %298 to i64
%300 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %299
%301 = load float, float* %300
%302 = fcmp olt float %297, %301
br i1 %302, label %303, label %346
303: ; preds = %295
%304 = load i32, i32* %53
%305 = sext i32 %304 to i64
%306 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 %305
%307 = load float, float* %306
%308 = fpext float %307 to double
%309 = load float*, float** %19
%310 = load float, float* %309
%311 = load i32, i32* %53
%312 = sext i32 %311 to i64
%313 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %312
%314 = load float, float* %313
%315 = fdiv float %310, %314
%316 = call double @log(float %315)
%317 = load i32, i32* %53
%318 = sext i32 %317 to i64
%319 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 %318
%320 = load float, float* %319
%321 = fpext float %320 to double
%322 = load float, float* %38
%323 = load float, float* %29
%324 = load float, float* %30
%325 = fpext float %324 to double
%326 = load float*, float** %19
%327 = load float, float* %326
%328 = load i32, i32* %53
%329 = sext i32 %328 to i64
%330 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %329
%331 = load float, float* %330
%332 = fdiv float %327, %331
%333 = call double @log(float %332)
%334 = fmul double %325, %333
%335 = fptrunc double %334 to float
%336 = call float @exp(float %335)
%337 = call float @llvm.fmuladd.f32(float %323, float %336, float %322)
%338 = load float, float* %38
%339 = load float, float* %29
%340 = fadd float %338, %339
%341 = fdiv float %337, %340
%342 = call double @log(float %341)
%343 = fmul double %321, %342
%344 = call double @llvm.fmuladd.f64(double %308, double %316, double %343)
%345 = fptrunc double %344 to float
store float %345, float* %42
br label %396
346: ; preds = %295
%347 = load float*, float** %19
%348 = load float, float* %347
%349 = fpext float %348 to double
%350 = fcmp olt double %349, 1.100000e+03
br i1 %350, label %351, label %373
351: ; preds = %346
%352 = load i32, i32* %53
%353 = sext i32 %352 to i64
%354 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 %353
%355 = load float, float* %354
%356 = load i32, i32* %53
%357 = sext i32 %356 to i64
%358 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 %357
%359 = load float, float* %358
%360 = load float, float* %30
%361 = call float @llvm.fmuladd.f32(float %359, float %360, float %355)
%362 = fpext float %361 to double
%363 = load float*, float** %19
%364 = load float, float* %363
%365 = load i32, i32* %53
%366 = sext i32 %365 to i64
%367 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %366
%368 = load float, float* %367
%369 = fdiv float %364, %368
%370 = call double @log(float %369)
%371 = fmul double %362, %370
%372 = fptrunc double %371 to float
store float %372, float* %42
br label %395
373: ; preds = %346
%374 = load i32, i32* %53
%375 = sext i32 %374 to i64
%376 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 %375
%377 = load float, float* %376
%378 = load i32, i32* %53
%379 = sext i32 %378 to i64
%380 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 %379
%381 = load float, float* %380
%382 = load float, float* %30
%383 = call float @llvm.fmuladd.f32(float %381, float %382, float %377)
%384 = fpext float %383 to double
%385 = load i32, i32* %53
%386 = sext i32 %385 to i64
%387 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %386
%388 = load float, float* %387
%389 = fpext float %388 to double
%390 = fdiv double 1.100000e+03, %389
%391 = fptrunc double %390 to float
%392 = call double @log(float %391)
%393 = fmul double %384, %392
%394 = fptrunc double %393 to float
store float %394, float* %42
br label %395
395: ; preds = %373, %351
br label %396
396: ; preds = %395, %303
%397 = load float*, float** %18
%398 = load float, float* %397
%399 = load i32, i32* %53
%400 = sext i32 %399 to i64
%401 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %400
%402 = load float, float* %401
%403 = fcmp olt float %398, %402
br i1 %403, label %404, label %447
404: ; preds = %396
%405 = load i32, i32* %53
%406 = sext i32 %405 to i64
%407 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 %406
%408 = load float, float* %407
%409 = fpext float %408 to double
%410 = load float*, float** %18
%411 = load float, float* %410
%412 = load i32, i32* %53
%413 = sext i32 %412 to i64
%414 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %413
%415 = load float, float* %414
%416 = fdiv float %411, %415
%417 = call double @log(float %416)
%418 = load i32, i32* %53
%419 = sext i32 %418 to i64
%420 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 %419
%421 = load float, float* %420
%422 = fpext float %421 to double
%423 = load float, float* %38
%424 = load float, float* %29
%425 = load float, float* %30
%426 = fpext float %425 to double
%427 = load float*, float** %18
%428 = load float, float* %427
%429 = load i32, i32* %53
%430 = sext i32 %429 to i64
%431 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %430
%432 = load float, float* %431
%433 = fdiv float %428, %432
%434 = call double @log(float %433)
%435 = fmul double %426, %434
%436 = fptrunc double %435 to float
%437 = call float @exp(float %436)
%438 = call float @llvm.fmuladd.f32(float %424, float %437, float %423)
%439 = load float, float* %38
%440 = load float, float* %29
%441 = fadd float %439, %440
%442 = fdiv float %438, %441
%443 = call double @log(float %442)
%444 = fmul double %422, %443
%445 = call double @llvm.fmuladd.f64(double %409, double %417, double %444)
%446 = fptrunc double %445 to float
store float %446, float* %41
br label %497
447: ; preds = %396
%448 = load float*, float** %18
%449 = load float, float* %448
%450 = fpext float %449 to double
%451 = fcmp olt double %450, 1.100000e+03
br i1 %451, label %452, label %474
452: ; preds = %447
%453 = load i32, i32* %53
%454 = sext i32 %453 to i64
%455 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 %454
%456 = load float, float* %455
%457 = load i32, i32* %53
%458 = sext i32 %457 to i64
%459 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 %458
%460 = load float, float* %459
%461 = load float, float* %30
%462 = call float @llvm.fmuladd.f32(float %460, float %461, float %456)
%463 = fpext float %462 to double
%464 = load float*, float** %18
%465 = load float, float* %464
%466 = load i32, i32* %53
%467 = sext i32 %466 to i64
%468 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %467
%469 = load float, float* %468
%470 = fdiv float %465, %469
%471 = call double @log(float %470)
%472 = fmul double %463, %471
%473 = fptrunc double %472 to float
store float %473, float* %41
br label %496
474: ; preds = %447
%475 = load i32, i32* %53
%476 = sext i32 %475 to i64
%477 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 %476
%478 = load float, float* %477
%479 = load i32, i32* %53
%480 = sext i32 %479 to i64
%481 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 %480
%482 = load float, float* %481
%483 = load float, float* %30
%484 = call float @llvm.fmuladd.f32(float %482, float %483, float %478)
%485 = fpext float %484 to double
%486 = load i32, i32* %53
%487 = sext i32 %486 to i64
%488 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %487
%489 = load float, float* %488
%490 = fpext float %489 to double
%491 = fdiv double 1.100000e+03, %490
%492 = fptrunc double %491 to float
%493 = call double @log(float %492)
%494 = fmul double %485, %493
%495 = fptrunc double %494 to float
store float %495, float* %41
br label %496
496: ; preds = %474, %452
br label %497
497: ; preds = %496, %404
%498 = load float, float* %42
%499 = load float, float* %41
%500 = fsub float %498, %499
%501 = call float @exp(float %500)
%502 = load i32, i32* %53
%503 = sext i32 %502 to i64
%504 = getelementptr inbounds [22 x float], [22 x float]* %37, i64 0, i64 %503
store float %501, float* %504
%505 = load i32, i32* %53
%506 = sext i32 %505 to i64
%507 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 %506
%508 = load float, float* %507
%509 = fpext float %508 to double
%510 = fdiv double 1.000000e+00, %509
%511 = load float*, float** %28
%512 = load float, float* %511
%513 = fpext float %512 to double
%514 = fcmp ole double %510, %513
br i1 %514, label %515, label %530
515: ; preds = %497
%516 = load float, float* %52
%517 = fpext float %516 to double
%518 = fcmp olt double %517, 0.000000e+00
br i1 %518, label %519, label %524
519: ; preds = %515
%520 = load i32, i32* %53
%521 = sext i32 %520 to i64
%522 = getelementptr inbounds [22 x float], [22 x float]* %37, i64 0, i64 %521
%523 = load float, float* %522
store float %523, float* %52
br label %529
524: ; preds = %515
%525 = load float, float* %52
%526 = load i32, i32* %53
%527 = sext i32 %526 to i64
%528 = getelementptr inbounds [22 x float], [22 x float]* %37, i64 0, i64 %527
store float %525, float* %528
br label %529
529: ; preds = %524, %519
br label %530
530: ; preds = %529, %497
br label %531
531: ; preds = %530
%532 = load i32, i32* %53
%533 = add nsw i32 %532, 1
store i32 %533, i32* %53
br label %291
534: ; preds = %291
%535 = load i32, i32* %55
%536 = sub nsw i32 %535, 1
store i32 %536, i32* %54
%537 = load i32, i32* %54
%538 = sext i32 %537 to i64
%539 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 %538
%540 = load float, float* %539
%541 = fpext float %540 to double
%542 = fdiv double 1.000000e+00, %541
%543 = fptrunc double %542 to float
store float %543, float* %47
%544 = load i32, i32* %54
%545 = sext i32 %544 to i64
%546 = getelementptr inbounds [22 x float], [22 x float]* %37, i64 0, i64 %545
%547 = load float, float* %546
store float %547, float* %49
%548 = load i32, i32* %54
%549 = sext i32 %548 to i64
%550 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 %549
%551 = load float, float* %550
%552 = fpext float %551 to double
%553 = fdiv double 1.000000e+00, %552
%554 = fptrunc double %553 to float
store float %554, float* %48
%555 = load i32, i32* %54
%556 = sext i32 %555 to i64
%557 = getelementptr inbounds [22 x float], [22 x float]* %37, i64 0, i64 %556
%558 = load float, float* %557
store float %558, float* %50
store float 0.000000e+00, float* %51
%559 = load i32, i32* %17
%560 = sitofp i32 %559 to float
%561 = load float*, float** %16
%562 = load float, float* %561
%563 = fmul float %560, %562
%564 = fpext float %563 to double
%565 = fdiv double 1.000000e+00, %564
%566 = fptrunc double %565 to float
store float %566, float* %43
store i32 1, i32* %53
br label %567
567: ; preds = %724, %534
%568 = load i32, i32* %53
%569 = load i32, i32* %17
%570 = sdiv i32 %569, 2
%571 = icmp slt i32 %568, %570
br i1 %571, label %572, label %727
572: ; preds = %567
%573 = load i32, i32* %53
%574 = sitofp i32 %573 to float
%575 = load float, float* %43
%576 = fmul float %574, %575
store float %576, float* %46
%577 = load float, float* %46
%578 = load float, float* %48
%579 = fcmp ogt float %577, %578
br i1 %579, label %580, label %625
580: ; preds = %572
%581 = load float, float* %48
store float %581, float* %47
%582 = load float, float* %50
store float %582, float* %49
%583 = load i32, i32* %54
%584 = icmp sgt i32 %583, 0
br i1 %584, label %585, label %588
585: ; preds = %580
%586 = load i32, i32* %54
%587 = add nsw i32 %586, -1
store i32 %587, i32* %54
br label %588
588: ; preds = %585, %580
%589 = load i32, i32* %54
%590 = sext i32 %589 to i64
%591 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 %590
%592 = load float, float* %591
%593 = fpext float %592 to double
%594 = fcmp une double %593, 0.000000e+00
br i1 %594, label %595, label %603
595: ; preds = %588
%596 = load i32, i32* %54
%597 = sext i32 %596 to i64
%598 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 %597
%599 = load float, float* %598
%600 = fpext float %599 to double
%601 = fdiv double 1.000000e+00, %600
%602 = fptrunc double %601 to float
store float %602, float* %48
br label %604
603: ; preds = %588
store float 1.000000e+03, float* %48
br label %604
604: ; preds = %603, %595
%605 = load i32, i32* %54
%606 = sext i32 %605 to i64
%607 = getelementptr inbounds [22 x float], [22 x float]* %37, i64 0, i64 %606
%608 = load float, float* %607
store float %608, float* %50
%609 = load float, float* %48
%610 = load float, float* %47
%611 = fcmp une float %609, %610
br i1 %611, label %612, label %623
612: ; preds = %604
%613 = load float, float* %50
%614 = load float, float* %49
%615 = fsub float %613, %614
%616 = fpext float %615 to double
%617 = load float, float* %48
%618 = load float, float* %47
%619 = fdiv float %617, %618
%620 = call double @log(float %619)
%621 = fdiv double %616, %620
%622 = fptrunc double %621 to float
store float %622, float* %51
br label %624
623: ; preds = %604
store float 0.000000e+00, float* %51
br label %624
624: ; preds = %623, %612
br label %625
625: ; preds = %624, %572
%626 = load float, float* %49
%627 = fpext float %626 to double
%628 = load float, float* %51
%629 = fpext float %628 to double
%630 = load float, float* %46
%631 = load float, float* %47
%632 = fdiv float %630, %631
%633 = call double @log(float %632)
%634 = call double @llvm.fmuladd.f64(double %629, double %633, double %627)
%635 = fptrunc double %634 to float
store float %635, float* %44
%636 = load float, float* %46
%637 = load float*, float** %22
%638 = load float, float* %637
%639 = fcmp olt float %636, %638
br i1 %639, label %640, label %641
640: ; preds = %625
store float 1.000000e+00, float* %45
br label %718
641: ; preds = %625
%642 = load float, float* %46
%643 = load float*, float** %23
%644 = load float, float* %643
%645 = fcmp olt float %642, %644
br i1 %645, label %646, label %665
646: ; preds = %641
%647 = load float, float* %46
%648 = load float*, float** %22
%649 = load float, float* %648
%650 = fdiv float %647, %649
%651 = call double @log(float %650)
%652 = load float, float* %44
%653 = fpext float %652 to double
%654 = fsub double %653, 1.000000e+00
%655 = fmul double %651, %654
%656 = load float*, float** %23
%657 = load float, float* %656
%658 = load float*, float** %22
%659 = load float, float* %658
%660 = fdiv float %657, %659
%661 = call double @log(float %660)
%662 = fdiv double %655, %661
%663 = fadd double 1.000000e+00, %662
%664 = fptrunc double %663 to float
store float %664, float* %45
br label %717
665: ; preds = %641
%666 = load float, float* %46
%667 = load float*, float** %24
%668 = load float, float* %667
%669 = fcmp olt float %666, %668
br i1 %669, label %670, label %672
670: ; preds = %665
%671 = load float, float* %44
store float %671, float* %45
br label %716
672: ; preds = %665
%673 = load float, float* %46
%674 = load float*, float** %25
%675 = load float, float* %674
%676 = fcmp olt float %673, %675
br i1 %676, label %677, label %679
677: ; preds = %672
%678 = load float, float* %44
store float %678, float* %45
br label %715
679: ; preds = %672
%680 = load float, float* %46
%681 = load float*, float** %26
%682 = load float, float* %681
%683 = fcmp olt float %680, %682
br i1 %683, label %684, label %686
684: ; preds = %679
%685 = load float, float* %44
store float %685, float* %45
br label %714
686: ; preds = %679
%687 = load float, float* %46
%688 = load float*, float** %27
%689 = load float, float* %688
%690 = fcmp olt float %687, %689
br i1 %690, label %691, label %712
691: ; preds = %686
%692 = load float, float* %44
%693 = fpext float %692 to double
%694 = load float, float* %46
%695 = load float*, float** %26
%696 = load float, float* %695
%697 = fdiv float %694, %696
%698 = call double @log(float %697)
%699 = load float, float* %44
%700 = fpext float %699 to double
%701 = fsub double 1.000000e+00, %700
%702 = fmul double %698, %701
%703 = load float*, float** %27
%704 = load float, float* %703
%705 = load float*, float** %26
%706 = load float, float* %705
%707 = fdiv float %704, %706
%708 = call double @log(float %707)
%709 = fdiv double %702, %708
%710 = fadd double %693, %709
%711 = fptrunc double %710 to float
store float %711, float* %45
br label %713
712: ; preds = %686
store float 1.000000e+00, float* %45
br label %713
713: ; preds = %712, %691
br label %714
714: ; preds = %713, %684
br label %715
715: ; preds = %714, %677
br label %716
716: ; preds = %715, %670
br label %717
717: ; preds = %716, %646
br label %718
718: ; preds = %717, %640
%719 = load float, float* %45
%720 = load float*, float** %15
%721 = load i32, i32* %53
%722 = sext i32 %721 to i64
%723 = getelementptr inbounds float, float* %720, i64 %722
store float %719, float* %723
br label %724
724: ; preds = %718
%725 = load i32, i32* %53
%726 = add nsw i32 %725, 1
store i32 %726, i32* %53
br label %567
727: ; preds = %567
ret void
}

LLVM IR (-O2):
define void @cb2008_ampf(float* nocapture writeonly %0, float* nocapture %1, i32 %2, float* nocapture %3, float* nocapture %4, float* nocapture %5, float* nocapture %6, float* nocapture %7, float* nocapture %8, float* nocapture %9, float* nocapture %10, float* nocapture %11, float* nocapture %12, float* nocapture %13) {
%15 = alloca [22 x float]
%16 = alloca [22 x float]
%17 = alloca [22 x float]
%18 = alloca [22 x float]
%19 = alloca [22 x float]
%20 = bitcast [22 x float]* %15 to i8*
%21 = bitcast [22 x float]* %16 to i8*
%22 = bitcast [22 x float]* %17 to i8*
%23 = bitcast [22 x float]* %18 to i8*
%24 = bitcast [22 x float]* %19 to i8*
%25 = bitcast [22 x float]* %15 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0x3F847AE140000000, float 0x3F947AE140000000, float 0x3F9EB851E0000000>, <4 x float>* %25
%26 = getelementptr inbounds [22 x float], [22 x float]* %15, i64 0, i64 4
%27 = bitcast float* %26 to <4 x float>*
store <4 x float> <float 0x3FA99999A0000000, float 0x3FB3333340000000, float 0x3FB99999A0000000, float 0x3FC3333340000000>, <4 x float>* %27
%28 = getelementptr inbounds [22 x float], [22 x float]* %15, i64 0, i64 8
%29 = bitcast float* %28 to <4 x float>*
store <4 x float> <float 0x3FC99999A0000000, float 2.500000e-01, float 0x3FD3333340000000, float 0x3FD99999A0000000>, <4 x float>* %29
%30 = getelementptr inbounds [22 x float], [22 x float]* %15, i64 0, i64 12
%31 = bitcast float* %30 to <4 x float>*
store <4 x float> <float 5.000000e-01, float 7.500000e-01, float 1.000000e+00, float 1.500000e+00>, <4 x float>* %31
%32 = getelementptr inbounds [22 x float], [22 x float]* %15, i64 0, i64 16
%33 = bitcast float* %32 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 3.000000e+00, float 4.000000e+00, float 5.000000e+00>, <4 x float>* %33
%34 = getelementptr inbounds [22 x float], [22 x float]* %15, i64 0, i64 20
store float 7.500000e+00, float* %34
%35 = getelementptr inbounds [22 x float], [22 x float]* %15, i64 0, i64 21
store float 1.000000e+01, float* %35
%36 = getelementptr inbounds [22 x float], [22 x float]* %16, i64 0, i64 0
%37 = bitcast [22 x float]* %16 to <4 x float>*
store <4 x float> <float 0x3FF0ED9160000000, float 0x3FF0ED9160000000, float 0x3FF1A1CAC0000000, float 0x3FF2C8B440000000>, <4 x float>* %37
%38 = getelementptr inbounds [22 x float], [22 x float]* %16, i64 0, i64 4
%39 = bitcast float* %38 to <4 x float>*
store <4 x float> <float 0x3FF45A1CA0000000, float 0x3FF7020C40000000, float 0x3FF9A9FBE0000000, float 0x3FFED91680000000>, <4 x float>* %39
%40 = getelementptr inbounds [22 x float], [22 x float]* %16, i64 0, i64 8
%41 = bitcast float* %40 to <4 x float>*
store <4 x float> <float 0x40018D4FE0000000, float 0x4002CED920000000, float 0x4003AE1480000000, float 0x4004B22D00000000>, <4 x float>* %41
%42 = getelementptr inbounds [22 x float], [22 x float]* %16, i64 0, i64 12
%43 = bitcast float* %42 to <4 x float>*
store <4 x float> <float 0x40045A1CA0000000, float 0x4001106240000000, float 0x3FF922D0E0000000, float 0x3FD9FBE760000000>, <4 x float>* %43
%44 = getelementptr inbounds [22 x float], [22 x float]* %16, i64 0, i64 16
%45 = bitcast float* %44 to <4 x float>*
store <4 x float> <float 0xBFDD2F1AA0000000, float 0xBFEA3D70A0000000, float 0xBFEA3D70A0000000, float 0xBFEA3D70A0000000>, <4 x float>* %45
%46 = getelementptr inbounds [22 x float], [22 x float]* %16, i64 0, i64 20
store float 0xBFEA3D70A0000000, float* %46
%47 = getelementptr inbounds [22 x float], [22 x float]* %16, i64 0, i64 21
store float 0xBFEA3D70A0000000, float* %47
%48 = bitcast [22 x float]* %17 to <4 x float>*
store <4 x float> <float 8.650000e+02, float 8.650000e+02, float 8.650000e+02, float 9.080000e+02>, <4 x float>* %48
%49 = getelementptr inbounds [22 x float], [22 x float]* %17, i64 0, i64 4
%50 = bitcast float* %49 to <4 x float>*
store <4 x float> <float 1.054000e+03, float 1.086000e+03, float 1.032000e+03, float 8.780000e+02>, <4 x float>* %50
%51 = getelementptr inbounds [22 x float], [22 x float]* %17, i64 0, i64 8
%52 = bitcast float* %51 to <4 x float>*
store <4 x float> <float 7.480000e+02, float 6.540000e+02, float 5.870000e+02, float 5.030000e+02>, <4 x float>* %52
%53 = getelementptr inbounds [22 x float], [22 x float]* %17, i64 0, i64 12
%54 = bitcast float* %53 to <4 x float>*
store <4 x float> <float 4.570000e+02, float 4.100000e+02, float 4.000000e+02, float 4.000000e+02>, <4 x float>* %54
%55 = getelementptr inbounds [22 x float], [22 x float]* %17, i64 0, i64 16
%56 = bitcast float* %55 to <4 x float>*
store <4 x float> <float 4.000000e+02, float 4.000000e+02, float 4.000000e+02, float 4.000000e+02>, <4 x float>* %56
%57 = getelementptr inbounds [22 x float], [22 x float]* %17, i64 0, i64 20
store float 4.000000e+02, float* %57
%58 = getelementptr inbounds [22 x float], [22 x float]* %17, i64 0, i64 21
store float 4.000000e+02, float* %58
%59 = bitcast [22 x float]* %18 to <4 x float>*
store <4 x float> <float 0xBFF2F9DB20000000, float 0xBFF2F9DB20000000, float 0xBFF3810620000000, float 0xBFF45E3540000000>, <4 x float>* %59
%60 = getelementptr inbounds [22 x float], [22 x float]* %18, i64 0, i64 4
%61 = bitcast float* %60 to <4 x float>*
store <4 x float> <float 0xBFF5893740000000, float 0xBFF7893740000000, float 0xBFF9FBE760000000, float 0xBFFEE56040000000>, <4 x float>* %61
%62 = getelementptr inbounds [22 x float], [22 x float]* %18, i64 0, i64 8
%63 = bitcast float* %62 to <4 x float>*
store <4 x float> <float 0xC001810620000000, float 0xC0030C49C0000000, float 0xC00424DD20000000, float 0xC005418940000000>, <4 x float>* %63
%64 = getelementptr inbounds [22 x float], [22 x float]* %18, i64 0, i64 12
%65 = bitcast float* %64 to <4 x float>*
store <4 x float> <float 0xC0055A1CA0000000, float 0xC003353F80000000, float 0xBFFF47AE20000000, float 0xBFF0666660000000>, <4 x float>* %65
%66 = getelementptr inbounds [22 x float], [22 x float]* %18, i64 0, i64 16
store float 0xBFD322D0E0000000, float* %66
%67 = getelementptr inbounds [22 x float], [22 x float]* %18, i64 0, i64 17
%68 = bitcast float* %67 to i8*
%69 = tail call double @log(float 0x3FF458C940000000)
%70 = fmul double %69, 0xBFD5DACEC0000000
%71 = fptrunc double %70 to float
%72 = load float, float* %5
%73 = fcmp olt float %72, 8.650000e+02
br i1 %73, label %74, label %93
74: ; preds = %14
%75 = load float, float* %36
%76 = fpext float %75 to double
%77 = fdiv float %72, 8.650000e+02
%78 = tail call double @log(float %77)
%79 = load float, float* %6
%80 = load float, float* %5
%81 = fdiv float %80, 8.650000e+02
%82 = tail call double @log(float %81)
%83 = fmul double %82, 0x3FF2E147A0000000
%84 = fptrunc double %83 to float
%85 = tail call float @exp(float %84)
%86 = tail call float @llvm.fmuladd.f32(float %85, float 0x3FFE147AE0000000, float %79)
%87 = load float, float* %6
%88 = fadd float %87, 0x3FFE147AE0000000
%89 = fdiv float %86, %88
%90 = tail call double @log(float %89)
%91 = fmul double %90, 0xBFF2F9DB20000000
%92 = tail call double @llvm.fmuladd.f64(double %76, double %78, double %91)
br label %105
93: ; preds = %14
%94 = fcmp olt float %72, 1.100000e+03
%95 = load float, float* %36
%96 = fadd float %95, 0xBFF6644500000000
%97 = fpext float %96 to double
br i1 %94, label %98, label %102
98: ; preds = %93
%99 = fdiv float %72, 8.650000e+02
%100 = tail call double @log(float %99)
%101 = fmul double %100, %97
br label %105
102: ; preds = %93
%103 = tail call double @log(float 0x3FF458C940000000)
%104 = fmul double %103, %97
br label %105
105: ; preds = %98, %102, %74
%106 = phi double [ %92, %74 ], [ %101, %98 ], [ %104, %102 ]
%107 = fptrunc double %106 to float
%108 = load float, float* %6
%109 = fsub float %71, %107
%110 = tail call float @exp(float %109)
%111 = fmul float %108, %110
%112 = fadd float %111, 0x3FFE147AE0000000
br label %113
113: ; preds = %210, %105
%114 = phi float [ 8.650000e+02, %105 ], [ %212, %210 ]
%115 = phi i64 [ 0, %105 ], [ %208, %210 ]
%116 = phi float [ -1.000000e+00, %105 ], [ %207, %210 ]
%117 = load float, float* %4
%118 = fcmp olt float %117, %114
br i1 %118, label %119, label %139
119: ; preds = %113
%120 = getelementptr inbounds [22 x float], [22 x float]* %16, i64 0, i64 %115
%121 = load float, float* %120
%122 = fpext float %121 to double
%123 = fdiv float %117, %114
%124 = tail call double @log(float %123)
%125 = getelementptr inbounds [22 x float], [22 x float]* %18, i64 0, i64 %115
%126 = load float, float* %125
%127 = fpext float %126 to double
%128 = load float, float* %4
%129 = fdiv float %128, %114
%130 = tail call double @log(float %129)
%131 = fmul double %130, 0x3FF2E147A0000000
%132 = fptrunc double %131 to float
%133 = tail call float @exp(float %132)
%134 = tail call float @llvm.fmuladd.f32(float %133, float 0x3FFE147AE0000000, float %111)
%135 = fdiv float %134, %112
%136 = tail call double @log(float %135)
%137 = fmul double %136, %127
%138 = tail call double @llvm.fmuladd.f64(double %122, double %124, double %137)
br label %155
139: ; preds = %113
%140 = fcmp olt float %117, 1.100000e+03
%141 = getelementptr inbounds [22 x float], [22 x float]* %16, i64 0, i64 %115
%142 = load float, float* %141
%143 = getelementptr inbounds [22 x float], [22 x float]* %18, i64 0, i64 %115
%144 = load float, float* %143
%145 = tail call float @llvm.fmuladd.f32(float %144, float 0x3FF2E147A0000000, float %142)
%146 = fpext float %145 to double
br i1 %140, label %147, label %151
147: ; preds = %139
%148 = fdiv float %117, %114
%149 = tail call double @log(float %148)
%150 = fmul double %149, %146
br label %155
151: ; preds = %139
%152 = fdiv float 1.100000e+03, %114
%153 = tail call double @log(float %152)
%154 = fmul double %153, %146
br label %155
155: ; preds = %147, %151, %119
%156 = phi float [ %126, %119 ], [ %144, %147 ], [ %144, %151 ]
%157 = phi float [ %121, %119 ], [ %142, %147 ], [ %142, %151 ]
%158 = phi double [ %138, %119 ], [ %150, %147 ], [ %154, %151 ]
%159 = fptrunc double %158 to float
%160 = load float, float* %3
%161 = fcmp olt float %160, %114
br i1 %161, label %162, label %178
162: ; preds = %155
%163 = fpext float %157 to double
%164 = fdiv float %160, %114
%165 = tail call double @log(float %164)
%166 = fpext float %156 to double
%167 = load float, float* %3
%168 = fdiv float %167, %114
%169 = tail call double @log(float %168)
%170 = fmul double %169, 0x3FF2E147A0000000
%171 = fptrunc double %170 to float
%172 = tail call float @exp(float %171)
%173 = tail call float @llvm.fmuladd.f32(float %172, float 0x3FFE147AE0000000, float %111)
%174 = fdiv float %173, %112
%175 = tail call double @log(float %174)
%176 = fmul double %175, %166
%177 = tail call double @llvm.fmuladd.f64(double %163, double %165, double %176)
br label %190
178: ; preds = %155
%179 = fcmp olt float %160, 1.100000e+03
%180 = tail call float @llvm.fmuladd.f32(float %156, float 0x3FF2E147A0000000, float %157)
%181 = fpext float %180 to double
br i1 %179, label %182, label %186
182: ; preds = %178
%183 = fdiv float %160, %114
%184 = tail call double @log(float %183)
%185 = fmul double %184, %181
br label %190
186: ; preds = %178
%187 = fdiv float 1.100000e+03, %114
%188 = tail call double @log(float %187)
%189 = fmul double %188, %181
br label %190
190: ; preds = %182, %186, %162
%191 = phi double [ %177, %162 ], [ %185, %182 ], [ %189, %186 ]
%192 = fptrunc double %191 to float
%193 = fsub float %159, %192
%194 = tail call float @exp(float %193)
%195 = getelementptr inbounds [22 x float], [22 x float]* %19, i64 0, i64 %115
store float %194, float* %195
%196 = getelementptr inbounds [22 x float], [22 x float]* %15, i64 0, i64 %115
%197 = load float, float* %196
%198 = fpext float %197 to double
%199 = fdiv double 1.000000e+00, %198
%200 = load float, float* %13
%201 = fpext float %200 to double
%202 = fcmp ugt double %199, %201
br i1 %202, label %206, label %203
203: ; preds = %190
%204 = fcmp olt float %116, 0.000000e+00
br i1 %204, label %206, label %205
205: ; preds = %203
store float %116, float* %195
br label %206
206: ; preds = %203, %190, %205
%207 = phi float [ %116, %205 ], [ %116, %190 ], [ %194, %203 ]
%208 = add nuw nsw i64 %115, 1
%209 = icmp eq i64 %208, 22
br i1 %209, label %213, label %210
210: ; preds = %206
%211 = getelementptr inbounds [22 x float], [22 x float]* %17, i64 0, i64 %208
%212 = load float, float* %211
br label %113
213: ; preds = %206
%214 = load float, float* %35
%215 = fdiv float 1.000000e+00, %214
%216 = getelementptr inbounds [22 x float], [22 x float]* %19, i64 0, i64 21
%217 = load float, float* %216
%218 = sitofp i32 %2 to float
%219 = load float, float* %1
%220 = fmul float %219, %218
%221 = fdiv float 1.000000e+00, %220
%222 = icmp sgt i32 %2, 3
br i1 %222, label %223, label %317
223: ; preds = %213
%224 = lshr i32 %2, 1
%225 = zext i32 %224 to i64
br label %226
226: ; preds = %223, %312
%227 = phi i64 [ 1, %223 ], [ %315, %312 ]
%228 = phi i32 [ 21, %223 ], [ %264, %312 ]
%229 = phi float [ 0.000000e+00, %223 ], [ %263, %312 ]
%230 = phi float [ %217, %223 ], [ %262, %312 ]
%231 = phi float [ %217, %223 ], [ %261, %312 ]
%232 = phi float [ %215, %223 ], [ %260, %312 ]
%233 = phi float [ %215, %223 ], [ %259, %312 ]
%234 = trunc i64 %227 to i32
%235 = sitofp i32 %234 to float
%236 = fmul float %221, %235
%237 = fcmp ogt float %236, %232
br i1 %237, label %238, label %258
238: ; preds = %226
%239 = icmp sgt i32 %228, 0
%240 = sext i1 %239 to i32
%241 = add nsw i32 %228, %240
%242 = sext i32 %241 to i64
%243 = getelementptr inbounds [22 x float], [22 x float]* %15, i64 0, i64 %242
%244 = load float, float* %243
%245 = fcmp une float %244, 0.000000e+00
%246 = fdiv float 1.000000e+00, %244
%247 = select i1 %245, float %246, float 1.000000e+03
%248 = getelementptr inbounds [22 x float], [22 x float]* %19, i64 0, i64 %242
%249 = load float, float* %248
%250 = fcmp une float %247, %232
br i1 %250, label %251, label %258
251: ; preds = %238
%252 = fsub float %249, %230
%253 = fpext float %252 to double
%254 = fdiv float %247, %232
%255 = tail call double @log(float %254)
%256 = fdiv double %253, %255
%257 = fptrunc double %256 to float
br label %258
258: ; preds = %238, %251, %226
%259 = phi float [ %232, %251 ], [ %233, %226 ], [ %232, %238 ]
%260 = phi float [ %247, %251 ], [ %232, %226 ], [ %247, %238 ]
%261 = phi float [ %230, %251 ], [ %231, %226 ], [ %230, %238 ]
%262 = phi float [ %249, %251 ], [ %230, %226 ], [ %249, %238 ]
%263 = phi float [ %257, %251 ], [ %229, %226 ], [ 0.000000e+00, %238 ]
%264 = phi i32 [ %241, %251 ], [ %228, %226 ], [ %241, %238 ]
%265 = fpext float %261 to double
%266 = fpext float %263 to double
%267 = fdiv float %236, %259
%268 = tail call double @log(float %267)
%269 = tail call double @llvm.fmuladd.f64(double %266, double %268, double %265)
%270 = fptrunc double %269 to float
%271 = load float, float* %7
%272 = fcmp olt float %236, %271
br i1 %272, label %312, label %273
273: ; preds = %258
%274 = load float, float* %8
%275 = fcmp olt float %236, %274
br i1 %275, label %276, label %282
276: ; preds = %273
%277 = fdiv float %236, %271
%278 = tail call double @log(float %277)
%279 = fpext float %270 to double
%280 = fadd double %279, -1.000000e+00
%281 = fmul double %280, %278
br label %300
282: ; preds = %273
%283 = load float, float* %9
%284 = fcmp olt float %236, %283
br i1 %284, label %312, label %285
285: ; preds = %282
%286 = load float, float* %10
%287 = fcmp olt float %236, %286
br i1 %287, label %312, label %288
288: ; preds = %285
%289 = load float, float* %11
%290 = fcmp olt float %236, %289
br i1 %290, label %312, label %291
291: ; preds = %288
%292 = load float, float* %12
%293 = fcmp olt float %236, %292
br i1 %293, label %294, label %312
294: ; preds = %291
%295 = fpext float %270 to double
%296 = fdiv float %236, %289
%297 = tail call double @log(float %296)
%298 = fsub double 1.000000e+00, %295
%299 = fmul double %298, %297
br label %300
300: ; preds = %294, %276
%301 = phi float* [ %8, %276 ], [ %12, %294 ]
%302 = phi float* [ %7, %276 ], [ %11, %294 ]
%303 = phi double [ %281, %276 ], [ %299, %294 ]
%304 = phi double [ 1.000000e+00, %276 ], [ %295, %294 ]
%305 = load float, float* %301
%306 = load float, float* %302
%307 = fdiv float %305, %306
%308 = tail call double @log(float %307)
%309 = fdiv double %303, %308
%310 = fadd double %309, %304
%311 = fptrunc double %310 to float
br label %312
312: ; preds = %300, %291, %288, %285, %282, %258
%313 = phi float [ 1.000000e+00, %258 ], [ %270, %282 ], [ %270, %285 ], [ %270, %288 ], [ 1.000000e+00, %291 ], [ %311, %300 ]
%314 = getelementptr inbounds float, float* %0, i64 %227
store float %313, float* %314
%315 = add nuw nsw i64 %227, 1
%316 = icmp eq i64 %315, %225
br i1 %316, label %317, label %226
317: ; preds = %312, %213
ret void
}