#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 */
double atan2(double, double);
int /*<<< orphan*/ atmoDensity(double, double *);
double cos(double);
int /*<<< orphan*/ interp(double *, double *, double *, double *, double *,
                          double *, double **, double **, double **, double **,
                          double **, double **, double **, double **, double,
                          double, double, double, double, double, double,
                          double, double, double, double, double, double);
double sin(double);
double sqrt(double);
double tan(double);
void mathModel(double dy[12], double y[12], double mass, double surface,
               double wingspan, double chord,
               double steadyStateCoefficients[][126],
               double YForceDerivatives[][126], double ZForceDerivatives[][126],
               double RollingMomentDerivatives[][126],
               double PitchingMomentDerivatives[][126],
               double YawingMomentDerivatives[][126],
               double ControlForceDerivatives[][126],
               double ControlMomentDerivatives[][126], double Jx, double Jy,
               double Jz, double Jxz, double de, double da, double dr,
               double T) {
  int i;
  double u = y[0];
  double v = y[1];
  double w = y[2];
  double p = y[3];
  double q = y[4];
  double r = y[5];
  double phi = y[6];
  double theta = y[7];
  double psi = y[8];
  double xv = y[9];
  double yv = y[10];
  double zv = y[11];
  double Cx;
  double Cy;
  double Cz;
  double Cl;
  double Cm;
  double Cn;
  double Rho[1];
  atmoDensity(y[11], Rho);
  double rho = Rho[0];
  double V = sqrt(u * u + v * v + w * w);
  double alpha = atan2(w, u);
  double beta = atan2(v, u);
  double alphaDot = q - p * cos(alpha) * tan(beta) - r * sin(alpha) * tan(beta);
  double betaDot = p * sin(alpha) - r * cos(alpha);
  double X;
  double Y;
  double Z;
  double L;
  double M;
  double N;
  double Tx = T;
  double Ty = 0;
  double Tz = 0;
  interp(&Cx, &Cy, &Cz, &Cl, &Cm, &Cn, steadyStateCoefficients,
         YForceDerivatives, ZForceDerivatives, RollingMomentDerivatives,
         PitchingMomentDerivatives, YawingMomentDerivatives,
         ControlForceDerivatives, ControlMomentDerivatives, alpha, beta,
         alphaDot, betaDot, p, q, r, V, de, da, dr, wingspan, chord);
  X = Cx * 0.5 * rho * V * V * surface;
  Y = Cy * 0.5 * rho * V * V * surface;
  Z = Cz * 0.5 * rho * V * V * surface;
  L = Cl * 0.5 * rho * wingspan * V * V * surface;
  M = Cm * 0.5 * rho * chord * V * V * surface;
  N = Cn * 0.5 * rho * wingspan * V * V * surface;
  double uDot =
      1 / mass *
      (X - mass * q * w + mass * r * v - mass * 9.81 * sin(theta) + Tx);
  double vDot = 1 / mass *
                (Y - mass * r * u + mass * p * w +
                 mass * 9.81 * cos(theta) * sin(phi) + Ty);
  double wDot = 1 / mass *
                (Z - mass * p * v + mass * q * u +
                 mass * 9.81 * cos(theta) * cos(phi) + Tz);
  double pDot = 1 / (Jx * Jz - Jxz * Jxz) *
                (Jz * L + Jxz * N + Jz * Jxz * p * q - Jz * (Jz - Jy) * q * r +
                 Jxz * (Jy - Jx) * p * q - Jxz * Jxz * q * r);
  double qDot = 1 / Jy * (M - (Jx - Jz) * p * r - Jxz * (p * p - r * r));
  double rDot = 1 / (Jx * Jz - Jxz * Jxz) *
                (Jx * N + Jxz * L - Jx * Jxz * q * r - Jx * (Jy - Jx) * p * q -
                 Jxz * (Jz - Jy) * q * r + Jxz * Jxz * p * q);
  double phiDot = p + q * tan(theta) * sin(phi) + r * tan(theta) * cos(phi);
  double thetaDot = q * cos(phi) - r * sin(phi);
  double psiDot = r * cos(phi) / cos(theta) + q * sin(phi) / cos(theta);
  double xDot = u * cos(psi) * cos(theta) +
                v * (cos(psi) * sin(theta) * sin(phi) - sin(psi) * cos(phi)) +
                w * (cos(psi) * sin(theta) * cos(phi) + sin(psi) * sin(phi));
  double yDot = u * sin(psi) * cos(theta) +
                v * (sin(psi) * sin(theta) * sin(phi) + cos(psi) * cos(phi)) +
                w * (sin(psi) * sin(theta) * cos(phi) + cos(psi) * sin(phi));
  double zDot =
      u * sin(theta) - v * cos(theta) * sin(phi) - w * cos(theta) * cos(phi);
  dy[0] = uDot;
  dy[1] = vDot;
  dy[2] = wDot;
  dy[3] = pDot;
  dy[4] = qDot;
  dy[5] = rDot;
  dy[6] = phiDot;
  dy[7] = thetaDot;
  dy[8] = psiDot;
  dy[9] = xDot;
  dy[10] = yDot;
  dy[11] = zDot;
}


x86 assembly (clang, -O0):
<mathModel>:
push   %rbp
mov    %rsp,%rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x478,%rsp
movsd  0x48(%rbp),%xmm8
movsd  0x40(%rbp),%xmm8
movsd  0x38(%rbp),%xmm8
movsd  0x30(%rbp),%xmm8
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x30(%rbp)
mov    %rsi,-0x38(%rbp)
movsd  %xmm0,-0x40(%rbp)
movsd  %xmm1,-0x48(%rbp)
movsd  %xmm2,-0x50(%rbp)
movsd  %xmm3,-0x58(%rbp)
mov    %rdx,-0x60(%rbp)
mov    %rcx,-0x68(%rbp)
mov    %r8,-0x70(%rbp)
mov    %r9,-0x78(%rbp)
movsd  %xmm4,-0x80(%rbp)
movsd  %xmm5,-0x88(%rbp)
ff
movsd  %xmm6,-0x90(%rbp)
ff
movsd  %xmm7,-0x98(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  0x58(%rax),%xmm0
lea    -0x138(%rbp),%rdi
call   1070 <atmoDensity@plt>
movsd  -0x138(%rbp),%xmm0
ff
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0xa8(%rbp),%xmm1
ff
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0xb0(%rbp),%xmm0
ff
mulsd  -0xb0(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xb8(%rbp),%xmm0
ff
movsd  -0xb8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1090 <sqrt@plt>
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm1
ff
call   1030 <atan2@plt>
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm1
ff
call   1030 <atan2@plt>
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x430(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  %xmm0,-0x438(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
call   1080 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x438(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x428(%rbp)
ff
movsd  -0x158(%rbp),%xmm0
ff
call   1060 <tan@plt>
movsd  -0x430(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x428(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x418(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x420(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
call   1050 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0x420(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x410(%rbp)
ff
movsd  -0x158(%rbp),%xmm0
ff
call   1060 <tan@plt>
movsd  -0x418(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x410(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3f8(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
call   1050 <sin@plt>
movsd  %xmm0,-0x400(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x408(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
call   1080 <cos@plt>
movsd  -0x408(%rbp),%xmm1
ff
movsd  -0x400(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x3f8(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
movsd  0x48(%rbp),%xmm0
movsd  %xmm0,-0x1a0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x1a8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x1b0(%rbp)
ff
mov    -0x60(%rbp),%r13
mov    -0x68(%rbp),%r12
mov    -0x70(%rbp),%r15
mov    -0x78(%rbp),%r14
mov    0x10(%rbp),%rbx
mov    0x18(%rbp),%r11
mov    0x20(%rbp),%r10
mov    0x28(%rbp),%rax
movsd  -0x150(%rbp),%xmm0
ff
movsd  -0x158(%rbp),%xmm1
ff
movsd  -0x160(%rbp),%xmm2
ff
movsd  -0x168(%rbp),%xmm3
ff
movsd  -0xc0(%rbp),%xmm4
ff
movsd  -0xc8(%rbp),%xmm5
ff
movsd  -0xd0(%rbp),%xmm6
ff
movsd  -0x148(%rbp),%xmm7
ff
movsd  0x30(%rbp),%xmm12
movsd  0x38(%rbp),%xmm11
movsd  0x40(%rbp),%xmm10
movsd  -0x50(%rbp),%xmm9
movsd  -0x58(%rbp),%xmm8
lea    -0x108(%rbp),%rdi
lea    -0x110(%rbp),%rsi
lea    -0x118(%rbp),%rdx
lea    -0x120(%rbp),%rcx
lea    -0x128(%rbp),%r8
lea    -0x130(%rbp),%r9
mov    %r13,(%rsp)
mov    %r12,0x8(%rsp)
mov    %r15,0x10(%rsp)
mov    %r14,0x18(%rsp)
mov    %rbx,0x20(%rsp)
mov    %r11,0x28(%rsp)
mov    %r10,0x30(%rsp)
mov    %rax,0x38(%rsp)
movsd  %xmm12,0x40(%rsp)
movsd  %xmm11,0x48(%rsp)
movsd  %xmm10,0x50(%rsp)
movsd  %xmm9,0x58(%rsp)
movsd  %xmm8,0x60(%rsp)
call   1040 <interp@plt>
movsd  0x19f4(%rip),%xmm0
mulsd  -0x108(%rbp),%xmm0
ff
mulsd  -0x140(%rbp),%xmm0
ff
mulsd  -0x148(%rbp),%xmm0
ff
mulsd  -0x148(%rbp),%xmm0
ff
mulsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x170(%rbp)
ff
movsd  0x19bf(%rip),%xmm0
mulsd  -0x110(%rbp),%xmm0
ff
mulsd  -0x140(%rbp),%xmm0
ff
mulsd  -0x148(%rbp),%xmm0
ff
mulsd  -0x148(%rbp),%xmm0
ff
mulsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x178(%rbp)
ff
movsd  0x198a(%rip),%xmm0
mulsd  -0x118(%rbp),%xmm0
ff
mulsd  -0x140(%rbp),%xmm0
ff
mulsd  -0x148(%rbp),%xmm0
ff
mulsd  -0x148(%rbp),%xmm0
ff
mulsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x180(%rbp)
ff
movsd  0x1955(%rip),%xmm0
mulsd  -0x120(%rbp),%xmm0
ff
mulsd  -0x140(%rbp),%xmm0
ff
mulsd  -0x50(%rbp),%xmm0
mulsd  -0x148(%rbp),%xmm0
ff
mulsd  -0x148(%rbp),%xmm0
ff
mulsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x188(%rbp)
ff
movsd  0x191b(%rip),%xmm0
mulsd  -0x128(%rbp),%xmm0
ff
mulsd  -0x140(%rbp),%xmm0
ff
mulsd  -0x58(%rbp),%xmm0
mulsd  -0x148(%rbp),%xmm0
ff
mulsd  -0x148(%rbp),%xmm0
ff
mulsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x190(%rbp)
ff
movsd  0x18e1(%rip),%xmm0
mulsd  -0x130(%rbp),%xmm0
ff
mulsd  -0x140(%rbp),%xmm0
ff
mulsd  -0x50(%rbp),%xmm0
mulsd  -0x148(%rbp),%xmm0
ff
mulsd  -0x148(%rbp),%xmm0
ff
mulsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x198(%rbp)
ff
movsd  0x1897(%rip),%xmm0
divsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x3e0(%rbp)
ff
movsd  -0x170(%rbp),%xmm0
ff
movsd  -0x40(%rbp),%xmm1
mulsd  -0xc8(%rbp),%xmm1
ff
movsd  -0xb8(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x40(%rbp),%xmm0
mulsd  -0xd0(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x3e8(%rbp)
ff
movsd  0x1829(%rip),%xmm0
mulsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x3f0(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
call   1050 <sin@plt>
movsd  -0x3f0(%rbp),%xmm1
movsd  -0x3e8(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x3e0(%rbp),%xmm0
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
addsd  -0x1a0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  0x17b1(%rip),%xmm0
divsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x3c0(%rbp)
ff
movsd  -0x178(%rbp),%xmm0
ff
movsd  -0x40(%rbp),%xmm1
mulsd  -0xd0(%rbp),%xmm1
ff
movsd  -0xa8(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x40(%rbp),%xmm0
mulsd  -0xc0(%rbp),%xmm0
ff
movsd  -0xb8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x3c8(%rbp)
ff
movsd  0x1743(%rip),%xmm0
mulsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x3d8(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
call   1080 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x3d8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x3d0(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1050 <sin@plt>
movsd  -0x3d0(%rbp),%xmm1
ff
movsd  -0x3c8(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x3c0(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
addsd  -0x1a8(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c0(%rbp)
ff
movsd  0x16be(%rip),%xmm0
divsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x3a0(%rbp)
ff
movsd  -0x180(%rbp),%xmm0
ff
movsd  -0x40(%rbp),%xmm1
mulsd  -0xc0(%rbp),%xmm1
ff
movsd  -0xb0(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x40(%rbp),%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x3a8(%rbp)
ff
movsd  0x1650(%rip),%xmm0
mulsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x3b8(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
call   1080 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x3b8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x3b0(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1080 <cos@plt>
movsd  -0x3b0(%rbp),%xmm1
ff
movsd  -0x3a8(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x3a0(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
addsd  -0x1b0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  -0x80(%rbp),%xmm1
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x98(%rbp),%xmm0
ff
mulsd  -0x98(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x158f(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  -0x90(%rbp),%xmm1
ff
movsd  -0x188(%rbp),%xmm3
ff
movsd  -0x98(%rbp),%xmm2
ff
mulsd  -0x198(%rbp),%xmm2
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  -0x90(%rbp),%xmm2
ff
mulsd  -0x98(%rbp),%xmm2
ff
mulsd  -0xc0(%rbp),%xmm2
ff
movsd  -0xc8(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  -0x90(%rbp),%xmm1
ff
movsd  -0x90(%rbp),%xmm3
ff
subsd  -0x88(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
mulsd  -0xc8(%rbp),%xmm1
ff
movsd  -0xd0(%rbp),%xmm3
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x88(%rbp),%xmm3
ff
subsd  -0x80(%rbp),%xmm3
mulsd  %xmm3,%xmm2
mulsd  -0xc0(%rbp),%xmm2
ff
movsd  -0xc8(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  -0x98(%rbp),%xmm1
ff
mulsd  -0xc8(%rbp),%xmm1
ff
movsd  -0xd0(%rbp),%xmm3
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1d0(%rbp)
ff
movsd  0x146c(%rip),%xmm0
divsd  -0x88(%rbp),%xmm0
ff
movsd  -0x190(%rbp),%xmm1
ff
movsd  -0x80(%rbp),%xmm2
subsd  -0x90(%rbp),%xmm2
ff
mulsd  -0xc0(%rbp),%xmm2
ff
movsd  -0xd0(%rbp),%xmm3
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  -0x98(%rbp),%xmm1
ff
movsd  -0xc0(%rbp),%xmm3
ff
movsd  -0xc0(%rbp),%xmm5
ff
movsd  -0xd0(%rbp),%xmm4
ff
mulsd  -0xd0(%rbp),%xmm4
ff
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1d8(%rbp)
ff
movsd  -0x80(%rbp),%xmm1
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x98(%rbp),%xmm0
ff
mulsd  -0x98(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x136a(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  -0x80(%rbp),%xmm1
movsd  -0x198(%rbp),%xmm3
ff
movsd  -0x98(%rbp),%xmm2
ff
mulsd  -0x188(%rbp),%xmm2
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  -0x80(%rbp),%xmm2
mulsd  -0x98(%rbp),%xmm2
ff
mulsd  -0xc8(%rbp),%xmm2
ff
movsd  -0xd0(%rbp),%xmm3
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  -0x80(%rbp),%xmm1
movsd  -0x88(%rbp),%xmm3
ff
subsd  -0x80(%rbp),%xmm3
mulsd  %xmm3,%xmm1
mulsd  -0xc0(%rbp),%xmm1
ff
movsd  -0xc8(%rbp),%xmm3
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x90(%rbp),%xmm3
ff
subsd  -0x88(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm2
mulsd  -0xc8(%rbp),%xmm2
ff
movsd  -0xd0(%rbp),%xmm3
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  -0x98(%rbp),%xmm1
ff
mulsd  -0xc0(%rbp),%xmm1
ff
movsd  -0xc8(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1e0(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  %xmm0,-0x390(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x398(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
call   1060 <tan@plt>
movaps %xmm0,%xmm1
movsd  -0x398(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x388(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1050 <sin@plt>
movsd  -0x390(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x388(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x378(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x380(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
call   1060 <tan@plt>
movaps %xmm0,%xmm1
movsd  -0x380(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x370(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1080 <cos@plt>
movsd  -0x378(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x370(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1e8(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x358(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1080 <cos@plt>
movsd  %xmm0,-0x360(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x368(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1050 <sin@plt>
movsd  -0x368(%rbp),%xmm1
ff
movsd  -0x360(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x358(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1f0(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x350(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1080 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x350(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x348(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
call   1080 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x348(%rbp),%xmm0
ff
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x330(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x340(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1050 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0x340(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x338(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
call   1080 <cos@plt>
movsd  -0x338(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x330(%rbp),%xmm0
ff
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1f8(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0x328(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
call   1080 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x328(%rbp),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2f0(%rbp)
movsd  -0xe0(%rbp),%xmm0
ff
call   1080 <cos@plt>
movsd  %xmm0,-0x2f8(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x300(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
call   1080 <cos@plt>
movsd  %xmm0,-0x320(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
call   1050 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0x320(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x310(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1050 <sin@plt>
movsd  %xmm0,-0x308(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
call   1050 <sin@plt>
movsd  %xmm0,-0x318(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1080 <cos@plt>
movsd  -0x318(%rbp),%xmm4
ff
movsd  -0x310(%rbp),%xmm3
ff
movsd  -0x308(%rbp),%xmm5
ff
movsd  -0x300(%rbp),%xmm1
ff
movsd  -0x2f8(%rbp),%xmm2
ff
movaps %xmm0,%xmm6
movsd  -0x2f0(%rbp),%xmm0
ff
mulsd  %xmm6,%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2c8(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0x2c0(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
call   1080 <cos@plt>
movsd  %xmm0,-0x2e8(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
call   1050 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0x2e8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2d8(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1080 <cos@plt>
movsd  %xmm0,-0x2d0(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
call   1050 <sin@plt>
movsd  %xmm0,-0x2e0(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1050 <sin@plt>
movsd  -0x2e0(%rbp),%xmm3
ff
movsd  -0x2d8(%rbp),%xmm2
ff
movsd  -0x2d0(%rbp),%xmm4
ff
movsd  -0x2c8(%rbp),%xmm1
ff
movaps %xmm0,%xmm5
movsd  -0x2c0(%rbp),%xmm0
ff
mulsd  %xmm5,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x200(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0x2b8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
call   1050 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0x2b8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x280(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
call   1080 <cos@plt>
movsd  %xmm0,-0x288(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x290(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
call   1050 <sin@plt>
movsd  %xmm0,-0x2b0(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
call   1050 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0x2b0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2a0(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1050 <sin@plt>
movsd  %xmm0,-0x298(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
call   1080 <cos@plt>
movsd  %xmm0,-0x2a8(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1080 <cos@plt>
movsd  -0x2a8(%rbp),%xmm4
ff
movsd  -0x2a0(%rbp),%xmm3
ff
movsd  -0x298(%rbp),%xmm5
ff
movsd  -0x290(%rbp),%xmm1
ff
movsd  -0x288(%rbp),%xmm2
ff
movaps %xmm0,%xmm6
movsd  -0x280(%rbp),%xmm0
ff
mulsd  %xmm6,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x258(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0x250(%rbp)
movsd  -0xe8(%rbp),%xmm0
ff
call   1050 <sin@plt>
movsd  %xmm0,-0x278(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
call   1050 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0x278(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x268(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1080 <cos@plt>
movsd  %xmm0,-0x260(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
call   1080 <cos@plt>
movsd  %xmm0,-0x270(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1050 <sin@plt>
movsd  -0x270(%rbp),%xmm3
ff
movsd  -0x268(%rbp),%xmm2
ff
movsd  -0x260(%rbp),%xmm4
ff
movsd  -0x258(%rbp),%xmm1
ff
movaps %xmm0,%xmm5
movsd  -0x250(%rbp),%xmm0
ff
mulsd  %xmm5,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0x230(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
call   1050 <sin@plt>
movsd  %xmm0,-0x238(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x248(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
call   1080 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x248(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x240(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1050 <sin@plt>
movsd  -0x240(%rbp),%xmm1
ff
movsd  -0x238(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x230(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x220(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
call   1080 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x228(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x218(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1080 <cos@plt>
movsd  -0x220(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x218(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x1b8(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x1c0(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0x1c8(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x1d0(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x18(%rax)
movsd  -0x1d8(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0x1e0(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x28(%rax)
movsd  -0x1e8(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x30(%rax)
movsd  -0x1f0(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x38(%rax)
movsd  -0x1f8(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x40(%rax)
movsd  -0x200(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x48(%rax)
movsd  -0x208(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x50(%rax)
movsd  -0x210(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x58(%rax)
add    $0x478,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

x86 assembly (clang, -O2):
<mathModel>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x248,%rsp
movaps %xmm7,0x1b0(%rsp)
movsd  %xmm6,0x190(%rsp)
movsd  %xmm5,0x1d0(%rsp)
movsd  %xmm4,0x1a0(%rsp)
mov    %r9,%r13
mov    %r8,%r12
mov    %rcx,%r15
mov    %rdx,%rbx
movsd  %xmm3,0x140(%rsp)
movsd  %xmm2,0x120(%rsp)
movaps %xmm1,0x180(%rsp)
movaps %xmm0,0xd0(%rsp)
mov    %rdi,%r14
mov    0x280(%rsp),%rbp
movsd  (%rsi),%xmm0
movaps %xmm0,0x130(%rsp)
movups 0x8(%rsi),%xmm0
movaps %xmm0,0x150(%rsp)
movups 0x18(%rsi),%xmm0
movaps %xmm0,0x90(%rsp)
movsd  0x28(%rsi),%xmm0
movaps %xmm0,0xf0(%rsp)
movsd  0x30(%rsi),%xmm0
movsd  %xmm0,0x78(%rsp)
movsd  0x38(%rsi),%xmm0
movsd  %xmm0,0x70(%rsp)
movsd  0x40(%rsi),%xmm0
movsd  %xmm0,0xa0(%rsp)
movsd  0x58(%rsi),%xmm0
lea    0x1f8(%rsp),%rdi
call   1070 <atmoDensity@plt>
movsd  0x1f8(%rsp),%xmm0
movaps %xmm0,0x170(%rsp)
movapd 0x150(%rsp),%xmm2
movapd %xmm2,%xmm0
mulsd  %xmm2,%xmm0
movapd 0x130(%rsp),%xmm1
mulsd  %xmm1,%xmm1
addsd  %xmm0,%xmm1
movapd %xmm2,%xmm0
unpckhpd %xmm2,%xmm0
movapd %xmm0,0x1e0(%rsp)
mulsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     12a0 <mathModel+0x130>
sqrtsd %xmm0,%xmm0
jmp    12a5 <mathModel+0x135>
call   1090 <sqrt@plt>
movapd %xmm0,0x110(%rsp)
movaps 0x1e0(%rsp),%xmm0
movaps 0x130(%rsp),%xmm1
call   1030 <atan2@plt>
movsd  %xmm0,0x80(%rsp)
movaps 0x150(%rsp),%xmm0
movaps 0x130(%rsp),%xmm1
call   1030 <atan2@plt>
movsd  %xmm0,0xc0(%rsp)
movsd  0x80(%rsp),%xmm0
call   1080 <cos@plt>
movsd  %xmm0,0xe0(%rsp)
movsd  0xc0(%rsp),%xmm0
call   1060 <tan@plt>
movapd 0x90(%rsp),%xmm1
movsd  0xe0(%rsp),%xmm2
mulsd  %xmm1,%xmm2
unpckhpd %xmm1,%xmm1
movapd %xmm1,0xe0(%rsp)
mulsd  %xmm0,%xmm2
subsd  %xmm2,%xmm1
movapd %xmm1,0xb0(%rsp)
movsd  0x80(%rsp),%xmm0
call   1050 <sin@plt>
movsd  %xmm0,0x100(%rsp)
movsd  0xc0(%rsp),%xmm0
call   1060 <tan@plt>
movapd 0xf0(%rsp),%xmm1
movapd %xmm1,%xmm2
xorpd  0xc83(%rip),%xmm2
movapd %xmm2,0x1c0(%rsp)
movsd  0x100(%rsp),%xmm2
mulsd  %xmm1,%xmm2
mulsd  %xmm0,%xmm2
movapd 0xb0(%rsp),%xmm0
subsd  %xmm2,%xmm0
movapd %xmm0,0xb0(%rsp)
movsd  0x80(%rsp),%xmm0
call   1050 <sin@plt>
movsd  %xmm0,0x100(%rsp)
movsd  0x80(%rsp),%xmm0
call   1080 <cos@plt>
movapd 0xf0(%rsp),%xmm6
mulsd  %xmm6,%xmm0
movapd 0x90(%rsp),%xmm4
movsd  0x100(%rsp),%xmm3
mulsd  %xmm4,%xmm3
subsd  %xmm0,%xmm3
movsd  0x140(%rsp),%xmm0
movsd  %xmm0,0x60(%rsp)
movsd  0x120(%rsp),%xmm0
movsd  %xmm0,0x58(%rsp)
movsd  0x2b0(%rsp),%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0x2a8(%rsp),%xmm0
movsd  %xmm0,0x48(%rsp)
movsd  0x2a0(%rsp),%xmm0
movsd  %xmm0,0x40(%rsp)
mov    0x298(%rsp),%rax
mov    %rax,0x38(%rsp)
mov    0x290(%rsp),%rax
mov    %rax,0x30(%rsp)
mov    0x288(%rsp),%rax
mov    %rax,0x28(%rsp)
mov    %rbp,0x20(%rsp)
mov    %r13,0x18(%rsp)
mov    %r12,0x10(%rsp)
mov    %r15,0x8(%rsp)
mov    %rbx,(%rsp)
lea    0x228(%rsp),%rdi
lea    0x220(%rsp),%rsi
lea    0x218(%rsp),%rdx
lea    0x210(%rsp),%rcx
lea    0x208(%rsp),%r8
lea    0x200(%rsp),%r9
movsd  0x80(%rsp),%xmm0
movsd  0xc0(%rsp),%xmm1
movaps 0xb0(%rsp),%xmm2
movaps 0xe0(%rsp),%xmm5
movaps 0x110(%rsp),%xmm7
call   1040 <interp@plt>
movsd  0x228(%rsp),%xmm0
movhpd 0x220(%rsp),%xmm0
mulpd  0xb14(%rip),%xmm0
movapd 0x170(%rsp),%xmm3
movapd %xmm3,%xmm1
unpcklpd %xmm3,%xmm1
mulpd  %xmm0,%xmm1
movapd 0x110(%rsp),%xmm5
movapd %xmm5,%xmm0
unpcklpd %xmm5,%xmm0
mulpd  %xmm0,%xmm1
mulpd  %xmm0,%xmm1
movapd 0x180(%rsp),%xmm0
movapd %xmm0,%xmm2
unpcklpd %xmm0,%xmm2
mulpd  %xmm1,%xmm2
movapd %xmm2,0x230(%rsp)
movsd  0xae0(%rip),%xmm1
movsd  0x218(%rsp),%xmm2
mulsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm2
mulsd  %xmm5,%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,0x1f0(%rsp)
movsd  0x210(%rsp),%xmm2
mulsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm2
movsd  0x120(%rsp),%xmm4
mulsd  %xmm4,%xmm2
mulsd  %xmm5,%xmm2
mulsd  %xmm5,%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,0x160(%rsp)
movsd  0x208(%rsp),%xmm2
mulsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm2
mulsd  0x140(%rsp),%xmm2
mulsd  %xmm5,%xmm2
mulsd  %xmm5,%xmm2
mulsd  %xmm0,%xmm2
movapd %xmm2,0x100(%rsp)
mulsd  0x200(%rsp),%xmm1
mulsd  %xmm3,%xmm1
mulsd  %xmm4,%xmm1
mulsd  %xmm5,%xmm1
mulsd  %xmm5,%xmm1
mulsd  %xmm0,%xmm1
movapd %xmm1,0x120(%rsp)
movapd 0xe0(%rsp),%xmm0
movapd 0xd0(%rsp),%xmm1
mulsd  %xmm1,%xmm0
movapd %xmm0,0x80(%rsp)
movsd  0xa13(%rip),%xmm0
mulsd  %xmm1,%xmm0
movapd %xmm0,0xc0(%rsp)
movsd  0x70(%rsp),%xmm0
call   1050 <sin@plt>
movaps %xmm0,0x140(%rsp)
movaps 0xc0(%rsp),%xmm0
xorps  0x9ac(%rip),%xmm0
movaps %xmm0,0xb0(%rsp)
movapd 0xf0(%rsp),%xmm0
unpcklpd 0x90(%rsp),%xmm0
movapd 0xd0(%rsp),%xmm1
unpcklpd %xmm1,%xmm1
mulpd  %xmm0,%xmm1
movapd 0x80(%rsp),%xmm0
unpcklpd %xmm1,%xmm0
movapd %xmm1,%xmm3
movapd %xmm1,0x110(%rsp)
movapd 0x150(%rsp),%xmm2
movapd %xmm2,%xmm1
shufpd $0x1,0x130(%rsp),%xmm1
mulpd  %xmm0,%xmm1
movapd 0x230(%rsp),%xmm0
subpd  %xmm1,%xmm0
mulpd  %xmm2,%xmm3
addpd  %xmm0,%xmm3
movapd %xmm3,0x180(%rsp)
movsd  0x70(%rsp),%xmm0
call   1080 <cos@plt>
mulsd  0xc0(%rsp),%xmm0
movapd 0xb0(%rsp),%xmm1
unpcklpd %xmm0,%xmm1
movapd %xmm1,0xb0(%rsp)
movsd  0x78(%rsp),%xmm0
call   1050 <sin@plt>
movapd 0x140(%rsp),%xmm1
unpcklpd %xmm0,%xmm1
mulpd  0xb0(%rsp),%xmm1
addpd  0x180(%rsp),%xmm1
movq   0x2b8(%rsp),%xmm0
movq   %xmm0,%xmm0
addpd  %xmm1,%xmm0
movapd 0x1b0(%rsp),%xmm2
mulsd  %xmm2,%xmm2
movapd %xmm2,0xb0(%rsp)
movsd  0x1a0(%rsp),%xmm1
mulsd  0x190(%rsp),%xmm1
subsd  %xmm2,%xmm1
movapd 0xd0(%rsp),%xmm2
unpcklpd %xmm1,%xmm2
movapd 0x8a8(%rip),%xmm1
divpd  %xmm2,%xmm1
movapd %xmm1,0xd0(%rsp)
unpcklpd %xmm1,%xmm1
mulpd  %xmm0,%xmm1
movapd %xmm1,0x140(%rsp)
movapd 0x110(%rsp),%xmm0
unpckhpd %xmm0,%xmm0
mulsd  0x150(%rsp),%xmm0
movapd %xmm0,%xmm1
movsd  0x1f0(%rsp),%xmm0
subsd  %xmm1,%xmm0
movapd 0x80(%rsp),%xmm1
mulsd  0x130(%rsp),%xmm1
addsd  %xmm0,%xmm1
movapd %xmm1,0x80(%rsp)
movsd  0x70(%rsp),%xmm0
call   1080 <cos@plt>
mulsd  0xc0(%rsp),%xmm0
movsd  %xmm0,0xc0(%rsp)
movsd  0x78(%rsp),%xmm0
call   1080 <cos@plt>
mulsd  0xc0(%rsp),%xmm0
addsd  0x80(%rsp),%xmm0
addsd  0x82a(%rip),%xmm0
movapd %xmm0,%xmm5
movapd 0x120(%rsp),%xmm0
movapd 0x1b0(%rsp),%xmm12
mulsd  %xmm12,%xmm0
movsd  0x190(%rsp),%xmm11
movapd %xmm11,%xmm1
movsd  0x160(%rsp),%xmm13
mulsd  %xmm13,%xmm1
addsd  %xmm0,%xmm1
movapd %xmm11,%xmm2
mulsd  %xmm12,%xmm2
movapd 0x90(%rsp),%xmm9
mulsd  %xmm9,%xmm2
movapd 0xe0(%rsp),%xmm0
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
movapd %xmm11,%xmm1
movsd  0x1d0(%rsp),%xmm15
subsd  %xmm15,%xmm1
movapd %xmm1,%xmm10
mulsd  %xmm11,%xmm1
mulsd  %xmm0,%xmm1
movapd 0xf0(%rsp),%xmm6
mulsd  %xmm6,%xmm1
subsd  %xmm1,%xmm2
movapd %xmm15,%xmm1
movsd  0x1a0(%rsp),%xmm7
subsd  %xmm7,%xmm1
movapd %xmm1,%xmm3
mulsd  %xmm12,%xmm3
mulsd  %xmm9,%xmm3
mulsd  %xmm0,%xmm3
addsd  %xmm2,%xmm3
movapd %xmm0,%xmm2
movapd 0xb0(%rsp),%xmm14
mulsd  %xmm14,%xmm2
mulsd  %xmm6,%xmm2
movapd %xmm6,%xmm0
subsd  %xmm2,%xmm3
unpcklpd %xmm3,%xmm5
movapd %xmm5,%xmm8
movsd  0x72f(%rip),%xmm6
divsd  %xmm15,%xmm6
movapd %xmm7,%xmm3
movapd %xmm7,%xmm5
subsd  %xmm11,%xmm3
movapd %xmm0,%xmm4
mulsd  %xmm0,%xmm4
movapd %xmm9,%xmm2
mulsd  %xmm9,%xmm2
subsd  %xmm4,%xmm2
mulsd  %xmm12,%xmm13
movapd 0x120(%rsp),%xmm7
mulsd  %xmm5,%xmm7
addsd  %xmm13,%xmm7
mulsd  %xmm5,%xmm1
mulsd  %xmm12,%xmm5
movapd 0xe0(%rsp),%xmm4
mulsd  %xmm4,%xmm5
mulsd  %xmm0,%xmm5
subsd  %xmm5,%xmm7
mulsd  %xmm9,%xmm1
mulsd  %xmm4,%xmm1
subsd  %xmm1,%xmm7
movapd 0x100(%rsp),%xmm4
unpcklpd %xmm7,%xmm4
movapd 0x670(%rip),%xmm1
xorpd  %xmm1,%xmm10
xorpd  %xmm1,%xmm3
movapd %xmm1,%xmm5
mulsd  %xmm12,%xmm10
unpcklpd %xmm10,%xmm3
mulpd  %xmm9,%xmm3
unpcklpd %xmm0,%xmm0
mulpd  %xmm3,%xmm0
addpd  %xmm4,%xmm0
movapd %xmm12,%xmm1
xorpd  %xmm5,%xmm1
mulsd  %xmm9,%xmm14
unpcklpd %xmm14,%xmm1
shufpd $0x2,%xmm9,%xmm2
mulpd  %xmm1,%xmm2
addpd  %xmm0,%xmm2
movapd 0xd0(%rsp),%xmm0
mulpd  %xmm0,%xmm8
movapd %xmm8,0x1b0(%rsp)
shufpd $0x2,%xmm0,%xmm6
mulpd  %xmm2,%xmm6
movapd %xmm6,0x1a0(%rsp)
movsd  0x70(%rsp),%xmm0
call   1060 <tan@plt>
mulsd  0xe0(%rsp),%xmm0
movsd  %xmm0,0x80(%rsp)
movsd  0x78(%rsp),%xmm0
call   1050 <sin@plt>
mulsd  0x80(%rsp),%xmm0
addsd  0x90(%rsp),%xmm0
movapd %xmm0,0xd0(%rsp)
movsd  0x70(%rsp),%xmm0
call   1060 <tan@plt>
mulsd  0xf0(%rsp),%xmm0
movapd %xmm0,0xc0(%rsp)
movsd  0x78(%rsp),%xmm0
call   1080 <cos@plt>
movaps %xmm0,0x80(%rsp)
movsd  0x78(%rsp),%xmm0
call   1080 <cos@plt>
movaps %xmm0,0xb0(%rsp)
movsd  0x78(%rsp),%xmm0
call   1050 <sin@plt>
mulsd  0x1c0(%rsp),%xmm0
movapd 0xd0(%rsp),%xmm1
unpcklpd %xmm0,%xmm1
movapd 0xc0(%rsp),%xmm2
shufpd $0x2,0x90(%rsp),%xmm2
movapd 0x80(%rsp),%xmm0
unpcklpd 0xb0(%rsp),%xmm0
mulpd  %xmm2,%xmm0
addpd  %xmm1,%xmm0
movapd %xmm0,0x80(%rsp)
movsd  0x78(%rsp),%xmm0
call   1080 <cos@plt>
mulsd  0xf0(%rsp),%xmm0
movsd  %xmm0,0x90(%rsp)
movsd  0x70(%rsp),%xmm0
call   1080 <cos@plt>
movsd  0x90(%rsp),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,0x90(%rsp)
movsd  0x78(%rsp),%xmm0
call   1050 <sin@plt>
mulsd  0xe0(%rsp),%xmm0
movsd  %xmm0,0xf0(%rsp)
movsd  0x70(%rsp),%xmm0
call   1080 <cos@plt>
movsd  0xf0(%rsp),%xmm1
divsd  %xmm0,%xmm1
addsd  0x90(%rsp),%xmm1
movsd  %xmm1,0xf0(%rsp)
movsd  0xa0(%rsp),%xmm0
call   1080 <cos@plt>
movaps %xmm0,0xb0(%rsp)
movsd  0x70(%rsp),%xmm0
call   1080 <cos@plt>
movaps %xmm0,0x90(%rsp)
movsd  0xa0(%rsp),%xmm0
call   1080 <cos@plt>
movaps %xmm0,0xc0(%rsp)
movsd  0x70(%rsp),%xmm0
call   1050 <sin@plt>
movaps %xmm0,0x170(%rsp)
movsd  0x78(%rsp),%xmm0
call   1050 <sin@plt>
movaps %xmm0,0x1c0(%rsp)
movsd  0xa0(%rsp),%xmm0
call   1050 <sin@plt>
movaps %xmm0,0xd0(%rsp)
movsd  0x78(%rsp),%xmm0
call   1080 <cos@plt>
movaps %xmm0,0x180(%rsp)
movaps 0xd0(%rsp),%xmm0
xorps  0x3fe(%rip),%xmm0
movaps %xmm0,0xd0(%rsp)
movsd  0xa0(%rsp),%xmm0
call   1080 <cos@plt>
movaps %xmm0,0xe0(%rsp)
movsd  0x70(%rsp),%xmm0
call   1050 <sin@plt>
movaps %xmm0,0x1d0(%rsp)
movsd  0x78(%rsp),%xmm0
call   1080 <cos@plt>
movaps %xmm0,0x190(%rsp)
movsd  0xa0(%rsp),%xmm0
call   1050 <sin@plt>
movaps %xmm0,0x120(%rsp)
movsd  0x78(%rsp),%xmm0
call   1050 <sin@plt>
movaps %xmm0,0x110(%rsp)
movsd  0xa0(%rsp),%xmm0
call   1050 <sin@plt>
movapd 0x130(%rsp),%xmm1
unpcklpd %xmm1,%xmm1
movapd 0xb0(%rsp),%xmm2
unpcklpd %xmm0,%xmm2
mulpd  %xmm1,%xmm2
movapd %xmm2,0xb0(%rsp)
movsd  0x70(%rsp),%xmm0
call   1080 <cos@plt>
movaps %xmm0,0x100(%rsp)
movsd  0xa0(%rsp),%xmm0
call   1050 <sin@plt>
movaps %xmm0,0x160(%rsp)
movsd  0x70(%rsp),%xmm0
call   1050 <sin@plt>
movapd 0x170(%rsp),%xmm2
unpcklpd 0x160(%rsp),%xmm2
movapd 0xc0(%rsp),%xmm1
unpcklpd %xmm0,%xmm1
mulpd  %xmm2,%xmm1
movapd %xmm1,0xc0(%rsp)
movsd  0x78(%rsp),%xmm0
call   1050 <sin@plt>
movaps %xmm0,0x170(%rsp)
movsd  0xa0(%rsp),%xmm0
call   1080 <cos@plt>
movaps %xmm0,0x160(%rsp)
movsd  0x78(%rsp),%xmm0
call   1080 <cos@plt>
movapd 0x180(%rsp),%xmm2
unpcklpd 0x160(%rsp),%xmm2
movapd 0xd0(%rsp),%xmm1
unpcklpd %xmm0,%xmm1
mulpd  %xmm2,%xmm1
movapd 0x1c0(%rsp),%xmm0
unpcklpd 0x170(%rsp),%xmm0
mulpd  0xc0(%rsp),%xmm0
addpd  %xmm1,%xmm0
movapd %xmm0,%xmm1
movapd 0x150(%rsp),%xmm0
unpcklpd %xmm0,%xmm0
mulpd  %xmm1,%xmm0
movapd 0x90(%rsp),%xmm1
unpcklpd 0x100(%rsp),%xmm1
mulpd  0xb0(%rsp),%xmm1
addpd  %xmm0,%xmm1
movapd %xmm1,0x90(%rsp)
movsd  0xa0(%rsp),%xmm0
call   1050 <sin@plt>
movaps %xmm0,0xd0(%rsp)
movsd  0x70(%rsp),%xmm0
call   1050 <sin@plt>
movapd 0x1d0(%rsp),%xmm2
unpcklpd 0xd0(%rsp),%xmm2
movapd 0xe0(%rsp),%xmm1
unpcklpd %xmm0,%xmm1
mulpd  %xmm2,%xmm1
movapd %xmm1,0xe0(%rsp)
movsd  0x78(%rsp),%xmm0
call   1080 <cos@plt>
movaps %xmm0,0xd0(%rsp)
movsd  0xa0(%rsp),%xmm0
call   1080 <cos@plt>
movaps %xmm0,0xa0(%rsp)
movsd  0x78(%rsp),%xmm0
call   1050 <sin@plt>
movapd 0x120(%rsp),%xmm2
unpcklpd 0xa0(%rsp),%xmm2
movapd 0x110(%rsp),%xmm1
unpcklpd %xmm0,%xmm1
mulpd  %xmm2,%xmm1
movapd 0x190(%rsp),%xmm0
unpcklpd 0xd0(%rsp),%xmm0
mulpd  0xe0(%rsp),%xmm0
addpd  %xmm1,%xmm0
movapd 0x1e0(%rsp),%xmm1
mulpd  %xmm0,%xmm1
addpd  0x90(%rsp),%xmm1
movapd %xmm1,0x90(%rsp)
movsd  0x70(%rsp),%xmm0
call   1050 <sin@plt>
movsd  %xmm0,0xa0(%rsp)
movsd  0x70(%rsp),%xmm0
call   1080 <cos@plt>
movsd  %xmm0,0xe0(%rsp)
movsd  0x78(%rsp),%xmm0
call   1050 <sin@plt>
movsd  0xe0(%rsp),%xmm1
mulsd  0x150(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movsd  0xa0(%rsp),%xmm0
mulsd  0x130(%rsp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0xa0(%rsp)
movsd  0x70(%rsp),%xmm0
call   1080 <cos@plt>
movsd  %xmm0,0x70(%rsp)
movsd  0x78(%rsp),%xmm0
call   1080 <cos@plt>
movsd  0x70(%rsp),%xmm1
mulsd  0x1e0(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movapd %xmm1,%xmm0
movsd  0xa0(%rsp),%xmm1
subsd  %xmm0,%xmm1
movaps 0x140(%rsp),%xmm0
movups %xmm0,(%r14)
movaps 0x1b0(%rsp),%xmm0
movups %xmm0,0x10(%r14)
movaps 0x1a0(%rsp),%xmm0
movups %xmm0,0x20(%r14)
movaps 0x80(%rsp),%xmm0
movups %xmm0,0x30(%r14)
movsd  0xf0(%rsp),%xmm0
movsd  %xmm0,0x40(%r14)
movaps 0x90(%rsp),%xmm0
movups %xmm0,0x48(%r14)
movsd  %xmm1,0x58(%r14)
add    $0x248,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @mathModel(double* %0, double* %1, double %2, double %3, double %4, double %5, [126 x double]* %6, [126 x double]* %7, [126 x double]* %8, [126 x double]* %9, [126 x double]* %10, [126 x double]* %11, [126 x double]* %12, [126 x double]* %13, double %14, double %15, double %16, double %17, double %18, double %19, double %20, double %21) {
%23 = alloca double*
%24 = alloca double*
%25 = alloca double
%26 = alloca double
%27 = alloca double
%28 = alloca double
%29 = alloca [126 x double]*
%30 = alloca [126 x double]*
%31 = alloca [126 x double]*
%32 = alloca [126 x double]*
%33 = alloca [126 x double]*
%34 = alloca [126 x double]*
%35 = alloca [126 x double]*
%36 = alloca [126 x double]*
%37 = alloca double
%38 = alloca double
%39 = alloca double
%40 = alloca double
%41 = alloca double
%42 = alloca double
%43 = alloca double
%44 = alloca double
%45 = alloca i32
%46 = alloca double
%47 = alloca double
%48 = alloca double
%49 = alloca double
%50 = alloca double
%51 = alloca double
%52 = alloca double
%53 = alloca double
%54 = alloca double
%55 = alloca double
%56 = alloca double
%57 = alloca double
%58 = alloca double
%59 = alloca double
%60 = alloca double
%61 = alloca double
%62 = alloca double
%63 = alloca double
%64 = alloca [1 x double]
%65 = alloca double
%66 = alloca double
%67 = alloca double
%68 = alloca double
%69 = alloca double
%70 = alloca double
%71 = alloca double
%72 = alloca double
%73 = alloca double
%74 = alloca double
%75 = alloca double
%76 = alloca double
%77 = alloca double
%78 = alloca double
%79 = alloca double
%80 = alloca double
%81 = alloca double
%82 = alloca double
%83 = alloca double
%84 = alloca double
%85 = alloca double
%86 = alloca double
%87 = alloca double
%88 = alloca double
%89 = alloca double
%90 = alloca double
%91 = alloca double
store double* %0, double** %23
store double* %1, double** %24
store double %2, double* %25
store double %3, double* %26
store double %4, double* %27
store double %5, double* %28
store [126 x double]* %6, [126 x double]** %29
store [126 x double]* %7, [126 x double]** %30
store [126 x double]* %8, [126 x double]** %31
store [126 x double]* %9, [126 x double]** %32
store [126 x double]* %10, [126 x double]** %33
store [126 x double]* %11, [126 x double]** %34
store [126 x double]* %12, [126 x double]** %35
store [126 x double]* %13, [126 x double]** %36
store double %14, double* %37
store double %15, double* %38
store double %16, double* %39
store double %17, double* %40
store double %18, double* %41
store double %19, double* %42
store double %20, double* %43
store double %21, double* %44
%92 = load double*, double** %24
%93 = getelementptr inbounds double, double* %92, i64 0
%94 = load double, double* %93
store double %94, double* %46
%95 = load double*, double** %24
%96 = getelementptr inbounds double, double* %95, i64 1
%97 = load double, double* %96
store double %97, double* %47
%98 = load double*, double** %24
%99 = getelementptr inbounds double, double* %98, i64 2
%100 = load double, double* %99
store double %100, double* %48
%101 = load double*, double** %24
%102 = getelementptr inbounds double, double* %101, i64 3
%103 = load double, double* %102
store double %103, double* %49
%104 = load double*, double** %24
%105 = getelementptr inbounds double, double* %104, i64 4
%106 = load double, double* %105
store double %106, double* %50
%107 = load double*, double** %24
%108 = getelementptr inbounds double, double* %107, i64 5
%109 = load double, double* %108
store double %109, double* %51
%110 = load double*, double** %24
%111 = getelementptr inbounds double, double* %110, i64 6
%112 = load double, double* %111
store double %112, double* %52
%113 = load double*, double** %24
%114 = getelementptr inbounds double, double* %113, i64 7
%115 = load double, double* %114
store double %115, double* %53
%116 = load double*, double** %24
%117 = getelementptr inbounds double, double* %116, i64 8
%118 = load double, double* %117
store double %118, double* %54
%119 = load double*, double** %24
%120 = getelementptr inbounds double, double* %119, i64 9
%121 = load double, double* %120
store double %121, double* %55
%122 = load double*, double** %24
%123 = getelementptr inbounds double, double* %122, i64 10
%124 = load double, double* %123
store double %124, double* %56
%125 = load double*, double** %24
%126 = getelementptr inbounds double, double* %125, i64 11
%127 = load double, double* %126
store double %127, double* %57
%128 = load double*, double** %24
%129 = getelementptr inbounds double, double* %128, i64 11
%130 = load double, double* %129
%131 = getelementptr inbounds [1 x double], [1 x double]* %64, i64 0, i64 0
%132 = call i32 @atmoDensity(double %130, double* %131)
%133 = getelementptr inbounds [1 x double], [1 x double]* %64, i64 0, i64 0
%134 = load double, double* %133
store double %134, double* %65
%135 = load double, double* %46
%136 = load double, double* %46
%137 = load double, double* %47
%138 = load double, double* %47
%139 = fmul double %137, %138
%140 = call double @llvm.fmuladd.f64(double %135, double %136, double %139)
%141 = load double, double* %48
%142 = load double, double* %48
%143 = call double @llvm.fmuladd.f64(double %141, double %142, double %140)
%144 = call double @sqrt(double %143)
store double %144, double* %66
%145 = load double, double* %48
%146 = load double, double* %46
%147 = call double @atan2(double %145, double %146)
store double %147, double* %67
%148 = load double, double* %47
%149 = load double, double* %46
%150 = call double @atan2(double %148, double %149)
store double %150, double* %68
%151 = load double, double* %50
%152 = load double, double* %49
%153 = load double, double* %67
%154 = call double @cos(double %153)
%155 = fmul double %152, %154
%156 = load double, double* %68
%157 = call double @tan(double %156)
%158 = fneg double %155
%159 = call double @llvm.fmuladd.f64(double %158, double %157, double %151)
%160 = load double, double* %51
%161 = load double, double* %67
%162 = call double @sin(double %161)
%163 = fmul double %160, %162
%164 = load double, double* %68
%165 = call double @tan(double %164)
%166 = fneg double %163
%167 = call double @llvm.fmuladd.f64(double %166, double %165, double %159)
store double %167, double* %69
%168 = load double, double* %49
%169 = load double, double* %67
%170 = call double @sin(double %169)
%171 = load double, double* %51
%172 = load double, double* %67
%173 = call double @cos(double %172)
%174 = fmul double %171, %173
%175 = fneg double %174
%176 = call double @llvm.fmuladd.f64(double %168, double %170, double %175)
store double %176, double* %70
%177 = load double, double* %44
store double %177, double* %77
store double 0.000000e+00, double* %78
store double 0.000000e+00, double* %79
%178 = load [126 x double]*, [126 x double]** %29
%179 = bitcast [126 x double]* %178 to double**
%180 = load [126 x double]*, [126 x double]** %30
%181 = bitcast [126 x double]* %180 to double**
%182 = load [126 x double]*, [126 x double]** %31
%183 = bitcast [126 x double]* %182 to double**
%184 = load [126 x double]*, [126 x double]** %32
%185 = bitcast [126 x double]* %184 to double**
%186 = load [126 x double]*, [126 x double]** %33
%187 = bitcast [126 x double]* %186 to double**
%188 = load [126 x double]*, [126 x double]** %34
%189 = bitcast [126 x double]* %188 to double**
%190 = load [126 x double]*, [126 x double]** %35
%191 = bitcast [126 x double]* %190 to double**
%192 = load [126 x double]*, [126 x double]** %36
%193 = bitcast [126 x double]* %192 to double**
%194 = load double, double* %67
%195 = load double, double* %68
%196 = load double, double* %69
%197 = load double, double* %70
%198 = load double, double* %49
%199 = load double, double* %50
%200 = load double, double* %51
%201 = load double, double* %66
%202 = load double, double* %41
%203 = load double, double* %42
%204 = load double, double* %43
%205 = load double, double* %27
%206 = load double, double* %28
%207 = call i32 @interp(double* %58, double* %59, double* %60, double* %61, double* %62, double* %63, double** %179, double** %181, double** %183, double** %185, double** %187, double** %189, double** %191, double** %193, double %194, double %195, double %196, double %197, double %198, double %199, double %200, double %201, double %202, double %203, double %204, double %205, double %206)
%208 = load double, double* %58
%209 = fmul double %208, 5.000000e-01
%210 = load double, double* %65
%211 = fmul double %209, %210
%212 = load double, double* %66
%213 = fmul double %211, %212
%214 = load double, double* %66
%215 = fmul double %213, %214
%216 = load double, double* %26
%217 = fmul double %215, %216
store double %217, double* %71
%218 = load double, double* %59
%219 = fmul double %218, 5.000000e-01
%220 = load double, double* %65
%221 = fmul double %219, %220
%222 = load double, double* %66
%223 = fmul double %221, %222
%224 = load double, double* %66
%225 = fmul double %223, %224
%226 = load double, double* %26
%227 = fmul double %225, %226
store double %227, double* %72
%228 = load double, double* %60
%229 = fmul double %228, 5.000000e-01
%230 = load double, double* %65
%231 = fmul double %229, %230
%232 = load double, double* %66
%233 = fmul double %231, %232
%234 = load double, double* %66
%235 = fmul double %233, %234
%236 = load double, double* %26
%237 = fmul double %235, %236
store double %237, double* %73
%238 = load double, double* %61
%239 = fmul double %238, 5.000000e-01
%240 = load double, double* %65
%241 = fmul double %239, %240
%242 = load double, double* %27
%243 = fmul double %241, %242
%244 = load double, double* %66
%245 = fmul double %243, %244
%246 = load double, double* %66
%247 = fmul double %245, %246
%248 = load double, double* %26
%249 = fmul double %247, %248
store double %249, double* %74
%250 = load double, double* %62
%251 = fmul double %250, 5.000000e-01
%252 = load double, double* %65
%253 = fmul double %251, %252
%254 = load double, double* %28
%255 = fmul double %253, %254
%256 = load double, double* %66
%257 = fmul double %255, %256
%258 = load double, double* %66
%259 = fmul double %257, %258
%260 = load double, double* %26
%261 = fmul double %259, %260
store double %261, double* %75
%262 = load double, double* %63
%263 = fmul double %262, 5.000000e-01
%264 = load double, double* %65
%265 = fmul double %263, %264
%266 = load double, double* %27
%267 = fmul double %265, %266
%268 = load double, double* %66
%269 = fmul double %267, %268
%270 = load double, double* %66
%271 = fmul double %269, %270
%272 = load double, double* %26
%273 = fmul double %271, %272
store double %273, double* %76
%274 = load double, double* %25
%275 = fdiv double 1.000000e+00, %274
%276 = load double, double* %71
%277 = load double, double* %25
%278 = load double, double* %50
%279 = fmul double %277, %278
%280 = load double, double* %48
%281 = fneg double %279
%282 = call double @llvm.fmuladd.f64(double %281, double %280, double %276)
%283 = load double, double* %25
%284 = load double, double* %51
%285 = fmul double %283, %284
%286 = load double, double* %47
%287 = call double @llvm.fmuladd.f64(double %285, double %286, double %282)
%288 = load double, double* %25
%289 = fmul double %288, 9.810000e+00
%290 = load double, double* %53
%291 = call double @sin(double %290)
%292 = fneg double %289
%293 = call double @llvm.fmuladd.f64(double %292, double %291, double %287)
%294 = load double, double* %77
%295 = fadd double %293, %294
%296 = fmul double %275, %295
store double %296, double* %80
%297 = load double, double* %25
%298 = fdiv double 1.000000e+00, %297
%299 = load double, double* %72
%300 = load double, double* %25
%301 = load double, double* %51
%302 = fmul double %300, %301
%303 = load double, double* %46
%304 = fneg double %302
%305 = call double @llvm.fmuladd.f64(double %304, double %303, double %299)
%306 = load double, double* %25
%307 = load double, double* %49
%308 = fmul double %306, %307
%309 = load double, double* %48
%310 = call double @llvm.fmuladd.f64(double %308, double %309, double %305)
%311 = load double, double* %25
%312 = fmul double %311, 9.810000e+00
%313 = load double, double* %53
%314 = call double @cos(double %313)
%315 = fmul double %312, %314
%316 = load double, double* %52
%317 = call double @sin(double %316)
%318 = call double @llvm.fmuladd.f64(double %315, double %317, double %310)
%319 = load double, double* %78
%320 = fadd double %318, %319
%321 = fmul double %298, %320
store double %321, double* %81
%322 = load double, double* %25
%323 = fdiv double 1.000000e+00, %322
%324 = load double, double* %73
%325 = load double, double* %25
%326 = load double, double* %49
%327 = fmul double %325, %326
%328 = load double, double* %47
%329 = fneg double %327
%330 = call double @llvm.fmuladd.f64(double %329, double %328, double %324)
%331 = load double, double* %25
%332 = load double, double* %50
%333 = fmul double %331, %332
%334 = load double, double* %46
%335 = call double @llvm.fmuladd.f64(double %333, double %334, double %330)
%336 = load double, double* %25
%337 = fmul double %336, 9.810000e+00
%338 = load double, double* %53
%339 = call double @cos(double %338)
%340 = fmul double %337, %339
%341 = load double, double* %52
%342 = call double @cos(double %341)
%343 = call double @llvm.fmuladd.f64(double %340, double %342, double %335)
%344 = load double, double* %79
%345 = fadd double %343, %344
%346 = fmul double %323, %345
store double %346, double* %82
%347 = load double, double* %37
%348 = load double, double* %39
%349 = load double, double* %40
%350 = load double, double* %40
%351 = fmul double %349, %350
%352 = fneg double %351
%353 = call double @llvm.fmuladd.f64(double %347, double %348, double %352)
%354 = fdiv double 1.000000e+00, %353
%355 = load double, double* %39
%356 = load double, double* %74
%357 = load double, double* %40
%358 = load double, double* %76
%359 = fmul double %357, %358
%360 = call double @llvm.fmuladd.f64(double %355, double %356, double %359)
%361 = load double, double* %39
%362 = load double, double* %40
%363 = fmul double %361, %362
%364 = load double, double* %49
%365 = fmul double %363, %364
%366 = load double, double* %50
%367 = call double @llvm.fmuladd.f64(double %365, double %366, double %360)
%368 = load double, double* %39
%369 = load double, double* %39
%370 = load double, double* %38
%371 = fsub double %369, %370
%372 = fmul double %368, %371
%373 = load double, double* %50
%374 = fmul double %372, %373
%375 = load double, double* %51
%376 = fneg double %374
%377 = call double @llvm.fmuladd.f64(double %376, double %375, double %367)
%378 = load double, double* %40
%379 = load double, double* %38
%380 = load double, double* %37
%381 = fsub double %379, %380
%382 = fmul double %378, %381
%383 = load double, double* %49
%384 = fmul double %382, %383
%385 = load double, double* %50
%386 = call double @llvm.fmuladd.f64(double %384, double %385, double %377)
%387 = load double, double* %40
%388 = load double, double* %40
%389 = fmul double %387, %388
%390 = load double, double* %50
%391 = fmul double %389, %390
%392 = load double, double* %51
%393 = fneg double %391
%394 = call double @llvm.fmuladd.f64(double %393, double %392, double %386)
%395 = fmul double %354, %394
store double %395, double* %83
%396 = load double, double* %38
%397 = fdiv double 1.000000e+00, %396
%398 = load double, double* %75
%399 = load double, double* %37
%400 = load double, double* %39
%401 = fsub double %399, %400
%402 = load double, double* %49
%403 = fmul double %401, %402
%404 = load double, double* %51
%405 = fneg double %403
%406 = call double @llvm.fmuladd.f64(double %405, double %404, double %398)
%407 = load double, double* %40
%408 = load double, double* %49
%409 = load double, double* %49
%410 = load double, double* %51
%411 = load double, double* %51
%412 = fmul double %410, %411
%413 = fneg double %412
%414 = call double @llvm.fmuladd.f64(double %408, double %409, double %413)
%415 = fneg double %407
%416 = call double @llvm.fmuladd.f64(double %415, double %414, double %406)
%417 = fmul double %397, %416
store double %417, double* %84
%418 = load double, double* %37
%419 = load double, double* %39
%420 = load double, double* %40
%421 = load double, double* %40
%422 = fmul double %420, %421
%423 = fneg double %422
%424 = call double @llvm.fmuladd.f64(double %418, double %419, double %423)
%425 = fdiv double 1.000000e+00, %424
%426 = load double, double* %37
%427 = load double, double* %76
%428 = load double, double* %40
%429 = load double, double* %74
%430 = fmul double %428, %429
%431 = call double @llvm.fmuladd.f64(double %426, double %427, double %430)
%432 = load double, double* %37
%433 = load double, double* %40
%434 = fmul double %432, %433
%435 = load double, double* %50
%436 = fmul double %434, %435
%437 = load double, double* %51
%438 = fneg double %436
%439 = call double @llvm.fmuladd.f64(double %438, double %437, double %431)
%440 = load double, double* %37
%441 = load double, double* %38
%442 = load double, double* %37
%443 = fsub double %441, %442
%444 = fmul double %440, %443
%445 = load double, double* %49
%446 = fmul double %444, %445
%447 = load double, double* %50
%448 = fneg double %446
%449 = call double @llvm.fmuladd.f64(double %448, double %447, double %439)
%450 = load double, double* %40
%451 = load double, double* %39
%452 = load double, double* %38
%453 = fsub double %451, %452
%454 = fmul double %450, %453
%455 = load double, double* %50
%456 = fmul double %454, %455
%457 = load double, double* %51
%458 = fneg double %456
%459 = call double @llvm.fmuladd.f64(double %458, double %457, double %449)
%460 = load double, double* %40
%461 = load double, double* %40
%462 = fmul double %460, %461
%463 = load double, double* %49
%464 = fmul double %462, %463
%465 = load double, double* %50
%466 = call double @llvm.fmuladd.f64(double %464, double %465, double %459)
%467 = fmul double %425, %466
store double %467, double* %85
%468 = load double, double* %49
%469 = load double, double* %50
%470 = load double, double* %53
%471 = call double @tan(double %470)
%472 = fmul double %469, %471
%473 = load double, double* %52
%474 = call double @sin(double %473)
%475 = call double @llvm.fmuladd.f64(double %472, double %474, double %468)
%476 = load double, double* %51
%477 = load double, double* %53
%478 = call double @tan(double %477)
%479 = fmul double %476, %478
%480 = load double, double* %52
%481 = call double @cos(double %480)
%482 = call double @llvm.fmuladd.f64(double %479, double %481, double %475)
store double %482, double* %86
%483 = load double, double* %50
%484 = load double, double* %52
%485 = call double @cos(double %484)
%486 = load double, double* %51
%487 = load double, double* %52
%488 = call double @sin(double %487)
%489 = fmul double %486, %488
%490 = fneg double %489
%491 = call double @llvm.fmuladd.f64(double %483, double %485, double %490)
store double %491, double* %87
%492 = load double, double* %51
%493 = load double, double* %52
%494 = call double @cos(double %493)
%495 = fmul double %492, %494
%496 = load double, double* %53
%497 = call double @cos(double %496)
%498 = fdiv double %495, %497
%499 = load double, double* %50
%500 = load double, double* %52
%501 = call double @sin(double %500)
%502 = fmul double %499, %501
%503 = load double, double* %53
%504 = call double @cos(double %503)
%505 = fdiv double %502, %504
%506 = fadd double %498, %505
store double %506, double* %88
%507 = load double, double* %46
%508 = load double, double* %54
%509 = call double @cos(double %508)
%510 = fmul double %507, %509
%511 = load double, double* %53
%512 = call double @cos(double %511)
%513 = load double, double* %47
%514 = load double, double* %54
%515 = call double @cos(double %514)
%516 = load double, double* %53
%517 = call double @sin(double %516)
%518 = fmul double %515, %517
%519 = load double, double* %52
%520 = call double @sin(double %519)
%521 = load double, double* %54
%522 = call double @sin(double %521)
%523 = load double, double* %52
%524 = call double @cos(double %523)
%525 = fmul double %522, %524
%526 = fneg double %525
%527 = call double @llvm.fmuladd.f64(double %518, double %520, double %526)
%528 = fmul double %513, %527
%529 = call double @llvm.fmuladd.f64(double %510, double %512, double %528)
%530 = load double, double* %48
%531 = load double, double* %54
%532 = call double @cos(double %531)
%533 = load double, double* %53
%534 = call double @sin(double %533)
%535 = fmul double %532, %534
%536 = load double, double* %52
%537 = call double @cos(double %536)
%538 = load double, double* %54
%539 = call double @sin(double %538)
%540 = load double, double* %52
%541 = call double @sin(double %540)
%542 = fmul double %539, %541
%543 = call double @llvm.fmuladd.f64(double %535, double %537, double %542)
%544 = call double @llvm.fmuladd.f64(double %530, double %543, double %529)
store double %544, double* %89
%545 = load double, double* %46
%546 = load double, double* %54
%547 = call double @sin(double %546)
%548 = fmul double %545, %547
%549 = load double, double* %53
%550 = call double @cos(double %549)
%551 = load double, double* %47
%552 = load double, double* %54
%553 = call double @sin(double %552)
%554 = load double, double* %53
%555 = call double @sin(double %554)
%556 = fmul double %553, %555
%557 = load double, double* %52
%558 = call double @sin(double %557)
%559 = load double, double* %54
%560 = call double @cos(double %559)
%561 = load double, double* %52
%562 = call double @cos(double %561)
%563 = fmul double %560, %562
%564 = call double @llvm.fmuladd.f64(double %556, double %558, double %563)
%565 = fmul double %551, %564
%566 = call double @llvm.fmuladd.f64(double %548, double %550, double %565)
%567 = load double, double* %48
%568 = load double, double* %54
%569 = call double @sin(double %568)
%570 = load double, double* %53
%571 = call double @sin(double %570)
%572 = fmul double %569, %571
%573 = load double, double* %52
%574 = call double @cos(double %573)
%575 = load double, double* %54
%576 = call double @cos(double %575)
%577 = load double, double* %52
%578 = call double @sin(double %577)
%579 = fmul double %576, %578
%580 = call double @llvm.fmuladd.f64(double %572, double %574, double %579)
%581 = call double @llvm.fmuladd.f64(double %567, double %580, double %566)
store double %581, double* %90
%582 = load double, double* %46
%583 = load double, double* %53
%584 = call double @sin(double %583)
%585 = load double, double* %47
%586 = load double, double* %53
%587 = call double @cos(double %586)
%588 = fmul double %585, %587
%589 = load double, double* %52
%590 = call double @sin(double %589)
%591 = fmul double %588, %590
%592 = fneg double %591
%593 = call double @llvm.fmuladd.f64(double %582, double %584, double %592)
%594 = load double, double* %48
%595 = load double, double* %53
%596 = call double @cos(double %595)
%597 = fmul double %594, %596
%598 = load double, double* %52
%599 = call double @cos(double %598)
%600 = fneg double %597
%601 = call double @llvm.fmuladd.f64(double %600, double %599, double %593)
store double %601, double* %91
%602 = load double, double* %80
%603 = load double*, double** %23
%604 = getelementptr inbounds double, double* %603, i64 0
store double %602, double* %604
%605 = load double, double* %81
%606 = load double*, double** %23
%607 = getelementptr inbounds double, double* %606, i64 1
store double %605, double* %607
%608 = load double, double* %82
%609 = load double*, double** %23
%610 = getelementptr inbounds double, double* %609, i64 2
store double %608, double* %610
%611 = load double, double* %83
%612 = load double*, double** %23
%613 = getelementptr inbounds double, double* %612, i64 3
store double %611, double* %613
%614 = load double, double* %84
%615 = load double*, double** %23
%616 = getelementptr inbounds double, double* %615, i64 4
store double %614, double* %616
%617 = load double, double* %85
%618 = load double*, double** %23
%619 = getelementptr inbounds double, double* %618, i64 5
store double %617, double* %619
%620 = load double, double* %86
%621 = load double*, double** %23
%622 = getelementptr inbounds double, double* %621, i64 6
store double %620, double* %622
%623 = load double, double* %87
%624 = load double*, double** %23
%625 = getelementptr inbounds double, double* %624, i64 7
store double %623, double* %625
%626 = load double, double* %88
%627 = load double*, double** %23
%628 = getelementptr inbounds double, double* %627, i64 8
store double %626, double* %628
%629 = load double, double* %89
%630 = load double*, double** %23
%631 = getelementptr inbounds double, double* %630, i64 9
store double %629, double* %631
%632 = load double, double* %90
%633 = load double*, double** %23
%634 = getelementptr inbounds double, double* %633, i64 10
store double %632, double* %634
%635 = load double, double* %91
%636 = load double*, double** %23
%637 = getelementptr inbounds double, double* %636, i64 11
store double %635, double* %637
ret void
}

LLVM IR (-O2):
define void @mathModel(double* nocapture writeonly %0, double* nocapture %1, double %2, double %3, double %4, double %5, [126 x double]* %6, [126 x double]* %7, [126 x double]* %8, [126 x double]* %9, [126 x double]* %10, [126 x double]* %11, [126 x double]* %12, [126 x double]* %13, double %14, double %15, double %16, double %17, double %18, double %19, double %20, double %21) {
%23 = alloca double
%24 = alloca double
%25 = alloca double
%26 = alloca double
%27 = alloca double
%28 = alloca double
%29 = alloca [1 x double]
%30 = load double, double* %1
%31 = getelementptr inbounds double, double* %1, i64 1
%32 = bitcast double* %31 to <2 x double>*
%33 = load <2 x double>, <2 x double>* %32
%34 = getelementptr inbounds double, double* %1, i64 3
%35 = bitcast double* %34 to <2 x double>*
%36 = load <2 x double>, <2 x double>* %35
%37 = getelementptr inbounds double, double* %1, i64 5
%38 = load double, double* %37
%39 = getelementptr inbounds double, double* %1, i64 6
%40 = load double, double* %39
%41 = getelementptr inbounds double, double* %1, i64 7
%42 = load double, double* %41
%43 = getelementptr inbounds double, double* %1, i64 8
%44 = load double, double* %43
%45 = getelementptr inbounds double, double* %1, i64 11
%46 = bitcast double* %23 to i8*
%47 = bitcast double* %24 to i8*
%48 = bitcast double* %25 to i8*
%49 = bitcast double* %26 to i8*
%50 = bitcast double* %27 to i8*
%51 = bitcast double* %28 to i8*
%52 = bitcast [1 x double]* %29 to i8*
%53 = load double, double* %45
%54 = getelementptr inbounds [1 x double], [1 x double]* %29, i64 0, i64 0
%55 = call i32 @atmoDensity(double %53, double* %54)
%56 = load double, double* %54
%57 = extractelement <2 x double> %33, i64 0
%58 = fmul <2 x double> %33, %33
%59 = extractelement <2 x double> %58, i64 0
%60 = call double @llvm.fmuladd.f64(double %30, double %30, double %59)
%61 = extractelement <2 x double> %33, i64 1
%62 = call double @llvm.fmuladd.f64(double %61, double %61, double %60)
%63 = call double @sqrt(double %62)
%64 = call double @atan2(double %61, double %30)
%65 = call double @atan2(double %57, double %30)
%66 = call double @cos(double %64)
%67 = call double @tan(double %65)
%68 = extractelement <2 x double> %36, i64 0
%69 = fneg double %68
%70 = fmul double %66, %69
%71 = extractelement <2 x double> %36, i64 1
%72 = call double @llvm.fmuladd.f64(double %70, double %67, double %71)
%73 = call double @sin(double %64)
%74 = call double @tan(double %65)
%75 = fneg double %38
%76 = fmul double %73, %75
%77 = call double @llvm.fmuladd.f64(double %76, double %74, double %72)
%78 = call double @sin(double %64)
%79 = call double @cos(double %64)
%80 = fmul double %79, %75
%81 = call double @llvm.fmuladd.f64(double %68, double %78, double %80)
%82 = bitcast [126 x double]* %6 to double**
%83 = bitcast [126 x double]* %7 to double**
%84 = bitcast [126 x double]* %8 to double**
%85 = bitcast [126 x double]* %9 to double**
%86 = bitcast [126 x double]* %10 to double**
%87 = bitcast [126 x double]* %11 to double**
%88 = bitcast [126 x double]* %12 to double**
%89 = bitcast [126 x double]* %13 to double**
%90 = call i32 @interp(double* %23, double* %24, double* %25, double* %26, double* %27, double* %28, double** %82, double** %83, double** %84, double** %85, double** %86, double** %87, double** %88, double** %89, double %64, double %65, double %77, double %81, double %68, double %71, double %38, double %63, double %18, double %19, double %20, double %4, double %5)
%91 = load double, double* %23
%92 = load double, double* %24
%93 = insertelement <2 x double> poison, double %91, i64 0
%94 = insertelement <2 x double> %93, double %92, i64 1
%95 = fmul <2 x double> %94, <double 5.000000e-01, double 5.000000e-01>
%96 = insertelement <2 x double> poison, double %56, i64 0
%97 = shufflevector <2 x double> %96, <2 x double> poison, <2 x i32> zeroinitializer
%98 = fmul <2 x double> %97, %95
%99 = insertelement <2 x double> poison, double %63, i64 0
%100 = shufflevector <2 x double> %99, <2 x double> poison, <2 x i32> zeroinitializer
%101 = fmul <2 x double> %100, %98
%102 = fmul <2 x double> %100, %101
%103 = insertelement <2 x double> poison, double %3, i64 0
%104 = shufflevector <2 x double> %103, <2 x double> poison, <2 x i32> zeroinitializer
%105 = fmul <2 x double> %102, %104
%106 = load double, double* %25
%107 = fmul double %106, 5.000000e-01
%108 = fmul double %56, %107
%109 = fmul double %63, %108
%110 = fmul double %63, %109
%111 = fmul double %110, %3
%112 = load double, double* %26
%113 = fmul double %112, 5.000000e-01
%114 = fmul double %56, %113
%115 = fmul double %114, %4
%116 = fmul double %63, %115
%117 = fmul double %63, %116
%118 = fmul double %117, %3
%119 = load double, double* %27
%120 = fmul double %119, 5.000000e-01
%121 = fmul double %56, %120
%122 = fmul double %121, %5
%123 = fmul double %63, %122
%124 = fmul double %63, %123
%125 = fmul double %124, %3
%126 = load double, double* %28
%127 = fmul double %126, 5.000000e-01
%128 = fmul double %56, %127
%129 = fmul double %128, %4
%130 = fmul double %63, %129
%131 = fmul double %63, %130
%132 = fmul double %131, %3
%133 = fmul double %71, %2
%134 = fmul double %2, 9.810000e+00
%135 = call double @sin(double %42)
%136 = fneg double %134
%137 = insertelement <2 x double> poison, double %38, i64 0
%138 = shufflevector <2 x double> %137, <2 x double> %36, <2 x i32> <i32 0, i32 2>
%139 = insertelement <2 x double> poison, double %2, i64 0
%140 = shufflevector <2 x double> %139, <2 x double> poison, <2 x i32> zeroinitializer
%141 = fmul <2 x double> %138, %140
%142 = insertelement <2 x double> poison, double %133, i64 0
%143 = shufflevector <2 x double> %142, <2 x double> %141, <2 x i32> <i32 0, i32 2>
%144 = fneg <2 x double> %143
%145 = shufflevector <2 x double> %33, <2 x double> undef, <2 x i32> <i32 1, i32 undef>
%146 = insertelement <2 x double> %145, double %30, i64 1
%147 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %144, <2 x double> %146, <2 x double> %105)
%148 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %141, <2 x double> %33, <2 x double> %147)
%149 = call double @cos(double %42)
%150 = fmul double %134, %149
%151 = call double @sin(double %40)
%152 = insertelement <2 x double> poison, double %136, i64 0
%153 = insertelement <2 x double> %152, double %150, i64 1
%154 = insertelement <2 x double> poison, double %135, i64 0
%155 = insertelement <2 x double> %154, double %151, i64 1
%156 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %153, <2 x double> %155, <2 x double> %148)
%157 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %21, i64 0
%158 = fadd <2 x double> %156, %157
%159 = fmul double %17, %17
%160 = fneg double %159
%161 = call double @llvm.fmuladd.f64(double %14, double %16, double %160)
%162 = insertelement <2 x double> %139, double %161, i64 1
%163 = fdiv <2 x double> <double 1.000000e+00, double 1.000000e+00>, %162
%164 = shufflevector <2 x double> %163, <2 x double> undef, <2 x i32> zeroinitializer
%165 = fmul <2 x double> %164, %158
%166 = extractelement <2 x double> %141, i64 1
%167 = fneg double %166
%168 = call double @llvm.fmuladd.f64(double %167, double %57, double %111)
%169 = call double @llvm.fmuladd.f64(double %133, double %30, double %168)
%170 = call double @cos(double %42)
%171 = fmul double %134, %170
%172 = call double @cos(double %40)
%173 = call double @llvm.fmuladd.f64(double %171, double %172, double %169)
%174 = fadd double %173, 0.000000e+00
%175 = fmul double %132, %17
%176 = call double @llvm.fmuladd.f64(double %16, double %118, double %175)
%177 = fmul double %16, %17
%178 = fmul double %177, %68
%179 = call double @llvm.fmuladd.f64(double %178, double %71, double %176)
%180 = fsub double %16, %15
%181 = fneg double %180
%182 = fmul double %181, %16
%183 = fmul double %182, %71
%184 = call double @llvm.fmuladd.f64(double %183, double %38, double %179)
%185 = fsub double %15, %14
%186 = fmul double %185, %17
%187 = fmul double %186, %68
%188 = call double @llvm.fmuladd.f64(double %187, double %71, double %184)
%189 = fmul double %71, %160
%190 = call double @llvm.fmuladd.f64(double %189, double %38, double %188)
%191 = insertelement <2 x double> poison, double %174, i64 0
%192 = insertelement <2 x double> %191, double %190, i64 1
%193 = fmul <2 x double> %163, %192
%194 = fdiv double 1.000000e+00, %15
%195 = fsub double %14, %16
%196 = fneg double %195
%197 = fmul double %38, %75
%198 = call double @llvm.fmuladd.f64(double %68, double %68, double %197)
%199 = fneg double %17
%200 = fmul double %118, %17
%201 = call double @llvm.fmuladd.f64(double %14, double %132, double %200)
%202 = fneg double %14
%203 = fmul double %202, %17
%204 = fmul double %203, %71
%205 = call double @llvm.fmuladd.f64(double %204, double %38, double %201)
%206 = fneg double %185
%207 = fmul double %206, %14
%208 = fmul double %207, %68
%209 = call double @llvm.fmuladd.f64(double %208, double %71, double %205)
%210 = fmul double %181, %17
%211 = insertelement <2 x double> poison, double %196, i64 0
%212 = insertelement <2 x double> %211, double %210, i64 1
%213 = fmul <2 x double> %36, %212
%214 = shufflevector <2 x double> %137, <2 x double> poison, <2 x i32> zeroinitializer
%215 = insertelement <2 x double> poison, double %125, i64 0
%216 = insertelement <2 x double> %215, double %209, i64 1
%217 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %213, <2 x double> %214, <2 x double> %216)
%218 = fmul double %159, %68
%219 = insertelement <2 x double> poison, double %199, i64 0
%220 = insertelement <2 x double> %219, double %218, i64 1
%221 = insertelement <2 x double> %36, double %198, i64 0
%222 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %220, <2 x double> %221, <2 x double> %217)
%223 = insertelement <2 x double> %163, double %194, i64 0
%224 = fmul <2 x double> %223, %222
%225 = call double @tan(double %42)
%226 = fmul double %71, %225
%227 = call double @sin(double %40)
%228 = call double @llvm.fmuladd.f64(double %226, double %227, double %68)
%229 = call double @tan(double %42)
%230 = fmul double %38, %229
%231 = call double @cos(double %40)
%232 = call double @cos(double %40)
%233 = call double @sin(double %40)
%234 = fmul double %233, %75
%235 = insertelement <2 x double> %36, double %230, i64 0
%236 = insertelement <2 x double> poison, double %231, i64 0
%237 = insertelement <2 x double> %236, double %232, i64 1
%238 = insertelement <2 x double> poison, double %228, i64 0
%239 = insertelement <2 x double> %238, double %234, i64 1
%240 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %235, <2 x double> %237, <2 x double> %239)
%241 = call double @cos(double %40)
%242 = fmul double %38, %241
%243 = call double @cos(double %42)
%244 = fdiv double %242, %243
%245 = call double @sin(double %40)
%246 = fmul double %71, %245
%247 = call double @cos(double %42)
%248 = fdiv double %246, %247
%249 = fadd double %244, %248
%250 = call double @cos(double %44)
%251 = call double @cos(double %42)
%252 = call double @cos(double %44)
%253 = call double @sin(double %42)
%254 = call double @sin(double %40)
%255 = call double @sin(double %44)
%256 = call double @cos(double %40)
%257 = fneg double %255
%258 = call double @cos(double %44)
%259 = call double @sin(double %42)
%260 = call double @cos(double %40)
%261 = call double @sin(double %44)
%262 = call double @sin(double %40)
%263 = call double @sin(double %44)
%264 = insertelement <2 x double> poison, double %30, i64 0
%265 = shufflevector <2 x double> %264, <2 x double> poison, <2 x i32> zeroinitializer
%266 = insertelement <2 x double> poison, double %250, i64 0
%267 = insertelement <2 x double> %266, double %263, i64 1
%268 = fmul <2 x double> %265, %267
%269 = call double @cos(double %42)
%270 = call double @sin(double %44)
%271 = call double @sin(double %42)
%272 = insertelement <2 x double> poison, double %253, i64 0
%273 = insertelement <2 x double> %272, double %270, i64 1
%274 = insertelement <2 x double> poison, double %252, i64 0
%275 = insertelement <2 x double> %274, double %271, i64 1
%276 = fmul <2 x double> %273, %275
%277 = call double @sin(double %40)
%278 = call double @cos(double %44)
%279 = call double @cos(double %40)
%280 = insertelement <2 x double> poison, double %256, i64 0
%281 = insertelement <2 x double> %280, double %278, i64 1
%282 = insertelement <2 x double> poison, double %257, i64 0
%283 = insertelement <2 x double> %282, double %279, i64 1
%284 = fmul <2 x double> %281, %283
%285 = insertelement <2 x double> poison, double %254, i64 0
%286 = insertelement <2 x double> %285, double %277, i64 1
%287 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %276, <2 x double> %286, <2 x double> %284)
%288 = shufflevector <2 x double> %33, <2 x double> undef, <2 x i32> zeroinitializer
%289 = fmul <2 x double> %288, %287
%290 = insertelement <2 x double> poison, double %251, i64 0
%291 = insertelement <2 x double> %290, double %269, i64 1
%292 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %268, <2 x double> %291, <2 x double> %289)
%293 = call double @sin(double %44)
%294 = call double @sin(double %42)
%295 = insertelement <2 x double> poison, double %259, i64 0
%296 = insertelement <2 x double> %295, double %293, i64 1
%297 = insertelement <2 x double> poison, double %258, i64 0
%298 = insertelement <2 x double> %297, double %294, i64 1
%299 = fmul <2 x double> %296, %298
%300 = call double @cos(double %40)
%301 = call double @cos(double %44)
%302 = call double @sin(double %40)
%303 = insertelement <2 x double> poison, double %261, i64 0
%304 = insertelement <2 x double> %303, double %301, i64 1
%305 = insertelement <2 x double> poison, double %262, i64 0
%306 = insertelement <2 x double> %305, double %302, i64 1
%307 = fmul <2 x double> %304, %306
%308 = insertelement <2 x double> poison, double %260, i64 0
%309 = insertelement <2 x double> %308, double %300, i64 1
%310 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %299, <2 x double> %309, <2 x double> %307)
%311 = shufflevector <2 x double> %33, <2 x double> poison, <2 x i32> <i32 1, i32 1>
%312 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %311, <2 x double> %310, <2 x double> %292)
%313 = call double @sin(double %42)
%314 = call double @cos(double %42)
%315 = call double @sin(double %40)
%316 = fneg double %57
%317 = fmul double %314, %316
%318 = fmul double %317, %315
%319 = call double @llvm.fmuladd.f64(double %30, double %313, double %318)
%320 = call double @cos(double %42)
%321 = call double @cos(double %40)
%322 = fneg double %61
%323 = fmul double %320, %322
%324 = call double @llvm.fmuladd.f64(double %323, double %321, double %319)
%325 = bitcast double* %0 to <2 x double>*
store <2 x double> %165, <2 x double>* %325
%326 = getelementptr inbounds double, double* %0, i64 2
%327 = bitcast double* %326 to <2 x double>*
store <2 x double> %193, <2 x double>* %327
%328 = getelementptr inbounds double, double* %0, i64 4
%329 = bitcast double* %328 to <2 x double>*
store <2 x double> %224, <2 x double>* %329
%330 = getelementptr inbounds double, double* %0, i64 6
%331 = bitcast double* %330 to <2 x double>*
store <2 x double> %240, <2 x double>* %331
%332 = getelementptr inbounds double, double* %0, i64 8
store double %249, double* %332
%333 = getelementptr inbounds double, double* %0, i64 9
%334 = bitcast double* %333 to <2 x double>*
store <2 x double> %312, <2 x double>* %334
%335 = getelementptr inbounds double, double* %0, i64 11
store double %324, double* %335
ret void
}