#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);
float log(float);
void cb2006_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
    fs_vpga = (c10[0] + k2[0] * scon_n) * log((*vpga) / 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
      fsite = (c10[i] + k2[i] * scon_n) * log((*vsite) / 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
      fs_vref = (c10[i] + k2[i] * scon_n) * log((*vref) / 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) / (f1 - f0);
      else
        dadf = 0.0;
    }
    ampv = a0 + dadf * (freq - f0);
    if (freq < *fmin)
      afac = 1.0;
    else if (freq < *fmidbot)
      afac = 1.0 + (freq - *fmin) * (ampv - 1.0) / (*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 + (freq - *fhightop) * (1.0 - ampv) / (*fmax - *fhightop);
    else
      afac = 1.0;
    ampf[i] = afac;
  }
}


x86 assembly (clang, -O0):
push   %rbp
mov    %rsp,%rbp
sub    $0x380,%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
movss  %xmm0,-0x31c(%rbp)
ff
movss  -0x1b0(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm1
movsd  0x1655(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
call   1040 <log@plt>
movaps %xmm0,%xmm1
movss  -0x31c(%rbp),%xmm0
ff
mulss  %xmm1,%xmm0
movss  %xmm0,-0x2d8(%rbp)
ff
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm1
movss  -0x1b0(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jbe    1add <cb2006_ampf+0x9bd>
movss  -0xf0(%rbp),%xmm0
ff
movss  %xmm0,-0x320(%rbp)
ff
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm0
divss  -0x1b0(%rbp),%xmm0
ff
call   1040 <log@plt>
movss  %xmm0,-0x324(%rbp)
ff
movss  -0x210(%rbp),%xmm0
ff
movss  %xmm0,-0x328(%rbp)
ff
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x330(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x32c(%rbp)
ff
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x334(%rbp)
ff
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm0
divss  -0x1b0(%rbp),%xmm0
ff
call   1040 <log@plt>
movaps %xmm0,%xmm1
movss  -0x334(%rbp),%xmm0
ff
mulss  %xmm1,%xmm0
call   1030 <exp@plt>
movss  -0x330(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movss  -0x32c(%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>
movss  -0x328(%rbp),%xmm1
ff
movss  -0x324(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movss  -0x320(%rbp),%xmm0
ff
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x2dc(%rbp)
ff
jmp    1b2e <cb2006_ampf+0xa0e>
movss  -0xf0(%rbp),%xmm1
ff
movss  -0x210(%rbp),%xmm0
ff
movss  -0x38(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x338(%rbp)
ff
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm0
divss  -0x1b0(%rbp),%xmm0
ff
call   1040 <log@plt>
movaps %xmm0,%xmm1
movss  -0x338(%rbp),%xmm0
ff
mulss  %xmm1,%xmm0
movss  %xmm0,-0x2dc(%rbp)
ff
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x33c(%rbp)
ff
movss  -0x2d8(%rbp),%xmm0
ff
subss  -0x2dc(%rbp),%xmm0
ff
call   1030 <exp@plt>
movaps %xmm0,%xmm1
movss  -0x33c(%rbp),%xmm0
ff
mulss  %xmm1,%xmm0
movss  %xmm0,-0x2d4(%rbp)
ff
movss  0x1612(%rip),%xmm0
movss  %xmm0,-0x30c(%rbp)
ff
movl   $0x0,-0x310(%rbp)
mov    -0x310(%rbp),%eax
cmp    -0x318(%rbp),%eax
jge    1f9b <cb2006_ampf+0xe7b>
mov    -0x28(%rbp),%rax
movss  (%rax),%xmm1
movslq -0x310(%rbp),%rax
movss  -0x1b0(%rbp,%rax,4),%xmm0
ff ff
ucomiss %xmm1,%xmm0
jbe    1ccc <cb2006_ampf+0xbac>
movslq -0x310(%rbp),%rax
movss  -0xf0(%rbp,%rax,4),%xmm0
ff ff
movss  %xmm0,-0x340(%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>
movss  %xmm0,-0x344(%rbp)
ff
movslq -0x310(%rbp),%rax
movss  -0x210(%rbp,%rax,4),%xmm0
ff ff
movss  %xmm0,-0x348(%rbp)
ff
movss  -0x2d4(%rbp),%xmm0
ff
movss  %xmm0,-0x350(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x34c(%rbp)
ff
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x354(%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
movss  -0x354(%rbp),%xmm0
ff
mulss  %xmm1,%xmm0
call   1030 <exp@plt>
movss  -0x350(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movss  -0x34c(%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>
movss  -0x348(%rbp),%xmm1
ff
movss  -0x344(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movss  -0x340(%rbp),%xmm0
ff
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x2e4(%rbp)
ff
jmp    1d35 <cb2006_ampf+0xc15>
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
movss  %xmm0,-0x358(%rbp)
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
movss  -0x358(%rbp),%xmm0
ff
mulss  %xmm1,%xmm0
movss  %xmm0,-0x2e4(%rbp)
ff
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm1
movslq -0x310(%rbp),%rax
movss  -0x1b0(%rbp,%rax,4),%xmm0
ff ff
ucomiss %xmm1,%xmm0
jbe    1e6b <cb2006_ampf+0xd4b>
movslq -0x310(%rbp),%rax
movss  -0xf0(%rbp,%rax,4),%xmm0
ff ff
movss  %xmm0,-0x35c(%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>
movss  %xmm0,-0x360(%rbp)
ff
movslq -0x310(%rbp),%rax
movss  -0x210(%rbp,%rax,4),%xmm0
ff ff
movss  %xmm0,-0x364(%rbp)
ff
movss  -0x2d4(%rbp),%xmm0
ff
movss  %xmm0,-0x36c(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x368(%rbp)
ff
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x370(%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
movss  -0x370(%rbp),%xmm0
ff
mulss  %xmm1,%xmm0
call   1030 <exp@plt>
movss  -0x36c(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movss  -0x368(%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>
movss  -0x364(%rbp),%xmm1
ff
movss  -0x360(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movss  -0x35c(%rbp),%xmm0
ff
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x2e0(%rbp)
ff
jmp    1ed4 <cb2006_ampf+0xdb4>
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
movss  %xmm0,-0x374(%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
movss  -0x374(%rbp),%xmm0
ff
mulss  %xmm1,%xmm0
movss  %xmm0,-0x2e0(%rbp)
ff
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  0x10f3(%rip),%xmm1
divsd  %xmm0,%xmm1
mov    0x48(%rbp),%rax
movss  (%rax),%xmm0
cvtss2sd %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     1f82 <cb2006_ampf+0xe62>
movss  -0x30c(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    1f65 <cb2006_ampf+0xe45>
movslq -0x310(%rbp),%rax
movss  -0x2d0(%rbp,%rax,4),%xmm0
ff ff
movss  %xmm0,-0x30c(%rbp)
ff
jmp    1f7d <cb2006_ampf+0xe5d>
movss  -0x30c(%rbp),%xmm0
ff
movslq -0x310(%rbp),%rax
movss  %xmm0,-0x2d0(%rbp,%rax,4)
ff ff
jmp    1f82 <cb2006_ampf+0xe62>
jmp    1f87 <cb2006_ampf+0xe67>
mov    -0x310(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x310(%rbp)
jmp    1b84 <cb2006_ampf+0xa64>
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  0x1042(%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  0xffe(%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  0xfb2(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2e8(%rbp)
ff
movl   $0x1,-0x310(%rbp)
mov    -0x310(%rbp),%eax
mov    %eax,-0x378(%rbp)
mov    -0x14(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x378(%rbp),%eax
cmp    %ecx,%eax
jge    2423 <cb2006_ampf+0x1303>
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    21e6 <cb2006_ampf+0x10c6>
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    2100 <cb2006_ampf+0xfe0>
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    212c <cb2006_ampf+0x100c>
jp     212c <cb2006_ampf+0x100c>
jmp    215d <cb2006_ampf+0x103d>
movslq -0x314(%rbp),%rax
movss  -0x90(%rbp,%rax,4),%xmm0
ff ff
cvtss2sd %xmm0,%xmm1
movsd  0xec0(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2fc(%rbp)
ff
jmp    216d <cb2006_ampf+0x104d>
movss  0x1023(%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    21a5 <cb2006_ampf+0x1085>
jp     21a5 <cb2006_ampf+0x1085>
jmp    21d6 <cb2006_ampf+0x10b6>
movss  -0x304(%rbp),%xmm0
ff
subss  -0x300(%rbp),%xmm0
ff
movss  -0x2fc(%rbp),%xmm1
ff
subss  -0x2f8(%rbp),%xmm1
ff
divss  %xmm1,%xmm0
movss  %xmm0,-0x308(%rbp)
ff
jmp    21e1 <cb2006_ampf+0x10c1>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x308(%rbp)
ff
jmp    21e6 <cb2006_ampf+0x10c6>
movss  -0x300(%rbp),%xmm1
ff
movss  -0x308(%rbp),%xmm0
ff
movss  -0x2f4(%rbp),%xmm2
ff
subss  -0x2f8(%rbp),%xmm2
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x2ec(%rbp)
ff
movss  -0x2f4(%rbp),%xmm1
ff
mov    0x18(%rbp),%rax
movss  (%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    2244 <cb2006_ampf+0x1124>
movss  0xf15(%rip),%xmm0
movss  %xmm0,-0x2f0(%rbp)
ff
jmp    23f7 <cb2006_ampf+0x12d7>
movss  -0x2f4(%rbp),%xmm1
ff
mov    0x20(%rbp),%rax
movss  (%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    22c2 <cb2006_ampf+0x11a2>
movss  -0x2f4(%rbp),%xmm0
ff
mov    0x18(%rbp),%rax
subss  (%rax),%xmm0
cvtss2sd %xmm0,%xmm1
movss  -0x2ec(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
movsd  0xd83(%rip),%xmm2
subsd  %xmm2,%xmm0
mulsd  %xmm0,%xmm1
mov    0x20(%rbp),%rax
movss  (%rax),%xmm0
mov    0x18(%rbp),%rax
subss  (%rax),%xmm0
cvtss2sd %xmm0,%xmm0
divsd  %xmm0,%xmm1
movsd  0xd5b(%rip),%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2f0(%rbp)
ff
jmp    23f2 <cb2006_ampf+0x12d2>
movss  -0x2f4(%rbp),%xmm1
ff
mov    0x28(%rbp),%rax
movss  (%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    22f0 <cb2006_ampf+0x11d0>
movss  -0x2ec(%rbp),%xmm0
ff
movss  %xmm0,-0x2f0(%rbp)
ff
jmp    23ed <cb2006_ampf+0x12cd>
movss  -0x2f4(%rbp),%xmm1
ff
mov    0x30(%rbp),%rax
movss  (%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    231e <cb2006_ampf+0x11fe>
movss  -0x2ec(%rbp),%xmm0
ff
movss  %xmm0,-0x2f0(%rbp)
ff
jmp    23e8 <cb2006_ampf+0x12c8>
movss  -0x2f4(%rbp),%xmm1
ff
mov    0x38(%rbp),%rax
movss  (%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    234c <cb2006_ampf+0x122c>
movss  -0x2ec(%rbp),%xmm0
ff
movss  %xmm0,-0x2f0(%rbp)
ff
jmp    23e3 <cb2006_ampf+0x12c3>
movss  -0x2f4(%rbp),%xmm1
ff
mov    0x40(%rbp),%rax
movss  (%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    23ce <cb2006_ampf+0x12ae>
movss  -0x2ec(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
movss  -0x2f4(%rbp),%xmm1
ff
mov    0x38(%rbp),%rax
subss  (%rax),%xmm1
cvtss2sd %xmm1,%xmm1
movss  -0x2ec(%rbp),%xmm2
ff
cvtss2sd %xmm2,%xmm3
movsd  0xc6f(%rip),%xmm2
subsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
mov    0x40(%rbp),%rax
movss  (%rax),%xmm2
mov    0x38(%rbp),%rax
subss  (%rax),%xmm2
cvtss2sd %xmm2,%xmm2
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2f0(%rbp)
ff
jmp    23de <cb2006_ampf+0x12be>
movss  0xd76(%rip),%xmm0
movss  %xmm0,-0x2f0(%rbp)
ff
jmp    23e3 <cb2006_ampf+0x12c3>
jmp    23e8 <cb2006_ampf+0x12c8>
jmp    23ed <cb2006_ampf+0x12cd>
jmp    23f2 <cb2006_ampf+0x12d2>
jmp    23f7 <cb2006_ampf+0x12d7>
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    2070 <cb2006_ampf+0xf50>
add    $0x380,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x208,%rsp
mov    %r9,%rbp
mov    %r8,%r13
mov    %rcx,%rbx
mov    %edx,%r12d
mov    %rsi,0x28(%rsp)
mov    %rdi,%r14
mov    0x240(%rsp),%r15
movaps 0xeac(%rip),%xmm0
movaps %xmm0,0x90(%rsp)
movaps 0xead(%rip),%xmm0
movaps %xmm0,0xa0(%rsp)
movaps 0xeae(%rip),%xmm0
movaps %xmm0,0xb0(%rsp)
movaps 0xeaf(%rip),%xmm0
movaps %xmm0,0xc0(%rsp)
movaps 0xeb0(%rip),%xmm0
movaps %xmm0,0xd0(%rsp)
movabs $0x4120000040f00000,%rax
mov    %rax,0xe0(%rsp)
movaps 0xe9f(%rip),%xmm0
movaps %xmm0,0x150(%rsp)
movaps 0xea0(%rip),%xmm0
movaps %xmm0,0x160(%rsp)
movaps 0xea1(%rip),%xmm0
movaps %xmm0,0x170(%rsp)
movaps 0xea2(%rip),%xmm0
movaps %xmm0,0x180(%rsp)
movaps 0xea3(%rip),%xmm0
movaps %xmm0,0x190(%rsp)
movabs $0xbf51eb85bf51eb85,%rax
eb 51 bf
mov    %rax,0x1a0(%rsp)
movaps 0xe92(%rip),%xmm0
movaps %xmm0,0xf0(%rsp)
movaps 0xe93(%rip),%xmm0
movaps %xmm0,0x100(%rsp)
movaps 0xe94(%rip),%xmm0
movaps %xmm0,0x110(%rsp)
movaps 0xe95(%rip),%xmm0
movaps %xmm0,0x120(%rsp)
movaps 0xe96(%rip),%xmm0
movaps %xmm0,0x130(%rsp)
movabs $0x43c8000043c80000,%rax
mov    %rax,0x140(%rsp)
movaps 0xe85(%rip),%xmm0
movaps %xmm0,0x30(%rsp)
movaps 0xe89(%rip),%xmm0
movaps %xmm0,0x40(%rsp)
movaps 0xe8d(%rip),%xmm0
movaps %xmm0,0x50(%rsp)
movaps 0xe91(%rip),%xmm0
movaps %xmm0,0x60(%rsp)
movl   $0xbe991687,0x70(%rsp)
be
xorps  %xmm0,%xmm0
movups %xmm0,0x74(%rsp)
movl   $0x0,0x84(%rsp)
movss  (%r9),%xmm0
movss  %xmm0,0x8(%rsp)
divss  0xe6e(%rip),%xmm0
call   1040 <log@plt>
movaps %xmm0,%xmm1
movss  0xe5e(%rip),%xmm0
ucomiss 0x8(%rsp),%xmm0
jbe    1345 <cb2006_ampf+0x225>
movss  (%r15),%xmm0
movss  %xmm0,0xc(%rsp)
movss  0x0(%rbp),%xmm0
divss  0xe3f(%rip),%xmm0
movss  %xmm1,0x8(%rsp)
call   1040 <log@plt>
mulss  0xe34(%rip),%xmm0
call   1030 <exp@plt>
movss  0xe2b(%rip),%xmm1
mulss  %xmm1,%xmm0
addss  0xc(%rsp),%xmm0
addss  (%r15),%xmm1
divss  %xmm1,%xmm0
call   1040 <log@plt>
movss  0x8(%rsp),%xmm1
mulss  0xe09(%rip),%xmm0
mulss  0xe05(%rip),%xmm1
addss  %xmm0,%xmm1
jmp    134d <cb2006_ampf+0x22d>
mulss  0xde7(%rip),%xmm1
mov    %r15,%rax
mov    0x278(%rsp),%r15
movss  (%rax),%xmm0
movss  %xmm0,0x8(%rsp)
movss  0xdde(%rip),%xmm0
subss  %xmm1,%xmm0
call   1030 <exp@plt>
mulss  0x8(%rsp),%xmm0
movss  0xdbb(%rip),%xmm1
movss  %xmm0,0x20(%rsp)
addss  %xmm0,%xmm1
movss  %xmm1,0x1c(%rsp)
movss  0xdb3(%rip),%xmm0
movss  %xmm0,0x10(%rsp)
xor    %ebp,%ebp
movss  0xd87(%rip),%xmm1
nopl   0x0(%rax)
movss  0x0(%r13),%xmm0
ucomiss %xmm0,%xmm1
movss  0x150(%rsp,%rbp,1),%xmm2
movss  %xmm2,0x14(%rsp)
movss  %xmm1,0x18(%rsp)
jbe    1440 <cb2006_ampf+0x320>
divss  %xmm1,%xmm0
call   1040 <log@plt>
movss  %xmm0,0xc(%rsp)
movss  0x30(%rsp,%rbp,1),%xmm0
movss  %xmm0,0x8(%rsp)
movss  0x0(%r13),%xmm0
divss  0x18(%rsp),%xmm0
call   1040 <log@plt>
mulss  0xd34(%rip),%xmm0
call   1030 <exp@plt>
mulss  0xd2b(%rip),%xmm0
addss  0x20(%rsp),%xmm0
divss  0x1c(%rsp),%xmm0
call   1040 <log@plt>
mulss  0x8(%rsp),%xmm0
movss  0xc(%rsp),%xmm1
mulss  0x14(%rsp),%xmm1
addss  %xmm0,%xmm1
movss  %xmm1,0xc(%rsp)
jmp    1473 <cb2006_ampf+0x353>
movss  0x30(%rsp,%rbp,1),%xmm3
movss  %xmm3,0x8(%rsp)
mulss  0xce4(%rip),%xmm3
addss  %xmm2,%xmm3
movss  %xmm3,0xc(%rsp)
divss  %xmm1,%xmm0
call   1040 <log@plt>
mulss  0xc(%rsp),%xmm0
movss  %xmm0,0xc(%rsp)
movss  (%rbx),%xmm0
movss  0x18(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jbe    14f0 <cb2006_ampf+0x3d0>
divss  %xmm1,%xmm0
call   1040 <log@plt>
movss  %xmm0,0x24(%rsp)
movss  (%rbx),%xmm0
divss  0x18(%rsp),%xmm0
call   1040 <log@plt>
mulss  0xc90(%rip),%xmm0
call   1030 <exp@plt>
mulss  0xc87(%rip),%xmm0
addss  0x20(%rsp),%xmm0
divss  0x1c(%rsp),%xmm0
call   1040 <log@plt>
movss  0x8(%rsp),%xmm1
mulss  %xmm0,%xmm1
movss  0x14(%rsp),%xmm0
mulss  0x24(%rsp),%xmm0
addss  %xmm1,%xmm0
jmp    1519 <cb2006_ampf+0x3f9>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movss  0x8(%rsp),%xmm2
mulss  0xc3a(%rip),%xmm2
addss  0x14(%rsp),%xmm2
movss  %xmm2,0x8(%rsp)
divss  %xmm1,%xmm0
call   1040 <log@plt>
mulss  0x8(%rsp),%xmm0
movss  0xc(%rsp),%xmm1
subss  %xmm0,%xmm1
movaps %xmm1,%xmm0
call   1030 <exp@plt>
movss  %xmm0,0x1b0(%rsp,%rbp,1)
movss  0x90(%rsp,%rbp,1),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xc17(%rip),%xmm2
divsd  %xmm1,%xmm2
movss  (%r15),%xmm1
cvtss2sd %xmm1,%xmm1
ucomisd %xmm2,%xmm1
jae    1570 <cb2006_ampf+0x450>
movss  0x10(%rsp),%xmm0
jmp    158d <cb2006_ampf+0x46d>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
xorps  %xmm1,%xmm1
movss  0x10(%rsp),%xmm2
ucomiss %xmm2,%xmm1
ja     158d <cb2006_ampf+0x46d>
movaps %xmm2,%xmm1
movss  %xmm2,0x1b0(%rsp,%rbp,1)
movaps %xmm2,%xmm0
cmp    $0x54,%rbp
je     15ab <cb2006_ampf+0x48b>
movss  0xf4(%rsp,%rbp,1),%xmm1
add    $0x4,%rbp
movss  %xmm0,0x10(%rsp)
jmp    13b0 <cb2006_ampf+0x290>
cmp    $0x4,%r12d
mov    0x260(%rsp),%rsi
mov    0x258(%rsp),%rdi
mov    0x250(%rsp),%rbp
mov    0x248(%rsp),%rbx
jl     17ad <cb2006_ampf+0x68d>
movss  0xb72(%rip),%xmm11
movaps %xmm11,%xmm1
divss  0xe4(%rsp),%xmm1
xorps  %xmm0,%xmm0
cvtsi2ss %r12d,%xmm0
movss  0x204(%rsp),%xmm2
mov    0x28(%rsp),%rax
mulss  (%rax),%xmm0
movaps %xmm11,%xmm12
divss  %xmm0,%xmm12
shr    %r12d
xorps  %xmm9,%xmm9
mov    $0x15,%eax
mov    $0x1,%ecx
movss  0xb2c(%rip),%xmm10
movsd  0xb37(%rip),%xmm8
xorps  %xmm7,%xmm7
movaps %xmm2,%xmm4
movaps %xmm1,%xmm13
jmp    1686 <cb2006_ampf+0x566>
nopl   (%rax)
subss  %xmm3,%xmm0
cvtss2sd %xmm0,%xmm0
cvtss2sd %xmm5,%xmm5
addsd  %xmm8,%xmm5
mulsd  %xmm0,%xmm5
subss  %xmm3,%xmm6
xorps  %xmm0,%xmm0
cvtss2sd %xmm6,%xmm0
divsd  %xmm0,%xmm5
addsd  0xaf4(%rip),%xmm5
xorps  %xmm6,%xmm6
cvtsd2ss %xmm5,%xmm6
movss  %xmm6,(%r14,%rcx,4)
add    $0x1,%rcx
cmp    %rcx,%r12
je     17ad <cb2006_ampf+0x68d>
xorps  %xmm0,%xmm0
cvtsi2ss %ecx,%xmm0
mulss  %xmm12,%xmm0
ucomiss %xmm1,%xmm0
jbe    16f4 <cb2006_ampf+0x5d4>
xor    %edx,%edx
test   %eax,%eax
setg   %dl
sub    %edx,%eax
movslq %eax,%rdx
movss  0x90(%rsp,%rdx,4),%xmm4
ucomiss %xmm9,%xmm4
movaps %xmm10,%xmm3
jne    16b8 <cb2006_ampf+0x598>
jnp    16c0 <cb2006_ampf+0x5a0>
movaps %xmm11,%xmm3
divss  %xmm4,%xmm3
movss  0x1b0(%rsp,%rdx,4),%xmm5
ucomiss %xmm1,%xmm3
jne    16d0 <cb2006_ampf+0x5b0>
jnp    16e4 <cb2006_ampf+0x5c4>
movaps %xmm5,%xmm7
subss  %xmm2,%xmm7
movaps %xmm3,%xmm4
subss  %xmm1,%xmm4
divss  %xmm4,%xmm7
jmp    16e7 <cb2006_ampf+0x5c7>
xorps  %xmm7,%xmm7
movaps %xmm1,%xmm13
movaps %xmm3,%xmm1
movaps %xmm2,%xmm4
movaps %xmm5,%xmm2
movss  (%rbx),%xmm3
ucomiss %xmm0,%xmm3
movaps %xmm11,%xmm6
ja     1673 <cb2006_ampf+0x553>
movaps %xmm0,%xmm5
subss  %xmm13,%xmm5
mulss  %xmm7,%xmm5
addss  %xmm4,%xmm5
movss  0x0(%rbp),%xmm6
ucomiss %xmm0,%xmm6
ja     1640 <cb2006_ampf+0x520>
movss  (%rdi),%xmm3
ucomiss %xmm0,%xmm3
ja     1750 <cb2006_ampf+0x630>
movss  (%rsi),%xmm3
ucomiss %xmm0,%xmm3
ja     1750 <cb2006_ampf+0x630>
mov    0x268(%rsp),%rdx
movss  (%rdx),%xmm3
ucomiss %xmm0,%xmm3
jbe    1758 <cb2006_ampf+0x638>
cs nopw 0x0(%rax,%rax,1)
movaps %xmm5,%xmm6
jmp    1673 <cb2006_ampf+0x553>
mov    0x270(%rsp),%rdx
movss  (%rdx),%xmm14
ucomiss %xmm0,%xmm14
movaps %xmm11,%xmm6
jbe    1673 <cb2006_ampf+0x553>
cvtss2sd %xmm5,%xmm5
subss  %xmm3,%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x9d9(%rip),%xmm6
subsd  %xmm5,%xmm6
mulsd  %xmm0,%xmm6
subss  %xmm3,%xmm14
xorps  %xmm0,%xmm0
cvtss2sd %xmm14,%xmm0
divsd  %xmm0,%xmm6
addsd  %xmm5,%xmm6
cvtsd2ss %xmm6,%xmm6
jmp    1673 <cb2006_ampf+0x553>
add    $0x208,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @cb2006_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 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 0
%195 = load float, float* %194
%196 = fpext float %195 to double
%197 = fdiv double 1.100000e+03, %196
%198 = fptrunc double %197 to float
%199 = call float @log(float %198)
%200 = fmul float %193, %199
store float %200, float* %39
%201 = load float*, float** %20
%202 = load float, float* %201
%203 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 0
%204 = load float, float* %203
%205 = fcmp olt float %202, %204
br i1 %205, label %206, label %238
206: ; preds = %14
%207 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 0
%208 = load float, float* %207
%209 = load float*, float** %20
%210 = load float, float* %209
%211 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 0
%212 = load float, float* %211
%213 = fdiv float %210, %212
%214 = call float @log(float %213)
%215 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 0
%216 = load float, float* %215
%217 = load float*, float** %21
%218 = load float, float* %217
%219 = load float, float* %29
%220 = load float, float* %30
%221 = load float*, float** %20
%222 = load float, float* %221
%223 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 0
%224 = load float, float* %223
%225 = fdiv float %222, %224
%226 = call float @log(float %225)
%227 = fmul float %220, %226
%228 = call float @exp(float %227)
%229 = call float @llvm.fmuladd.f32(float %219, float %228, float %218)
%230 = load float*, float** %21
%231 = load float, float* %230
%232 = load float, float* %29
%233 = fadd float %231, %232
%234 = fdiv float %229, %233
%235 = call float @log(float %234)
%236 = fmul float %216, %235
%237 = call float @llvm.fmuladd.f32(float %208, float %214, float %236)
store float %237, float* %40
br label %252
238: ; preds = %14
%239 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 0
%240 = load float, float* %239
%241 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 0
%242 = load float, float* %241
%243 = load float, float* %30
%244 = call float @llvm.fmuladd.f32(float %242, float %243, float %240)
%245 = load float*, float** %20
%246 = load float, float* %245
%247 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 0
%248 = load float, float* %247
%249 = fdiv float %246, %248
%250 = call float @log(float %249)
%251 = fmul float %244, %250
store float %251, float* %40
br label %252
252: ; preds = %238, %206
%253 = load float*, float** %21
%254 = load float, float* %253
%255 = load float, float* %39
%256 = load float, float* %40
%257 = fsub float %255, %256
%258 = call float @exp(float %257)
%259 = fmul float %254, %258
store float %259, float* %38
store float -1.000000e+00, float* %52
store i32 0, i32* %53
br label %260
260: ; preds = %430, %252
%261 = load i32, i32* %53
%262 = load i32, i32* %55
%263 = icmp slt i32 %261, %262
br i1 %263, label %264, label %433
264: ; preds = %260
%265 = load float*, float** %19
%266 = load float, float* %265
%267 = load i32, i32* %53
%268 = sext i32 %267 to i64
%269 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %268
%270 = load float, float* %269
%271 = fcmp olt float %266, %270
br i1 %271, label %272, label %310
272: ; preds = %264
%273 = load i32, i32* %53
%274 = sext i32 %273 to i64
%275 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 %274
%276 = load float, float* %275
%277 = load float*, float** %19
%278 = load float, float* %277
%279 = load i32, i32* %53
%280 = sext i32 %279 to i64
%281 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %280
%282 = load float, float* %281
%283 = fdiv float %278, %282
%284 = call float @log(float %283)
%285 = load i32, i32* %53
%286 = sext i32 %285 to i64
%287 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 %286
%288 = load float, float* %287
%289 = load float, float* %38
%290 = load float, float* %29
%291 = load float, float* %30
%292 = load float*, float** %19
%293 = load float, float* %292
%294 = load i32, i32* %53
%295 = sext i32 %294 to i64
%296 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %295
%297 = load float, float* %296
%298 = fdiv float %293, %297
%299 = call float @log(float %298)
%300 = fmul float %291, %299
%301 = call float @exp(float %300)
%302 = call float @llvm.fmuladd.f32(float %290, float %301, float %289)
%303 = load float, float* %38
%304 = load float, float* %29
%305 = fadd float %303, %304
%306 = fdiv float %302, %305
%307 = call float @log(float %306)
%308 = fmul float %288, %307
%309 = call float @llvm.fmuladd.f32(float %276, float %284, float %308)
store float %309, float* %42
br label %330
310: ; preds = %264
%311 = load i32, i32* %53
%312 = sext i32 %311 to i64
%313 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 %312
%314 = load float, float* %313
%315 = load i32, i32* %53
%316 = sext i32 %315 to i64
%317 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 %316
%318 = load float, float* %317
%319 = load float, float* %30
%320 = call float @llvm.fmuladd.f32(float %318, float %319, float %314)
%321 = load float*, float** %19
%322 = load float, float* %321
%323 = load i32, i32* %53
%324 = sext i32 %323 to i64
%325 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %324
%326 = load float, float* %325
%327 = fdiv float %322, %326
%328 = call float @log(float %327)
%329 = fmul float %320, %328
store float %329, float* %42
br label %330
330: ; preds = %310, %272
%331 = load float*, float** %18
%332 = load float, float* %331
%333 = load i32, i32* %53
%334 = sext i32 %333 to i64
%335 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %334
%336 = load float, float* %335
%337 = fcmp olt float %332, %336
br i1 %337, label %338, label %376
338: ; preds = %330
%339 = load i32, i32* %53
%340 = sext i32 %339 to i64
%341 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 %340
%342 = load float, float* %341
%343 = load float*, float** %18
%344 = load float, float* %343
%345 = load i32, i32* %53
%346 = sext i32 %345 to i64
%347 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %346
%348 = load float, float* %347
%349 = fdiv float %344, %348
%350 = call float @log(float %349)
%351 = load i32, i32* %53
%352 = sext i32 %351 to i64
%353 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 %352
%354 = load float, float* %353
%355 = load float, float* %38
%356 = load float, float* %29
%357 = load float, float* %30
%358 = load float*, float** %18
%359 = load float, float* %358
%360 = load i32, i32* %53
%361 = sext i32 %360 to i64
%362 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %361
%363 = load float, float* %362
%364 = fdiv float %359, %363
%365 = call float @log(float %364)
%366 = fmul float %357, %365
%367 = call float @exp(float %366)
%368 = call float @llvm.fmuladd.f32(float %356, float %367, float %355)
%369 = load float, float* %38
%370 = load float, float* %29
%371 = fadd float %369, %370
%372 = fdiv float %368, %371
%373 = call float @log(float %372)
%374 = fmul float %354, %373
%375 = call float @llvm.fmuladd.f32(float %342, float %350, float %374)
store float %375, float* %41
br label %396
376: ; preds = %330
%377 = load i32, i32* %53
%378 = sext i32 %377 to i64
%379 = getelementptr inbounds [22 x float], [22 x float]* %32, i64 0, i64 %378
%380 = load float, float* %379
%381 = load i32, i32* %53
%382 = sext i32 %381 to i64
%383 = getelementptr inbounds [22 x float], [22 x float]* %35, i64 0, i64 %382
%384 = load float, float* %383
%385 = load float, float* %30
%386 = call float @llvm.fmuladd.f32(float %384, float %385, float %380)
%387 = load float*, float** %18
%388 = load float, float* %387
%389 = load i32, i32* %53
%390 = sext i32 %389 to i64
%391 = getelementptr inbounds [22 x float], [22 x float]* %34, i64 0, i64 %390
%392 = load float, float* %391
%393 = fdiv float %388, %392
%394 = call float @log(float %393)
%395 = fmul float %386, %394
store float %395, float* %41
br label %396
396: ; preds = %376, %338
%397 = load float, float* %42
%398 = load float, float* %41
%399 = fsub float %397, %398
%400 = call float @exp(float %399)
%401 = load i32, i32* %53
%402 = sext i32 %401 to i64
%403 = getelementptr inbounds [22 x float], [22 x float]* %37, i64 0, i64 %402
store float %400, float* %403
%404 = load i32, i32* %53
%405 = sext i32 %404 to i64
%406 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 %405
%407 = load float, float* %406
%408 = fpext float %407 to double
%409 = fdiv double 1.000000e+00, %408
%410 = load float*, float** %28
%411 = load float, float* %410
%412 = fpext float %411 to double
%413 = fcmp ole double %409, %412
br i1 %413, label %414, label %429
414: ; preds = %396
%415 = load float, float* %52
%416 = fpext float %415 to double
%417 = fcmp olt double %416, 0.000000e+00
br i1 %417, label %418, label %423
418: ; preds = %414
%419 = load i32, i32* %53
%420 = sext i32 %419 to i64
%421 = getelementptr inbounds [22 x float], [22 x float]* %37, i64 0, i64 %420
%422 = load float, float* %421
store float %422, float* %52
br label %428
423: ; preds = %414
%424 = load float, float* %52
%425 = load i32, i32* %53
%426 = sext i32 %425 to i64
%427 = getelementptr inbounds [22 x float], [22 x float]* %37, i64 0, i64 %426
store float %424, float* %427
br label %428
428: ; preds = %423, %418
br label %429
429: ; preds = %428, %396
br label %430
430: ; preds = %429
%431 = load i32, i32* %53
%432 = add nsw i32 %431, 1
store i32 %432, i32* %53
br label %260
433: ; preds = %260
%434 = load i32, i32* %55
%435 = sub nsw i32 %434, 1
store i32 %435, i32* %54
%436 = load i32, i32* %54
%437 = sext i32 %436 to i64
%438 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 %437
%439 = load float, float* %438
%440 = fpext float %439 to double
%441 = fdiv double 1.000000e+00, %440
%442 = fptrunc double %441 to float
store float %442, float* %47
%443 = load i32, i32* %54
%444 = sext i32 %443 to i64
%445 = getelementptr inbounds [22 x float], [22 x float]* %37, i64 0, i64 %444
%446 = load float, float* %445
store float %446, float* %49
%447 = load i32, i32* %54
%448 = sext i32 %447 to i64
%449 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 %448
%450 = load float, float* %449
%451 = fpext float %450 to double
%452 = fdiv double 1.000000e+00, %451
%453 = fptrunc double %452 to float
store float %453, float* %48
%454 = load i32, i32* %54
%455 = sext i32 %454 to i64
%456 = getelementptr inbounds [22 x float], [22 x float]* %37, i64 0, i64 %455
%457 = load float, float* %456
store float %457, float* %50
store float 0.000000e+00, float* %51
%458 = load i32, i32* %17
%459 = sitofp i32 %458 to float
%460 = load float*, float** %16
%461 = load float, float* %460
%462 = fmul float %459, %461
%463 = fpext float %462 to double
%464 = fdiv double 1.000000e+00, %463
%465 = fptrunc double %464 to float
store float %465, float* %43
store i32 1, i32* %53
br label %466
466: ; preds = %616, %433
%467 = load i32, i32* %53
%468 = load i32, i32* %17
%469 = sdiv i32 %468, 2
%470 = icmp slt i32 %467, %469
br i1 %470, label %471, label %619
471: ; preds = %466
%472 = load i32, i32* %53
%473 = sitofp i32 %472 to float
%474 = load float, float* %43
%475 = fmul float %473, %474
store float %475, float* %46
%476 = load float, float* %46
%477 = load float, float* %48
%478 = fcmp ogt float %476, %477
br i1 %478, label %479, label %521
479: ; preds = %471
%480 = load float, float* %48
store float %480, float* %47
%481 = load float, float* %50
store float %481, float* %49
%482 = load i32, i32* %54
%483 = icmp sgt i32 %482, 0
br i1 %483, label %484, label %487
484: ; preds = %479
%485 = load i32, i32* %54
%486 = add nsw i32 %485, -1
store i32 %486, i32* %54
br label %487
487: ; preds = %484, %479
%488 = load i32, i32* %54
%489 = sext i32 %488 to i64
%490 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 %489
%491 = load float, float* %490
%492 = fpext float %491 to double
%493 = fcmp une double %492, 0.000000e+00
br i1 %493, label %494, label %502
494: ; preds = %487
%495 = load i32, i32* %54
%496 = sext i32 %495 to i64
%497 = getelementptr inbounds [22 x float], [22 x float]* %31, i64 0, i64 %496
%498 = load float, float* %497
%499 = fpext float %498 to double
%500 = fdiv double 1.000000e+00, %499
%501 = fptrunc double %500 to float
store float %501, float* %48
br label %503
502: ; preds = %487
store float 1.000000e+03, float* %48
br label %503
503: ; preds = %502, %494
%504 = load i32, i32* %54
%505 = sext i32 %504 to i64
%506 = getelementptr inbounds [22 x float], [22 x float]* %37, i64 0, i64 %505
%507 = load float, float* %506
store float %507, float* %50
%508 = load float, float* %48
%509 = load float, float* %47
%510 = fcmp une float %508, %509
br i1 %510, label %511, label %519
511: ; preds = %503
%512 = load float, float* %50
%513 = load float, float* %49
%514 = fsub float %512, %513
%515 = load float, float* %48
%516 = load float, float* %47
%517 = fsub float %515, %516
%518 = fdiv float %514, %517
store float %518, float* %51
br label %520
519: ; preds = %503
store float 0.000000e+00, float* %51
br label %520
520: ; preds = %519, %511
br label %521
521: ; preds = %520, %471
%522 = load float, float* %49
%523 = load float, float* %51
%524 = load float, float* %46
%525 = load float, float* %47
%526 = fsub float %524, %525
%527 = call float @llvm.fmuladd.f32(float %523, float %526, float %522)
store float %527, float* %44
%528 = load float, float* %46
%529 = load float*, float** %22
%530 = load float, float* %529
%531 = fcmp olt float %528, %530
br i1 %531, label %532, label %533
532: ; preds = %521
store float 1.000000e+00, float* %45
br label %610
533: ; preds = %521
%534 = load float, float* %46
%535 = load float*, float** %23
%536 = load float, float* %535
%537 = fcmp olt float %534, %536
br i1 %537, label %538, label %557
538: ; preds = %533
%539 = load float, float* %46
%540 = load float*, float** %22
%541 = load float, float* %540
%542 = fsub float %539, %541
%543 = fpext float %542 to double
%544 = load float, float* %44
%545 = fpext float %544 to double
%546 = fsub double %545, 1.000000e+00
%547 = fmul double %543, %546
%548 = load float*, float** %23
%549 = load float, float* %548
%550 = load float*, float** %22
%551 = load float, float* %550
%552 = fsub float %549, %551
%553 = fpext float %552 to double
%554 = fdiv double %547, %553
%555 = fadd double 1.000000e+00, %554
%556 = fptrunc double %555 to float
store float %556, float* %45
br label %609
557: ; preds = %533
%558 = load float, float* %46
%559 = load float*, float** %24
%560 = load float, float* %559
%561 = fcmp olt float %558, %560
br i1 %561, label %562, label %564
562: ; preds = %557
%563 = load float, float* %44
store float %563, float* %45
br label %608
564: ; preds = %557
%565 = load float, float* %46
%566 = load float*, float** %25
%567 = load float, float* %566
%568 = fcmp olt float %565, %567
br i1 %568, label %569, label %571
569: ; preds = %564
%570 = load float, float* %44
store float %570, float* %45
br label %607
571: ; preds = %564
%572 = load float, float* %46
%573 = load float*, float** %26
%574 = load float, float* %573
%575 = fcmp olt float %572, %574
br i1 %575, label %576, label %578
576: ; preds = %571
%577 = load float, float* %44
store float %577, float* %45
br label %606
578: ; preds = %571
%579 = load float, float* %46
%580 = load float*, float** %27
%581 = load float, float* %580
%582 = fcmp olt float %579, %581
br i1 %582, label %583, label %604
583: ; preds = %578
%584 = load float, float* %44
%585 = fpext float %584 to double
%586 = load float, float* %46
%587 = load float*, float** %26
%588 = load float, float* %587
%589 = fsub float %586, %588
%590 = fpext float %589 to double
%591 = load float, float* %44
%592 = fpext float %591 to double
%593 = fsub double 1.000000e+00, %592
%594 = fmul double %590, %593
%595 = load float*, float** %27
%596 = load float, float* %595
%597 = load float*, float** %26
%598 = load float, float* %597
%599 = fsub float %596, %598
%600 = fpext float %599 to double
%601 = fdiv double %594, %600
%602 = fadd double %585, %601
%603 = fptrunc double %602 to float
store float %603, float* %45
br label %605
604: ; preds = %578
store float 1.000000e+00, float* %45
br label %605
605: ; preds = %604, %583
br label %606
606: ; preds = %605, %576
br label %607
607: ; preds = %606, %569
br label %608
608: ; preds = %607, %562
br label %609
609: ; preds = %608, %538
br label %610
610: ; preds = %609, %532
%611 = load float, float* %45
%612 = load float*, float** %15
%613 = load i32, i32* %53
%614 = sext i32 %613 to i64
%615 = getelementptr inbounds float, float* %612, i64 %614
store float %611, float* %615
br label %616
616: ; preds = %610
%617 = load i32, i32* %53
%618 = add nsw i32 %617, 1
store i32 %618, i32* %53
br label %466
619: ; preds = %466
ret void
}

LLVM IR (-O2):
define void @cb2006_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 = bitcast [22 x float]* %16 to <4 x float>*
store <4 x float> <float 0x3FF0ED9160000000, float 0x3FF0ED9160000000, float 0x3FF1A1CAC0000000, float 0x3FF2C8B440000000>, <4 x float>* %36
%37 = getelementptr inbounds [22 x float], [22 x float]* %16, i64 0, i64 4
%38 = bitcast float* %37 to <4 x float>*
store <4 x float> <float 0x3FF45A1CA0000000, float 0x3FF7020C40000000, float 0x3FF9A9FBE0000000, float 0x3FFED91680000000>, <4 x float>* %38
%39 = getelementptr inbounds [22 x float], [22 x float]* %16, i64 0, i64 8
%40 = bitcast float* %39 to <4 x float>*
store <4 x float> <float 0x40018D4FE0000000, float 0x4002CED920000000, float 0x4003AE1480000000, float 0x4004B22D00000000>, <4 x float>* %40
%41 = getelementptr inbounds [22 x float], [22 x float]* %16, i64 0, i64 12
%42 = bitcast float* %41 to <4 x float>*
store <4 x float> <float 0x40045A1CA0000000, float 0x4001106240000000, float 0x3FF922D0E0000000, float 0x3FD9FBE760000000>, <4 x float>* %42
%43 = getelementptr inbounds [22 x float], [22 x float]* %16, i64 0, i64 16
%44 = bitcast float* %43 to <4 x float>*
store <4 x float> <float 0xBFDD2F1AA0000000, float 0xBFEA3D70A0000000, float 0xBFEA3D70A0000000, float 0xBFEA3D70A0000000>, <4 x float>* %44
%45 = getelementptr inbounds [22 x float], [22 x float]* %16, i64 0, i64 20
store float 0xBFEA3D70A0000000, float* %45
%46 = getelementptr inbounds [22 x float], [22 x float]* %16, i64 0, i64 21
store float 0xBFEA3D70A0000000, float* %46
%47 = 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>* %47
%48 = getelementptr inbounds [22 x float], [22 x float]* %17, i64 0, i64 4
%49 = bitcast float* %48 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>* %49
%50 = getelementptr inbounds [22 x float], [22 x float]* %17, i64 0, i64 8
%51 = bitcast float* %50 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>* %51
%52 = getelementptr inbounds [22 x float], [22 x float]* %17, i64 0, i64 12
%53 = bitcast float* %52 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>* %53
%54 = getelementptr inbounds [22 x float], [22 x float]* %17, i64 0, i64 16
%55 = bitcast float* %54 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>* %55
%56 = getelementptr inbounds [22 x float], [22 x float]* %17, i64 0, i64 20
store float 4.000000e+02, float* %56
%57 = getelementptr inbounds [22 x float], [22 x float]* %17, i64 0, i64 21
store float 4.000000e+02, float* %57
%58 = bitcast [22 x float]* %18 to <4 x float>*
store <4 x float> <float 0xBFF2F9DB20000000, float 0xBFF2F9DB20000000, float 0xBFF3810620000000, float 0xBFF45E3540000000>, <4 x float>* %58
%59 = getelementptr inbounds [22 x float], [22 x float]* %18, i64 0, i64 4
%60 = bitcast float* %59 to <4 x float>*
store <4 x float> <float 0xBFF5893740000000, float 0xBFF7893740000000, float 0xBFF9FBE760000000, float 0xBFFEE56040000000>, <4 x float>* %60
%61 = getelementptr inbounds [22 x float], [22 x float]* %18, i64 0, i64 8
%62 = bitcast float* %61 to <4 x float>*
store <4 x float> <float 0xC001810620000000, float 0xC0030C49C0000000, float 0xC00424DD20000000, float 0xC005418940000000>, <4 x float>* %62
%63 = getelementptr inbounds [22 x float], [22 x float]* %18, i64 0, i64 12
%64 = bitcast float* %63 to <4 x float>*
store <4 x float> <float 0xC0055A1CA0000000, float 0xC003353F80000000, float 0xBFFF47AE20000000, float 0xBFF0666660000000>, <4 x float>* %64
%65 = getelementptr inbounds [22 x float], [22 x float]* %18, i64 0, i64 16
store float 0xBFD322D0E0000000, float* %65
%66 = getelementptr inbounds [22 x float], [22 x float]* %18, i64 0, i64 17
%67 = bitcast float* %66 to i8*
%68 = load float, float* %5
%69 = fcmp olt float %68, 8.650000e+02
%70 = fdiv float %68, 8.650000e+02
%71 = tail call float @log(float %70)
br i1 %69, label %72, label %86
72: ; preds = %14
%73 = load float, float* %6
%74 = load float, float* %5
%75 = fdiv float %74, 8.650000e+02
%76 = tail call float @log(float %75)
%77 = fmul float %76, 0x3FF2E147A0000000
%78 = tail call float @exp(float %77)
%79 = tail call float @llvm.fmuladd.f32(float %78, float 0x3FFE147AE0000000, float %73)
%80 = load float, float* %6
%81 = fadd float %80, 0x3FFE147AE0000000
%82 = fdiv float %79, %81
%83 = tail call float @log(float %82)
%84 = fmul float %83, 0xBFF2F9DB20000000
%85 = tail call float @llvm.fmuladd.f32(float %71, float 0x3FF0ED9160000000, float %84)
br label %88
86: ; preds = %14
%87 = fmul float %71, 0xBFD5DACEC0000000
br label %88
88: ; preds = %86, %72
%89 = phi float [ %85, %72 ], [ %87, %86 ]
%90 = load float, float* %6
%91 = fsub float 0xBFB50288A0000000, %89
%92 = tail call float @exp(float %91)
%93 = fmul float %90, %92
%94 = fadd float %93, 0x3FFE147AE0000000
br label %95
95: ; preds = %167, %88
%96 = phi float [ 8.650000e+02, %88 ], [ %169, %167 ]
%97 = phi i64 [ 0, %88 ], [ %165, %167 ]
%98 = phi float [ -1.000000e+00, %88 ], [ %164, %167 ]
%99 = load float, float* %4
%100 = fcmp olt float %99, %96
%101 = getelementptr inbounds [22 x float], [22 x float]* %16, i64 0, i64 %97
%102 = load float, float* %101
br i1 %100, label %103, label %118
103: ; preds = %95
%104 = fdiv float %99, %96
%105 = tail call float @log(float %104)
%106 = getelementptr inbounds [22 x float], [22 x float]* %18, i64 0, i64 %97
%107 = load float, float* %106
%108 = load float, float* %4
%109 = fdiv float %108, %96
%110 = tail call float @log(float %109)
%111 = fmul float %110, 0x3FF2E147A0000000
%112 = tail call float @exp(float %111)
%113 = tail call float @llvm.fmuladd.f32(float %112, float 0x3FFE147AE0000000, float %93)
%114 = fdiv float %113, %94
%115 = tail call float @log(float %114)
%116 = fmul float %107, %115
%117 = tail call float @llvm.fmuladd.f32(float %102, float %105, float %116)
br label %125
118: ; preds = %95
%119 = getelementptr inbounds [22 x float], [22 x float]* %18, i64 0, i64 %97
%120 = load float, float* %119
%121 = tail call float @llvm.fmuladd.f32(float %120, float 0x3FF2E147A0000000, float %102)
%122 = fdiv float %99, %96
%123 = tail call float @log(float %122)
%124 = fmul float %121, %123
br label %125
125: ; preds = %118, %103
%126 = phi float [ %107, %103 ], [ %120, %118 ]
%127 = phi float [ %117, %103 ], [ %124, %118 ]
%128 = load float, float* %3
%129 = fcmp olt float %128, %96
br i1 %129, label %130, label %143
130: ; preds = %125
%131 = fdiv float %128, %96
%132 = tail call float @log(float %131)
%133 = load float, float* %3
%134 = fdiv float %133, %96
%135 = tail call float @log(float %134)
%136 = fmul float %135, 0x3FF2E147A0000000
%137 = tail call float @exp(float %136)
%138 = tail call float @llvm.fmuladd.f32(float %137, float 0x3FFE147AE0000000, float %93)
%139 = fdiv float %138, %94
%140 = tail call float @log(float %139)
%141 = fmul float %126, %140
%142 = tail call float @llvm.fmuladd.f32(float %102, float %132, float %141)
br label %148
143: ; preds = %125
%144 = tail call float @llvm.fmuladd.f32(float %126, float 0x3FF2E147A0000000, float %102)
%145 = fdiv float %128, %96
%146 = tail call float @log(float %145)
%147 = fmul float %144, %146
br label %148
148: ; preds = %143, %130
%149 = phi float [ %142, %130 ], [ %147, %143 ]
%150 = fsub float %127, %149
%151 = tail call float @exp(float %150)
%152 = getelementptr inbounds [22 x float], [22 x float]* %19, i64 0, i64 %97
store float %151, float* %152
%153 = getelementptr inbounds [22 x float], [22 x float]* %15, i64 0, i64 %97
%154 = load float, float* %153
%155 = fpext float %154 to double
%156 = fdiv double 1.000000e+00, %155
%157 = load float, float* %13
%158 = fpext float %157 to double
%159 = fcmp ugt double %156, %158
br i1 %159, label %163, label %160
160: ; preds = %148
%161 = fcmp olt float %98, 0.000000e+00
br i1 %161, label %163, label %162
162: ; preds = %160
store float %98, float* %152
br label %163
163: ; preds = %160, %148, %162
%164 = phi float [ %98, %162 ], [ %98, %148 ], [ %151, %160 ]
%165 = add nuw nsw i64 %97, 1
%166 = icmp eq i64 %165, 22
br i1 %166, label %170, label %167
167: ; preds = %163
%168 = getelementptr inbounds [22 x float], [22 x float]* %17, i64 0, i64 %165
%169 = load float, float* %168
br label %95
170: ; preds = %163
%171 = load float, float* %35
%172 = fdiv float 1.000000e+00, %171
%173 = getelementptr inbounds [22 x float], [22 x float]* %19, i64 0, i64 21
%174 = load float, float* %173
%175 = sitofp i32 %2 to float
%176 = load float, float* %1
%177 = fmul float %176, %175
%178 = fdiv float 1.000000e+00, %177
%179 = icmp sgt i32 %2, 3
br i1 %179, label %180, label %265
180: ; preds = %170
%181 = lshr i32 %2, 1
%182 = zext i32 %181 to i64
br label %183
183: ; preds = %180, %260
%184 = phi i64 [ 1, %180 ], [ %263, %260 ]
%185 = phi i32 [ 21, %180 ], [ %218, %260 ]
%186 = phi float [ 0.000000e+00, %180 ], [ %217, %260 ]
%187 = phi float [ %174, %180 ], [ %216, %260 ]
%188 = phi float [ %174, %180 ], [ %215, %260 ]
%189 = phi float [ %172, %180 ], [ %214, %260 ]
%190 = phi float [ %172, %180 ], [ %213, %260 ]
%191 = trunc i64 %184 to i32
%192 = sitofp i32 %191 to float
%193 = fmul float %178, %192
%194 = fcmp ogt float %193, %189
br i1 %194, label %195, label %212
195: ; preds = %183
%196 = icmp sgt i32 %185, 0
%197 = sext i1 %196 to i32
%198 = add nsw i32 %185, %197
%199 = sext i32 %198 to i64
%200 = getelementptr inbounds [22 x float], [22 x float]* %15, i64 0, i64 %199
%201 = load float, float* %200
%202 = fcmp une float %201, 0.000000e+00
%203 = fdiv float 1.000000e+00, %201
%204 = select i1 %202, float %203, float 1.000000e+03
%205 = getelementptr inbounds [22 x float], [22 x float]* %19, i64 0, i64 %199
%206 = load float, float* %205
%207 = fcmp une float %204, %189
br i1 %207, label %208, label %212
208: ; preds = %195
%209 = fsub float %206, %187
%210 = fsub float %204, %189
%211 = fdiv float %209, %210
br label %212
212: ; preds = %195, %208, %183
%213 = phi float [ %189, %208 ], [ %190, %183 ], [ %189, %195 ]
%214 = phi float [ %204, %208 ], [ %189, %183 ], [ %204, %195 ]
%215 = phi float [ %187, %208 ], [ %188, %183 ], [ %187, %195 ]
%216 = phi float [ %206, %208 ], [ %187, %183 ], [ %206, %195 ]
%217 = phi float [ %211, %208 ], [ %186, %183 ], [ 0.000000e+00, %195 ]
%218 = phi i32 [ %198, %208 ], [ %185, %183 ], [ %198, %195 ]
%219 = fsub float %193, %213
%220 = tail call float @llvm.fmuladd.f32(float %217, float %219, float %215)
%221 = load float, float* %7
%222 = fcmp olt float %193, %221
br i1 %222, label %260, label %223
223: ; preds = %212
%224 = load float, float* %8
%225 = fcmp olt float %193, %224
br i1 %225, label %226, label %237
226: ; preds = %223
%227 = fsub float %193, %221
%228 = fpext float %227 to double
%229 = fpext float %220 to double
%230 = fadd double %229, -1.000000e+00
%231 = fmul double %230, %228
%232 = fsub float %224, %221
%233 = fpext float %232 to double
%234 = fdiv double %231, %233
%235 = fadd double %234, 1.000000e+00
%236 = fptrunc double %235 to float
br label %260
237: ; preds = %223
%238 = load float, float* %9
%239 = fcmp olt float %193, %238
br i1 %239, label %260, label %240
240: ; preds = %237
%241 = load float, float* %10
%242 = fcmp olt float %193, %241
br i1 %242, label %260, label %243
243: ; preds = %240
%244 = load float, float* %11
%245 = fcmp olt float %193, %244
br i1 %245, label %260, label %246
246: ; preds = %243
%247 = load float, float* %12
%248 = fcmp olt float %193, %247
br i1 %248, label %249, label %260
249: ; preds = %246
%250 = fpext float %220 to double
%251 = fsub float %193, %244
%252 = fpext float %251 to double
%253 = fsub double 1.000000e+00, %250
%254 = fmul double %253, %252
%255 = fsub float %247, %244
%256 = fpext float %255 to double
%257 = fdiv double %254, %256
%258 = fadd double %257, %250
%259 = fptrunc double %258 to float
br label %260
260: ; preds = %246, %243, %240, %237, %212, %226, %249
%261 = phi float [ %236, %226 ], [ %259, %249 ], [ 1.000000e+00, %212 ], [ %220, %237 ], [ %220, %240 ], [ %220, %243 ], [ 1.000000e+00, %246 ]
%262 = getelementptr inbounds float, float* %0, i64 %184
store float %261, float* %262
%263 = add nuw nsw i64 %184, 1
%264 = icmp eq i64 %263, %182
br i1 %264, label %265, label %183
265: ; preds = %260, %170
ret void
}