void ThreephaseNavierStokes_ST_LS_SO_3D_Evaluate(
    const int nPoints, const double boundaryPenaltyCoef,
    const double volumePenaltyCoef, const double eps_rho, const double eps_mu,
    const double sigma, const double rho_0, const double nu_0,
    const double rho_1, const double nu_1, const double rho_s,
    const double nu_s, const double *g, const double *phi, const double *n,
    const double *kappa, const double *phi_s, const double *n_s,
    const double *p, const double *grad_p, const double *u, const double *v,
    const double *w, double *mom_u_acc, double *dmom_u_acc_u, double *mom_v_acc,
    double *dmom_v_acc_v, double *mom_w_acc, double *dmom_w_acc_w,
    double *mass_adv, double *dmass_adv_u, double *dmass_adv_v,
    double *dmass_adv_w, double *mom_u_adv, double *dmom_u_adv_u,
    double *dmom_u_adv_v, double *dmom_u_adv_w, double *mom_v_adv,
    double *dmom_v_adv_u, double *dmom_v_adv_v, double *dmom_v_adv_w,
    double *mom_w_adv, double *dmom_w_adv_u, double *dmom_w_adv_v,
    double *dmom_w_adv_w, double *mom_u_diff_ten, double *mom_v_diff_ten,
    double *mom_w_diff_ten, double *mom_uv_diff_ten, double *mom_uw_diff_ten,
    double *mom_vu_diff_ten, double *mom_vw_diff_ten, double *mom_wu_diff_ten,
    double *mom_wv_diff_ten, double *mom_u_source, double *dmom_u_source_u,
    double *dmom_u_source_v, double *dmom_u_source_w, double *mom_v_source,
    double *dmom_v_source_u, double *dmom_v_source_v, double *dmom_v_source_w,
    double *mom_w_source, double *dmom_w_source_u, double *dmom_w_source_v,
    double *dmom_w_source_w, double *mom_u_ham, double *dmom_u_ham_grad_p,
    double *mom_v_ham, double *dmom_v_ham_grad_p, double *mom_w_ham,
    double *dmom_w_ham_grad_p) {
  int k;
  double rho, nu, mu, H_rho, d_rho, H_mu, d_mu, H_rho_s, d_rho_s, H_mu_s,
      d_mu_s, norm_n, norm_n_s;
  for (k = 0; k < nPoints; k++) {
    H_rho = smoothedHeaviside(eps_rho, phi[k]);
    d_rho = smoothedDirac(eps_rho, phi[k]);
    H_mu = smoothedHeaviside(eps_mu, phi[k]);
    d_mu = smoothedDirac(eps_mu, phi[k]);
    rho = rho_0 * (1.0 - H_rho) + rho_1 * H_rho;
    nu = nu_0 * (1.0 - H_mu) + nu_1 * H_mu;
    mu = rho_0 * nu_0 * (1.0 - H_mu) + rho_1 * nu_1 * H_mu;
    H_rho_s = smoothedHeaviside(eps_rho, phi_s[k]);
    d_rho_s = smoothedDirac(eps_rho, phi_s[k]);
    H_mu_s = smoothedHeaviside(eps_mu, phi_s[k]);
    d_mu_s = smoothedDirac(eps_mu, phi_s[k]);
    rho = rho_s * (1.0 - H_rho_s) + rho * H_rho_s;
    nu = nu_s * (1.0 - H_mu_s) + nu * H_mu_s;
    mu = rho_s * nu_s * (1.0 - H_mu_s) + rho * nu * H_mu_s;
    mom_u_acc[k] = H_mu_s * rho * u[k];
    dmom_u_acc_u[k] = H_mu_s * rho;
    mom_v_acc[k] = H_mu_s * rho * v[k];
    dmom_v_acc_v[k] = H_mu_s * rho;
    mom_w_acc[k] = H_mu_s * rho * w[k];
    dmom_w_acc_w[k] = H_mu_s * rho;
    mass_adv[k * 3 + 0] = u[k];
    mass_adv[k * 3 + 1] = v[k];
    mass_adv[k * 3 + 2] = w[k];
    dmass_adv_u[k * 3 + 0] = 1.0;
    dmass_adv_v[k * 3 + 1] = 1.0;
    dmass_adv_w[k * 3 + 2] = 1.0;
    mom_u_adv[k * 3 + 0] = H_mu_s * rho * u[k] * u[k];
    mom_u_adv[k * 3 + 1] = H_mu_s * rho * u[k] * v[k];
    mom_u_adv[k * 3 + 2] = H_mu_s * rho * u[k] * w[k];
    dmom_u_adv_u[k * 3 + 0] = 2.0 * H_mu_s * rho * u[k];
    dmom_u_adv_u[k * 3 + 1] = H_mu_s * rho * v[k];
    dmom_u_adv_u[k * 3 + 2] = H_mu_s * rho * w[k];
    dmom_u_adv_v[k * 3 + 1] = H_mu_s * rho * u[k];
    dmom_u_adv_w[k * 3 + 2] = H_mu_s * rho * u[k];
    mom_v_adv[k * 3 + 0] = H_mu_s * rho * v[k] * u[k];
    mom_v_adv[k * 3 + 1] = H_mu_s * rho * v[k] * v[k];
    mom_v_adv[k * 3 + 2] = H_mu_s * rho * v[k] * w[k];
    dmom_v_adv_u[k * 3 + 0] = H_mu_s * rho * v[k];
    dmom_v_adv_w[k * 3 + 2] = H_mu_s * rho * v[k];
    dmom_v_adv_v[k * 3 + 0] = H_mu_s * rho * u[k];
    dmom_v_adv_v[k * 3 + 1] = 2.0 * H_mu_s * rho * v[k];
    dmom_v_adv_v[k * 3 + 2] = H_mu_s * rho * w[k];
    mom_w_adv[k * 3 + 0] = H_mu_s * rho * w[k] * u[k];
    mom_w_adv[k * 3 + 1] = H_mu_s * rho * w[k] * v[k];
    mom_w_adv[k * 3 + 2] = H_mu_s * rho * w[k] * w[k];
    dmom_w_adv_u[k * 3 + 0] = H_mu_s * rho * w[k];
    dmom_w_adv_v[k * 3 + 1] = H_mu_s * rho * w[k];
    dmom_w_adv_w[k * 3 + 0] = H_mu_s * rho * u[k];
    dmom_w_adv_w[k * 3 + 1] = H_mu_s * rho * v[k];
    dmom_w_adv_w[k * 3 + 2] = 2.0 * H_mu_s * rho * w[k];
    mom_u_diff_ten[k * 9 + 0] = 2.0 * H_mu_s * mu;
    mom_u_diff_ten[k * 9 + 4] = H_mu_s * mu;
    mom_u_diff_ten[k * 9 + 8] = H_mu_s * mu;
    mom_uv_diff_ten[k * 9 + 3] = H_mu_s * mu;
    mom_uw_diff_ten[k * 9 + 6] = H_mu_s * mu;
    mom_v_diff_ten[k * 9 + 0] = H_mu_s * mu;
    mom_v_diff_ten[k * 9 + 4] = 2.0 * H_mu_s * mu;
    mom_v_diff_ten[k * 9 + 8] = H_mu_s * mu;
    mom_vu_diff_ten[k * 9 + 1] = H_mu_s * mu;
    mom_vw_diff_ten[k * 9 + 7] = H_mu_s * mu;
    mom_w_diff_ten[k * 9 + 0] = H_mu_s * mu;
    mom_w_diff_ten[k * 9 + 4] = H_mu_s * mu;
    mom_w_diff_ten[k * 9 + 8] = 2.0 * H_mu_s * mu;
    mom_wu_diff_ten[k * 9 + 2] = H_mu_s * mu;
    mom_wv_diff_ten[k * 9 + 5] = H_mu_s * mu;
    norm_n = sqrt(n[k * 3 + 0] * n[k * 3 + 0] + n[k * 3 + 1] * n[k * 3 + 1] +
                  n[k * 3 + 2] * n[k * 3 + 2]);
    mom_u_source[k] =
        -H_mu_s * rho * g[0] -
        H_mu_s * d_mu * sigma * kappa[k] * n[k * 3 + 0] / (norm_n) +
        boundaryPenaltyCoef * rho * d_mu_s * (u[k] - 0.0) +
        volumePenaltyCoef * rho * (1.0 - H_mu_s) * (u[k] - 0.0);
    dmom_u_source_u[k] = boundaryPenaltyCoef * rho * d_mu_s +
                         volumePenaltyCoef * rho * (1.0 - H_mu_s);
    dmom_u_source_v[k] = 0.0;
    dmom_u_source_w[k] = 0.0;
    mom_v_source[k] =
        -H_mu_s * rho * g[1] -
        H_mu_s * d_mu * sigma * kappa[k] * n[k * 3 + 1] / (norm_n) +
        boundaryPenaltyCoef * rho * d_mu_s * (v[k] - 0.0) +
        volumePenaltyCoef * rho * (1.0 - H_mu_s) * (v[k] - 0.0);
    dmom_v_source_u[k] = 0.0;
    dmom_v_source_v[k] = boundaryPenaltyCoef * rho * d_mu_s +
                         volumePenaltyCoef * rho * (1.0 - H_mu_s);
    dmom_v_source_w[k] = 0.0;
    mom_w_source[k] =
        -H_mu_s * rho * g[2] -
        H_mu_s * d_mu * sigma * kappa[k] * n[k * 3 + 2] / (norm_n) +
        boundaryPenaltyCoef * rho * d_mu_s * (w[k] - 0.0) +
        volumePenaltyCoef * rho * (1.0 - H_mu_s) * (w[k] - 0.0);
    dmom_w_source_u[k] = 0.0;
    dmom_w_source_v[k] = 0.0;
    dmom_w_source_w[k] = boundaryPenaltyCoef * rho * d_mu_s +
                         volumePenaltyCoef * rho * (1.0 - H_mu_s);
    mom_u_ham[k] = grad_p[k * 3 + 0];
    dmom_u_ham_grad_p[k * 3 + 0] = 1.0;
    mom_v_ham[k] = grad_p[k * 3 + 1];
    dmom_v_ham_grad_p[k * 3 + 1] = 1.0;
    mom_w_ham[k] = grad_p[k * 3 + 2];
    dmom_w_ham_grad_p[k * 3 + 2] = 1.0;
  }
}


x86 assembly (clang, -O0):
<ThreephaseNavierStokes_ST_LS_SO_3D_Evaluate>:
push   %rbp
mov    %rsp,%rbp
sub    $0xe0,%rsp
mov    0x1d8(%rbp),%rax
mov    0x1d0(%rbp),%rax
mov    0x1c8(%rbp),%rax
mov    0x1c0(%rbp),%rax
mov    0x1b8(%rbp),%rax
mov    0x1b0(%rbp),%rax
mov    0x1a8(%rbp),%rax
mov    0x1a0(%rbp),%rax
mov    0x198(%rbp),%rax
mov    0x190(%rbp),%rax
mov    0x188(%rbp),%rax
mov    0x180(%rbp),%rax
mov    0x178(%rbp),%rax
mov    0x170(%rbp),%rax
mov    0x168(%rbp),%rax
mov    0x160(%rbp),%rax
mov    0x158(%rbp),%rax
mov    0x150(%rbp),%rax
mov    0x148(%rbp),%rax
mov    0x140(%rbp),%rax
mov    0x138(%rbp),%rax
mov    0x130(%rbp),%rax
mov    0x128(%rbp),%rax
mov    0x120(%rbp),%rax
mov    0x118(%rbp),%rax
mov    0x110(%rbp),%rax
mov    0x108(%rbp),%rax
mov    0x100(%rbp),%rax
mov    0xf8(%rbp),%rax
mov    0xf0(%rbp),%rax
mov    0xe8(%rbp),%rax
mov    0xe0(%rbp),%rax
mov    0xd8(%rbp),%rax
mov    0xd0(%rbp),%rax
mov    0xc8(%rbp),%rax
mov    0xc0(%rbp),%rax
mov    0xb8(%rbp),%rax
mov    0xb0(%rbp),%rax
mov    0xa8(%rbp),%rax
mov    0xa0(%rbp),%rax
mov    0x98(%rbp),%rax
mov    0x90(%rbp),%rax
mov    0x88(%rbp),%rax
mov    0x80(%rbp),%rax
mov    0x78(%rbp),%rax
mov    0x70(%rbp),%rax
mov    0x68(%rbp),%rax
mov    0x60(%rbp),%rax
mov    0x58(%rbp),%rax
mov    0x50(%rbp),%rax
mov    0x48(%rbp),%rax
mov    0x40(%rbp),%rax
mov    0x38(%rbp),%rax
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%rax
movsd  0x20(%rbp),%xmm8
movsd  0x18(%rbp),%xmm8
movsd  0x10(%rbp),%xmm8
mov    %edi,-0x4(%rbp)
movsd  %xmm0,-0x10(%rbp)
movsd  %xmm1,-0x18(%rbp)
movsd  %xmm2,-0x20(%rbp)
movsd  %xmm3,-0x28(%rbp)
movsd  %xmm4,-0x30(%rbp)
movsd  %xmm5,-0x38(%rbp)
movsd  %xmm6,-0x40(%rbp)
movsd  %xmm7,-0x48(%rbp)
mov    %rsi,-0x50(%rbp)
mov    %rdx,-0x58(%rbp)
mov    %rcx,-0x60(%rbp)
mov    %r8,-0x68(%rbp)
mov    %r9,-0x70(%rbp)
movl   $0x0,-0x74(%rbp)
mov    -0x74(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    23fb <ThreephaseNavierStokes_ST_LS_SO_3D_Evaluate+0x12cb>
movsd  -0x20(%rbp),%xmm0
mov    -0x58(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    $0x2,%al
call   1050 <smoothedHeaviside@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
mov    -0x58(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    $0x2,%al
call   1040 <smoothedDirac@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
mov    -0x58(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    $0x2,%al
call   1050 <smoothedHeaviside@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
mov    -0x58(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    $0x2,%al
call   1040 <smoothedDirac@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  0x1c60(%rip),%xmm2
subsd  -0x98(%rbp),%xmm2
ff
movsd  -0x48(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  0x1c31(%rip),%xmm2
subsd  -0xa8(%rbp),%xmm2
ff
movsd  0x10(%rbp),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
mulsd  -0x40(%rbp),%xmm0
movsd  0x1bfa(%rip),%xmm2
subsd  -0xa8(%rbp),%xmm2
ff
movsd  -0x48(%rbp),%xmm1
mulsd  0x10(%rbp),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
mov    -0x70(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    $0x2,%al
call   1050 <smoothedHeaviside@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
mov    -0x70(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    $0x2,%al
call   1040 <smoothedDirac@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
mov    -0x70(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    $0x2,%al
call   1050 <smoothedHeaviside@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
mov    -0x70(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    $0x2,%al
call   1040 <smoothedDirac@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  0x18(%rbp),%xmm0
movsd  0x1b2f(%rip),%xmm2
subsd  -0xb8(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  0x20(%rbp),%xmm0
movsd  0x1b00(%rip),%xmm2
subsd  -0xc8(%rbp),%xmm2
ff
movsd  -0x88(%rbp),%xmm1
ff
mulsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  0x18(%rbp),%xmm0
mulsd  0x20(%rbp),%xmm0
movsd  0x1ac6(%rip),%xmm2
subsd  -0xc8(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x88(%rbp),%xmm1
ff
mulsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x40(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x58(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x60(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x48(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x68(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x70(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x50(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x78(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x80(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x40(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x88(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x48(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x88(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x50(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x88(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x90(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  0x1951(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    0x98(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  0x1933(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    0xa0(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  0x1915(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x40(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x40(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xa8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x40(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x48(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xa8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x40(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x50(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xa8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x1859(%rip),%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x40(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xb0(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x48(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xb0(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x50(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xb0(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x40(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xb8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x40(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xc0(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x48(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x40(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xc8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x48(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x48(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xc8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x48(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x50(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xc8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x48(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xd0(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x48(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xe0(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x40(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xd8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x161a(%rip),%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x48(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xd8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x50(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xd8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x50(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x40(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xe8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x50(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x48(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xe8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x50(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x50(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xe8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x50(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xf0(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x50(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xf8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x40(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x100(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x48(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x100(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x143b(%rip),%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
mov    0x50(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x100(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x1403(%rip),%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
mov    0x108(%rbp),%rax
imul   $0x9,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
mov    0x108(%rbp),%rax
imul   $0x9,-0x74(%rbp),%ecx
add    $0x4,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
mov    0x108(%rbp),%rax
imul   $0x9,-0x74(%rbp),%ecx
add    $0x8,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
mov    0x120(%rbp),%rax
imul   $0x9,-0x74(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
mov    0x128(%rbp),%rax
imul   $0x9,-0x74(%rbp),%ecx
add    $0x6,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
mov    0x110(%rbp),%rax
imul   $0x9,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x1317(%rip),%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
mov    0x110(%rbp),%rax
imul   $0x9,-0x74(%rbp),%ecx
add    $0x4,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
mov    0x110(%rbp),%rax
imul   $0x9,-0x74(%rbp),%ecx
add    $0x8,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
mov    0x130(%rbp),%rax
imul   $0x9,-0x74(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
mov    0x138(%rbp),%rax
imul   $0x9,-0x74(%rbp),%ecx
add    $0x7,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
mov    0x118(%rbp),%rax
imul   $0x9,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
mov    0x118(%rbp),%rax
imul   $0x9,-0x74(%rbp),%ecx
add    $0x4,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x122b(%rip),%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
mov    0x118(%rbp),%rax
imul   $0x9,-0x74(%rbp),%ecx
add    $0x8,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
mov    0x140(%rbp),%rax
imul   $0x9,-0x74(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
mov    0x148(%rbp),%rax
imul   $0x9,-0x74(%rbp),%ecx
add    $0x5,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x60(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    -0x60(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    -0x60(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x60(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x60(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x60(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <sqrt@plt>
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x80(%rbp),%xmm0
mov    -0x50(%rbp),%rax
movsd  (%rax),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  -0xb0(%rbp),%xmm1
ff
mulsd  -0x30(%rbp),%xmm1
mov    -0x68(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
mov    -0x60(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm1
divsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x10(%rbp),%xmm1
mulsd  -0x80(%rbp),%xmm1
mulsd  -0xd0(%rbp),%xmm1
ff
mov    0x40(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
xorps  %xmm3,%xmm3
subsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
mulsd  -0x80(%rbp),%xmm0
movsd  0x105a(%rip),%xmm2
subsd  -0xc8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
mov    0x40(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
xorps  %xmm3,%xmm3
subsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x150(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x10(%rbp),%xmm0
mulsd  -0x80(%rbp),%xmm0
movsd  -0xd0(%rbp),%xmm2
ff
movsd  -0x18(%rbp),%xmm1
mulsd  -0x80(%rbp),%xmm1
movsd  0xffe(%rip),%xmm3
subsd  -0xc8(%rbp),%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x158(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x160(%rbp),%rax
movslq -0x74(%rbp),%rcx
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    0x168(%rbp),%rax
movslq -0x74(%rbp),%rcx
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x80(%rbp),%xmm0
mov    -0x50(%rbp),%rax
movsd  0x8(%rax),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  -0xb0(%rbp),%xmm1
ff
mulsd  -0x30(%rbp),%xmm1
mov    -0x68(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
mov    -0x60(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm1
divsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x10(%rbp),%xmm1
mulsd  -0x80(%rbp),%xmm1
mulsd  -0xd0(%rbp),%xmm1
ff
mov    0x48(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
xorps  %xmm3,%xmm3
subsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
mulsd  -0x80(%rbp),%xmm0
movsd  0xeeb(%rip),%xmm2
subsd  -0xc8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
mov    0x48(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
xorps  %xmm3,%xmm3
subsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x170(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x178(%rbp),%rax
movslq -0x74(%rbp),%rcx
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x10(%rbp),%xmm0
mulsd  -0x80(%rbp),%xmm0
movsd  -0xd0(%rbp),%xmm2
ff
movsd  -0x18(%rbp),%xmm1
mulsd  -0x80(%rbp),%xmm1
movsd  0xe7c(%rip),%xmm3
subsd  -0xc8(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x180(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x188(%rbp),%rax
movslq -0x74(%rbp),%rcx
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xc8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x80(%rbp),%xmm0
mov    -0x50(%rbp),%rax
movsd  0x10(%rax),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  -0xb0(%rbp),%xmm1
ff
mulsd  -0x30(%rbp),%xmm1
mov    -0x68(%rbp),%rax
movslq -0x74(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
mov    -0x60(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm1
divsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x10(%rbp),%xmm1
mulsd  -0x80(%rbp),%xmm1
mulsd  -0xd0(%rbp),%xmm1
ff
mov    0x50(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
xorps  %xmm3,%xmm3
subsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
mulsd  -0x80(%rbp),%xmm0
movsd  0xd7c(%rip),%xmm2
subsd  -0xc8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
mov    0x50(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
xorps  %xmm3,%xmm3
subsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x190(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x198(%rbp),%rax
movslq -0x74(%rbp),%rcx
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    0x1a0(%rbp),%rax
movslq -0x74(%rbp),%rcx
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x10(%rbp),%xmm0
mulsd  -0x80(%rbp),%xmm0
movsd  -0xd0(%rbp),%xmm2
ff
movsd  -0x18(%rbp),%xmm1
mulsd  -0x80(%rbp),%xmm1
movsd  0xcfa(%rip),%xmm3
subsd  -0xc8(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x1a8(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x38(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x1b0(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x1b8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  0xc9a(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    0x38(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x1c0(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x1c8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  0xc59(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    0x38(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x1d0(%rbp),%rax
movslq -0x74(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x1d8(%rbp),%rax
imul   $0x3,-0x74(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  0xc18(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x74(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x74(%rbp)
jmp    12f3 <ThreephaseNavierStokes_ST_LS_SO_3D_Evaluate+0x1c3>
add    $0xe0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<ThreephaseNavierStokes_ST_LS_SO_3D_Evaluate>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xb8,%rsp
mov    %r9,0xb0(%rsp)
mov    %r8,0xa8(%rsp)
mov    %rdx,0xa0(%rsp)
mov    %rsi,0x98(%rsp)
movsd  %xmm7,0x90(%rsp)
movsd  %xmm6,0x88(%rsp)
movsd  %xmm5,0x80(%rsp)
movsd  %xmm4,0x78(%rsp)
movsd  %xmm3,0x18(%rsp)
movsd  %xmm2,0x10(%rsp)
movsd  %xmm1,0x70(%rsp)
movsd  %xmm0,0x68(%rsp)
test   %edi,%edi
jle    1a31 <ThreephaseNavierStokes_ST_LS_SO_3D_Evaluate+0x901>
movsd  0xf8(%rsp),%xmm0
mulsd  0x100(%rsp),%xmm0
movsd  %xmm0,0x60(%rsp)
mov    %edi,%eax
shl    $0x3,%rax
mov    %rax,0x58(%rsp)
mov    0x120(%rsp),%r13
xor    %r15d,%r15d
xor    %ebx,%ebx
xor    %r12d,%r12d
mov    %rcx,0x48(%rsp)
jmp    145f <ThreephaseNavierStokes_ST_LS_SO_3D_Evaluate+0x32f>
nop
movsd  %xmm8,0x8(%rsp)
movsd  %xmm9,0x28(%rsp)
movsd  %xmm6,0x20(%rsp)
call   1030 <sqrt@plt>
movsd  0x20(%rsp),%xmm6
movsd  0x28(%rsp),%xmm9
movsd  0x8(%rsp),%xmm8
movabs $0x3ff0000000000000,%r10
mov    0x128(%rsp),%r9
mov    0x130(%rsp),%r8
mov    0x48(%rsp),%rcx
movsd  0x50(%rsp),%xmm7
movapd 0x30(%rsp),%xmm2
xorpd  0xdd0(%rip),%xmm2
movapd %xmm8,%xmm1
mulsd  %xmm2,%xmm1
mulsd  %xmm2,%xmm7
mulsd  0x78(%rsp),%xmm7
mov    0xa8(%rsp),%rax
movsd  (%rax,%r15,1),%xmm2
mulsd  %xmm7,%xmm2
mulsd  (%rcx,%rbp,8),%xmm2
divsd  %xmm0,%xmm2
mov    0x98(%rsp),%rdx
movsd  (%rdx),%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm2,%xmm3
movapd %xmm8,%xmm2
mulsd  0x68(%rsp),%xmm2
mulsd  %xmm9,%xmm2
movsd  0x0(%r13,%r15,1),%xmm4
movapd %xmm2,%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm3,%xmm5
mulsd  0x70(%rsp),%xmm8
mulsd  %xmm6,%xmm8
mulsd  %xmm8,%xmm4
addsd  %xmm5,%xmm4
mov    0x230(%rsp),%rsi
movsd  %xmm4,(%rsi,%r15,1)
movapd %xmm2,%xmm3
addsd  %xmm8,%xmm3
mov    0x238(%rsp),%rsi
movsd  %xmm3,(%rsi,%r15,1)
mov    0x240(%rsp),%rsi
movq   $0x0,(%rsi,%r15,1)
mov    0x248(%rsp),%rsi
movq   $0x0,(%rsi,%r15,1)
movsd  (%rax,%r15,1),%xmm4
mulsd  %xmm7,%xmm4
mulsd  (%rcx,%r14,8),%xmm4
divsd  %xmm0,%xmm4
movsd  0x8(%rdx),%xmm5
mulsd  %xmm1,%xmm5
addsd  %xmm4,%xmm5
movsd  (%r9,%r15,1),%xmm4
movapd %xmm2,%xmm6
mulsd  %xmm4,%xmm6
addsd  %xmm5,%xmm6
mulsd  %xmm8,%xmm4
addsd  %xmm6,%xmm4
mov    0x250(%rsp),%rsi
movsd  %xmm4,(%rsi,%r15,1)
mov    0x258(%rsp),%rsi
movq   $0x0,(%rsi,%r15,1)
mov    0x260(%rsp),%rsi
movsd  %xmm3,(%rsi,%r15,1)
mov    0x268(%rsp),%rsi
movq   $0x0,(%rsi,%r15,1)
mulsd  (%rax,%r15,1),%xmm7
mulsd  (%rcx,%rbx,8),%xmm7
mulsd  0x10(%rdx),%xmm1
divsd  %xmm0,%xmm7
addsd  %xmm7,%xmm1
movsd  (%r8,%r15,1),%xmm0
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
mulsd  %xmm0,%xmm8
addsd  %xmm2,%xmm8
mov    0x270(%rsp),%rax
movsd  %xmm8,(%rax,%r15,1)
mov    0x278(%rsp),%rax
movq   $0x0,(%rax,%r15,1)
mov    0x280(%rsp),%rax
movq   $0x0,(%rax,%r15,1)
mov    0x288(%rsp),%rax
movsd  %xmm3,(%rax,%r15,1)
mov    0x118(%rsp),%rdx
movsd  (%rdx,%rbp,8),%xmm0
mov    0x290(%rsp),%rax
movsd  %xmm0,(%rax,%r15,1)
mov    0x298(%rsp),%rax
mov    %r10,(%rax,%rbp,8)
movsd  (%rdx,%r14,8),%xmm0
mov    0x2a0(%rsp),%rax
movsd  %xmm0,(%rax,%r15,1)
mov    0x2a8(%rsp),%rax
mov    %r10,(%rax,%r14,8)
movsd  (%rdx,%rbx,8),%xmm0
mov    0x2b0(%rsp),%rax
movsd  %xmm0,(%rax,%r15,1)
mov    0x2b8(%rsp),%rax
mov    %r10,(%rax,%rbx,8)
add    $0x9,%r12d
lea    0x3(%rbp),%ebx
add    $0x8,%r15
cmp    %r15,0x58(%rsp)
je     1a31 <ThreephaseNavierStokes_ST_LS_SO_3D_Evaluate+0x901>
mov    0xa0(%rsp),%rbp
movsd  0x0(%rbp,%r15,1),%xmm1
movsd  0x10(%rsp),%xmm0
mov    $0x2,%al
call   1050 <smoothedHeaviside@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0x0(%rbp,%r15,1),%xmm1
movsd  0x10(%rsp),%xmm0
mov    $0x2,%al
call   1040 <smoothedDirac@plt>
movsd  0x0(%rbp,%r15,1),%xmm1
movsd  0x18(%rsp),%xmm0
mov    $0x2,%al
call   1050 <smoothedHeaviside@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x0(%rbp,%r15,1),%xmm1
movsd  0x18(%rsp),%xmm0
mov    $0x2,%al
call   1040 <smoothedDirac@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0xb1a(%rip),%xmm0
movapd %xmm0,%xmm1
movsd  0x30(%rsp),%xmm2
subsd  %xmm2,%xmm1
mulsd  0x90(%rsp),%xmm2
mulsd  0x80(%rsp),%xmm1
addsd  %xmm2,%xmm1
movsd  %xmm1,0x28(%rsp)
movapd %xmm0,%xmm1
movsd  0x8(%rsp),%xmm0
subsd  %xmm0,%xmm1
mulsd  0xf0(%rsp),%xmm0
mulsd  0x88(%rsp),%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%rsp)
mov    0xb0(%rsp),%rbp
movsd  0x0(%rbp,%r15,1),%xmm1
movsd  0x10(%rsp),%xmm0
mov    $0x2,%al
call   1050 <smoothedHeaviside@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x0(%rbp,%r15,1),%xmm1
movsd  0x10(%rsp),%xmm0
mov    $0x2,%al
call   1040 <smoothedDirac@plt>
movsd  0x0(%rbp,%r15,1),%xmm1
movsd  0x18(%rsp),%xmm0
mov    $0x2,%al
call   1050 <smoothedHeaviside@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movapd %xmm0,0x30(%rsp)
movsd  0x0(%rbp,%r15,1),%xmm1
movsd  0x18(%rsp),%xmm0
mov    $0x2,%al
call   1040 <smoothedDirac@plt>
movabs $0x3ff0000000000000,%r10
mov    0x128(%rsp),%r9
mov    0x130(%rsp),%r8
cvtsi2sd %eax,%xmm9
movsd  0xa2d(%rip),%xmm6
movapd %xmm6,%xmm8
movsd  0x20(%rsp),%xmm1
subsd  %xmm1,%xmm8
movsd  0x28(%rsp),%xmm0
mulsd  %xmm1,%xmm0
mulsd  0xf8(%rsp),%xmm8
addsd  %xmm0,%xmm8
movapd 0x30(%rsp),%xmm7
subsd  %xmm7,%xmm6
movsd  0x8(%rsp),%xmm0
mulsd  %xmm7,%xmm0
movsd  0x100(%rsp),%xmm1
mulsd  %xmm6,%xmm1
addsd  %xmm0,%xmm1
mulsd  %xmm8,%xmm1
mulsd  %xmm7,%xmm1
movsd  0x60(%rsp),%xmm0
mulsd  %xmm6,%xmm0
addsd  %xmm1,%xmm0
movapd %xmm8,%xmm1
mulsd  %xmm7,%xmm1
movsd  0x0(%r13,%r15,1),%xmm2
mulsd  %xmm1,%xmm2
mov    0x138(%rsp),%rax
movsd  %xmm2,(%rax,%r15,1)
mov    0x140(%rsp),%rax
movsd  %xmm1,(%rax,%r15,1)
movsd  (%r9,%r15,1),%xmm2
mulsd  %xmm1,%xmm2
mov    0x148(%rsp),%rax
movsd  %xmm2,(%rax,%r15,1)
mov    0x150(%rsp),%rax
movsd  %xmm1,(%rax,%r15,1)
movsd  (%r8,%r15,1),%xmm2
mulsd  %xmm1,%xmm2
mov    0x158(%rsp),%rax
movsd  %xmm2,(%rax,%r15,1)
mov    0x160(%rsp),%rax
movsd  %xmm1,(%rax,%r15,1)
movsd  0x0(%r13,%r15,1),%xmm2
mov    %ebx,%ebp
mov    0x168(%rsp),%rax
movsd  %xmm2,(%rax,%rbp,8)
movsd  (%r9,%r15,1),%xmm2
lea    0x1(%rbx),%r14d
movsd  %xmm2,(%rax,%r14,8)
movsd  (%r8,%r15,1),%xmm2
add    $0x2,%ebx
movsd  %xmm2,(%rax,%rbx,8)
mov    0x170(%rsp),%rax
mov    %r10,(%rax,%rbp,8)
mov    0x178(%rsp),%rax
mov    %r10,(%rax,%r14,8)
mov    0x180(%rsp),%rax
mov    %r10,(%rax,%rbx,8)
movsd  0x0(%r13,%r15,1),%xmm2
movapd %xmm1,%xmm3
mulsd  %xmm2,%xmm3
mulsd  %xmm2,%xmm3
mov    0x188(%rsp),%rax
movsd  %xmm3,(%rax,%rbp,8)
movsd  0x0(%r13,%r15,1),%xmm2
mulsd  %xmm1,%xmm2
mulsd  (%r9,%r15,1),%xmm2
movsd  %xmm2,(%rax,%r14,8)
movsd  0x0(%r13,%r15,1),%xmm2
mulsd  %xmm1,%xmm2
mulsd  (%r8,%r15,1),%xmm2
movsd  %xmm2,(%rax,%rbx,8)
movapd %xmm7,%xmm2
addsd  %xmm7,%xmm2
movapd %xmm8,%xmm3
mulsd  %xmm2,%xmm3
movsd  0x0(%r13,%r15,1),%xmm4
mulsd  %xmm3,%xmm4
mov    0x190(%rsp),%rax
movsd  %xmm4,(%rax,%rbp,8)
movsd  (%r9,%r15,1),%xmm4
mulsd  %xmm1,%xmm4
movsd  %xmm4,(%rax,%r14,8)
movsd  (%r8,%r15,1),%xmm4
mulsd  %xmm1,%xmm4
movsd  %xmm4,(%rax,%rbx,8)
movsd  0x0(%r13,%r15,1),%xmm4
mulsd  %xmm1,%xmm4
mov    0x198(%rsp),%rax
movsd  %xmm4,(%rax,%r14,8)
movsd  0x0(%r13,%r15,1),%xmm4
mulsd  %xmm1,%xmm4
mov    0x1a0(%rsp),%rax
movsd  %xmm4,(%rax,%rbx,8)
movsd  (%r9,%r15,1),%xmm4
mulsd  %xmm1,%xmm4
mulsd  0x0(%r13,%r15,1),%xmm4
mov    0x1a8(%rsp),%rax
movsd  %xmm4,(%rax,%rbp,8)
movsd  (%r9,%r15,1),%xmm4
movapd %xmm1,%xmm5
mulsd  %xmm4,%xmm5
mulsd  %xmm4,%xmm5
movsd  %xmm5,(%rax,%r14,8)
movsd  (%r9,%r15,1),%xmm4
mulsd  %xmm1,%xmm4
mulsd  (%r8,%r15,1),%xmm4
movsd  %xmm4,(%rax,%rbx,8)
movsd  (%r9,%r15,1),%xmm4
mulsd  %xmm1,%xmm4
mov    0x1b0(%rsp),%rax
movsd  %xmm4,(%rax,%rbp,8)
movsd  (%r9,%r15,1),%xmm4
mulsd  %xmm1,%xmm4
mov    0x1c0(%rsp),%rax
movsd  %xmm4,(%rax,%rbx,8)
movsd  0x0(%r13,%r15,1),%xmm4
mulsd  %xmm1,%xmm4
mov    0x1b8(%rsp),%rax
movsd  %xmm4,(%rax,%rbp,8)
movsd  (%r9,%r15,1),%xmm4
mulsd  %xmm3,%xmm4
movsd  %xmm4,(%rax,%r14,8)
movsd  (%r8,%r15,1),%xmm4
mulsd  %xmm1,%xmm4
movsd  %xmm4,(%rax,%rbx,8)
movsd  (%r8,%r15,1),%xmm4
mulsd  %xmm1,%xmm4
mulsd  0x0(%r13,%r15,1),%xmm4
mov    0x1c8(%rsp),%rax
movsd  %xmm4,(%rax,%rbp,8)
movsd  (%r8,%r15,1),%xmm4
mulsd  %xmm1,%xmm4
mulsd  (%r9,%r15,1),%xmm4
movsd  %xmm4,(%rax,%r14,8)
movsd  (%r8,%r15,1),%xmm4
movapd %xmm1,%xmm5
mulsd  %xmm4,%xmm5
mulsd  %xmm4,%xmm5
movsd  %xmm5,(%rax,%rbx,8)
movsd  (%r8,%r15,1),%xmm4
mulsd  %xmm1,%xmm4
mov    0x1d0(%rsp),%rax
movsd  %xmm4,(%rax,%rbp,8)
movsd  (%r8,%r15,1),%xmm4
mulsd  %xmm1,%xmm4
mov    0x1d8(%rsp),%rax
movsd  %xmm4,(%rax,%r14,8)
movsd  0x0(%r13,%r15,1),%xmm4
mulsd  %xmm1,%xmm4
mov    0x1e0(%rsp),%rax
movsd  %xmm4,(%rax,%rbp,8)
mulsd  (%r9,%r15,1),%xmm1
movsd  %xmm1,(%rax,%r14,8)
mulsd  (%r8,%r15,1),%xmm3
movsd  %xmm3,(%rax,%rbx,8)
mulsd  %xmm0,%xmm2
mov    %r12d,%eax
mov    0x1e8(%rsp),%rsi
movsd  %xmm2,(%rsi,%rax,8)
mulsd  %xmm7,%xmm0
lea    0x4(%r12),%ecx
movsd  %xmm0,(%rsi,%rcx,8)
lea    0x8(%r12),%edx
movsd  %xmm0,(%rsi,%rdx,8)
lea    0x3(%r12),%esi
mov    0x200(%rsp),%rdi
movsd  %xmm0,(%rdi,%rsi,8)
lea    0x6(%r12),%esi
mov    0x208(%rsp),%rdi
movsd  %xmm0,(%rdi,%rsi,8)
mov    0x1f0(%rsp),%rsi
movsd  %xmm0,(%rsi,%rax,8)
movsd  %xmm2,(%rsi,%rcx,8)
movsd  %xmm0,(%rsi,%rdx,8)
lea    0x1(%r12),%esi
mov    0x210(%rsp),%rdi
movsd  %xmm0,(%rdi,%rsi,8)
lea    0x7(%r12),%esi
mov    0x218(%rsp),%rdi
movsd  %xmm0,(%rdi,%rsi,8)
mov    0x1f8(%rsp),%rsi
movsd  %xmm0,(%rsi,%rax,8)
movsd  %xmm0,(%rsi,%rcx,8)
mov    0x48(%rsp),%rcx
movsd  %xmm2,(%rsi,%rdx,8)
lea    0x2(%r12),%eax
mov    0x220(%rsp),%rdx
movsd  %xmm0,(%rdx,%rax,8)
lea    0x5(%r12),%eax
mov    0x228(%rsp),%rdx
movsd  %xmm0,(%rdx,%rax,8)
movsd  (%rcx,%rbp,8),%xmm1
movsd  (%rcx,%r14,8),%xmm0
mulsd  %xmm0,%xmm0
mulsd  %xmm1,%xmm1
addsd  %xmm0,%xmm1
movsd  (%rcx,%rbx,8),%xmm0
mulsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
ucomisd 0x5e6(%rip),%xmm0
jb     11e0 <ThreephaseNavierStokes_ST_LS_SO_3D_Evaluate+0xb0>
sqrtsd %xmm0,%xmm0
jmp    122c <ThreephaseNavierStokes_ST_LS_SO_3D_Evaluate+0xfc>
add    $0xb8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @ThreephaseNavierStokes_ST_LS_SO_3D_Evaluate(i32 %0, double %1, double %2, double %3, double %4, double %5, double %6, double %7, double %8, double %9, double %10, double %11, double* %12, double* %13, double* %14, double* %15, double* %16, double* %17, double* %18, double* %19, double* %20, double* %21, double* %22, double* %23, double* %24, double* %25, double* %26, double* %27, double* %28, double* %29, double* %30, double* %31, double* %32, double* %33, double* %34, double* %35, double* %36, double* %37, double* %38, double* %39, double* %40, double* %41, double* %42, double* %43, double* %44, double* %45, double* %46, double* %47, double* %48, double* %49, double* %50, double* %51, double* %52, double* %53, double* %54, double* %55, double* %56, double* %57, double* %58, double* %59, double* %60, double* %61, double* %62, double* %63, double* %64, double* %65, double* %66, double* %67, double* %68, double* %69, double* %70, double* %71) {
%73 = alloca i32
%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*
%92 = alloca double*
%93 = alloca double*
%94 = alloca double*
%95 = alloca double*
%96 = alloca double*
%97 = alloca double*
%98 = alloca double*
%99 = alloca double*
%100 = alloca double*
%101 = alloca double*
%102 = alloca double*
%103 = alloca double*
%104 = alloca double*
%105 = alloca double*
%106 = alloca double*
%107 = alloca double*
%108 = alloca double*
%109 = alloca double*
%110 = alloca double*
%111 = alloca double*
%112 = alloca double*
%113 = alloca double*
%114 = alloca double*
%115 = alloca double*
%116 = alloca double*
%117 = alloca double*
%118 = alloca double*
%119 = alloca double*
%120 = alloca double*
%121 = alloca double*
%122 = alloca double*
%123 = alloca double*
%124 = alloca double*
%125 = alloca double*
%126 = alloca double*
%127 = alloca double*
%128 = alloca double*
%129 = alloca double*
%130 = alloca double*
%131 = alloca double*
%132 = alloca double*
%133 = alloca double*
%134 = alloca double*
%135 = alloca double*
%136 = alloca double*
%137 = alloca double*
%138 = alloca double*
%139 = alloca double*
%140 = alloca double*
%141 = alloca double*
%142 = alloca double*
%143 = alloca double*
%144 = alloca double*
%145 = alloca i32
%146 = alloca double
%147 = alloca double
%148 = alloca double
%149 = alloca double
%150 = alloca double
%151 = alloca double
%152 = alloca double
%153 = alloca double
%154 = alloca double
%155 = alloca double
%156 = alloca double
%157 = alloca double
%158 = alloca double
store i32 %0, i32* %73
store double %1, double* %74
store double %2, double* %75
store double %3, double* %76
store double %4, double* %77
store double %5, double* %78
store double %6, double* %79
store double %7, double* %80
store double %8, double* %81
store double %9, double* %82
store double %10, double* %83
store double %11, double* %84
store double* %12, double** %85
store double* %13, double** %86
store double* %14, double** %87
store double* %15, double** %88
store double* %16, double** %89
store double* %17, double** %90
store double* %18, double** %91
store double* %19, double** %92
store double* %20, double** %93
store double* %21, double** %94
store double* %22, double** %95
store double* %23, double** %96
store double* %24, double** %97
store double* %25, double** %98
store double* %26, double** %99
store double* %27, double** %100
store double* %28, double** %101
store double* %29, double** %102
store double* %30, double** %103
store double* %31, double** %104
store double* %32, double** %105
store double* %33, double** %106
store double* %34, double** %107
store double* %35, double** %108
store double* %36, double** %109
store double* %37, double** %110
store double* %38, double** %111
store double* %39, double** %112
store double* %40, double** %113
store double* %41, double** %114
store double* %42, double** %115
store double* %43, double** %116
store double* %44, double** %117
store double* %45, double** %118
store double* %46, double** %119
store double* %47, double** %120
store double* %48, double** %121
store double* %49, double** %122
store double* %50, double** %123
store double* %51, double** %124
store double* %52, double** %125
store double* %53, double** %126
store double* %54, double** %127
store double* %55, double** %128
store double* %56, double** %129
store double* %57, double** %130
store double* %58, double** %131
store double* %59, double** %132
store double* %60, double** %133
store double* %61, double** %134
store double* %62, double** %135
store double* %63, double** %136
store double* %64, double** %137
store double* %65, double** %138
store double* %66, double** %139
store double* %67, double** %140
store double* %68, double** %141
store double* %69, double** %142
store double* %70, double** %143
store double* %71, double** %144
store i32 0, i32* %145
br label %159
159: ; preds = %1287, %72
%160 = load i32, i32* %145
%161 = load i32, i32* %73
%162 = icmp slt i32 %160, %161
br i1 %162, label %163, label %1290
163: ; preds = %159
%164 = load double, double* %76
%165 = load double*, double** %86
%166 = load i32, i32* %145
%167 = sext i32 %166 to i64
%168 = getelementptr inbounds double, double* %165, i64 %167
%169 = load double, double* %168
%170 = call i32 (double, double, ...) bitcast (i32 (...)* @smoothedHeaviside to i32 (double, double, ...)*)(double %164, double %169)
%171 = sitofp i32 %170 to double
store double %171, double* %149
%172 = load double, double* %76
%173 = load double*, double** %86
%174 = load i32, i32* %145
%175 = sext i32 %174 to i64
%176 = getelementptr inbounds double, double* %173, i64 %175
%177 = load double, double* %176
%178 = call i32 (double, double, ...) bitcast (i32 (...)* @smoothedDirac to i32 (double, double, ...)*)(double %172, double %177)
%179 = sitofp i32 %178 to double
store double %179, double* %150
%180 = load double, double* %77
%181 = load double*, double** %86
%182 = load i32, i32* %145
%183 = sext i32 %182 to i64
%184 = getelementptr inbounds double, double* %181, i64 %183
%185 = load double, double* %184
%186 = call i32 (double, double, ...) bitcast (i32 (...)* @smoothedHeaviside to i32 (double, double, ...)*)(double %180, double %185)
%187 = sitofp i32 %186 to double
store double %187, double* %151
%188 = load double, double* %77
%189 = load double*, double** %86
%190 = load i32, i32* %145
%191 = sext i32 %190 to i64
%192 = getelementptr inbounds double, double* %189, i64 %191
%193 = load double, double* %192
%194 = call i32 (double, double, ...) bitcast (i32 (...)* @smoothedDirac to i32 (double, double, ...)*)(double %188, double %193)
%195 = sitofp i32 %194 to double
store double %195, double* %152
%196 = load double, double* %79
%197 = load double, double* %149
%198 = fsub double 1.000000e+00, %197
%199 = load double, double* %81
%200 = load double, double* %149
%201 = fmul double %199, %200
%202 = call double @llvm.fmuladd.f64(double %196, double %198, double %201)
store double %202, double* %146
%203 = load double, double* %80
%204 = load double, double* %151
%205 = fsub double 1.000000e+00, %204
%206 = load double, double* %82
%207 = load double, double* %151
%208 = fmul double %206, %207
%209 = call double @llvm.fmuladd.f64(double %203, double %205, double %208)
store double %209, double* %147
%210 = load double, double* %79
%211 = load double, double* %80
%212 = fmul double %210, %211
%213 = load double, double* %151
%214 = fsub double 1.000000e+00, %213
%215 = load double, double* %81
%216 = load double, double* %82
%217 = fmul double %215, %216
%218 = load double, double* %151
%219 = fmul double %217, %218
%220 = call double @llvm.fmuladd.f64(double %212, double %214, double %219)
store double %220, double* %148
%221 = load double, double* %76
%222 = load double*, double** %89
%223 = load i32, i32* %145
%224 = sext i32 %223 to i64
%225 = getelementptr inbounds double, double* %222, i64 %224
%226 = load double, double* %225
%227 = call i32 (double, double, ...) bitcast (i32 (...)* @smoothedHeaviside to i32 (double, double, ...)*)(double %221, double %226)
%228 = sitofp i32 %227 to double
store double %228, double* %153
%229 = load double, double* %76
%230 = load double*, double** %89
%231 = load i32, i32* %145
%232 = sext i32 %231 to i64
%233 = getelementptr inbounds double, double* %230, i64 %232
%234 = load double, double* %233
%235 = call i32 (double, double, ...) bitcast (i32 (...)* @smoothedDirac to i32 (double, double, ...)*)(double %229, double %234)
%236 = sitofp i32 %235 to double
store double %236, double* %154
%237 = load double, double* %77
%238 = load double*, double** %89
%239 = load i32, i32* %145
%240 = sext i32 %239 to i64
%241 = getelementptr inbounds double, double* %238, i64 %240
%242 = load double, double* %241
%243 = call i32 (double, double, ...) bitcast (i32 (...)* @smoothedHeaviside to i32 (double, double, ...)*)(double %237, double %242)
%244 = sitofp i32 %243 to double
store double %244, double* %155
%245 = load double, double* %77
%246 = load double*, double** %89
%247 = load i32, i32* %145
%248 = sext i32 %247 to i64
%249 = getelementptr inbounds double, double* %246, i64 %248
%250 = load double, double* %249
%251 = call i32 (double, double, ...) bitcast (i32 (...)* @smoothedDirac to i32 (double, double, ...)*)(double %245, double %250)
%252 = sitofp i32 %251 to double
store double %252, double* %156
%253 = load double, double* %83
%254 = load double, double* %153
%255 = fsub double 1.000000e+00, %254
%256 = load double, double* %146
%257 = load double, double* %153
%258 = fmul double %256, %257
%259 = call double @llvm.fmuladd.f64(double %253, double %255, double %258)
store double %259, double* %146
%260 = load double, double* %84
%261 = load double, double* %155
%262 = fsub double 1.000000e+00, %261
%263 = load double, double* %147
%264 = load double, double* %155
%265 = fmul double %263, %264
%266 = call double @llvm.fmuladd.f64(double %260, double %262, double %265)
store double %266, double* %147
%267 = load double, double* %83
%268 = load double, double* %84
%269 = fmul double %267, %268
%270 = load double, double* %155
%271 = fsub double 1.000000e+00, %270
%272 = load double, double* %146
%273 = load double, double* %147
%274 = fmul double %272, %273
%275 = load double, double* %155
%276 = fmul double %274, %275
%277 = call double @llvm.fmuladd.f64(double %269, double %271, double %276)
store double %277, double* %148
%278 = load double, double* %155
%279 = load double, double* %146
%280 = fmul double %278, %279
%281 = load double*, double** %93
%282 = load i32, i32* %145
%283 = sext i32 %282 to i64
%284 = getelementptr inbounds double, double* %281, i64 %283
%285 = load double, double* %284
%286 = fmul double %280, %285
%287 = load double*, double** %96
%288 = load i32, i32* %145
%289 = sext i32 %288 to i64
%290 = getelementptr inbounds double, double* %287, i64 %289
store double %286, double* %290
%291 = load double, double* %155
%292 = load double, double* %146
%293 = fmul double %291, %292
%294 = load double*, double** %97
%295 = load i32, i32* %145
%296 = sext i32 %295 to i64
%297 = getelementptr inbounds double, double* %294, i64 %296
store double %293, double* %297
%298 = load double, double* %155
%299 = load double, double* %146
%300 = fmul double %298, %299
%301 = load double*, double** %94
%302 = load i32, i32* %145
%303 = sext i32 %302 to i64
%304 = getelementptr inbounds double, double* %301, i64 %303
%305 = load double, double* %304
%306 = fmul double %300, %305
%307 = load double*, double** %98
%308 = load i32, i32* %145
%309 = sext i32 %308 to i64
%310 = getelementptr inbounds double, double* %307, i64 %309
store double %306, double* %310
%311 = load double, double* %155
%312 = load double, double* %146
%313 = fmul double %311, %312
%314 = load double*, double** %99
%315 = load i32, i32* %145
%316 = sext i32 %315 to i64
%317 = getelementptr inbounds double, double* %314, i64 %316
store double %313, double* %317
%318 = load double, double* %155
%319 = load double, double* %146
%320 = fmul double %318, %319
%321 = load double*, double** %95
%322 = load i32, i32* %145
%323 = sext i32 %322 to i64
%324 = getelementptr inbounds double, double* %321, i64 %323
%325 = load double, double* %324
%326 = fmul double %320, %325
%327 = load double*, double** %100
%328 = load i32, i32* %145
%329 = sext i32 %328 to i64
%330 = getelementptr inbounds double, double* %327, i64 %329
store double %326, double* %330
%331 = load double, double* %155
%332 = load double, double* %146
%333 = fmul double %331, %332
%334 = load double*, double** %101
%335 = load i32, i32* %145
%336 = sext i32 %335 to i64
%337 = getelementptr inbounds double, double* %334, i64 %336
store double %333, double* %337
%338 = load double*, double** %93
%339 = load i32, i32* %145
%340 = sext i32 %339 to i64
%341 = getelementptr inbounds double, double* %338, i64 %340
%342 = load double, double* %341
%343 = load double*, double** %102
%344 = load i32, i32* %145
%345 = mul nsw i32 %344, 3
%346 = add nsw i32 %345, 0
%347 = sext i32 %346 to i64
%348 = getelementptr inbounds double, double* %343, i64 %347
store double %342, double* %348
%349 = load double*, double** %94
%350 = load i32, i32* %145
%351 = sext i32 %350 to i64
%352 = getelementptr inbounds double, double* %349, i64 %351
%353 = load double, double* %352
%354 = load double*, double** %102
%355 = load i32, i32* %145
%356 = mul nsw i32 %355, 3
%357 = add nsw i32 %356, 1
%358 = sext i32 %357 to i64
%359 = getelementptr inbounds double, double* %354, i64 %358
store double %353, double* %359
%360 = load double*, double** %95
%361 = load i32, i32* %145
%362 = sext i32 %361 to i64
%363 = getelementptr inbounds double, double* %360, i64 %362
%364 = load double, double* %363
%365 = load double*, double** %102
%366 = load i32, i32* %145
%367 = mul nsw i32 %366, 3
%368 = add nsw i32 %367, 2
%369 = sext i32 %368 to i64
%370 = getelementptr inbounds double, double* %365, i64 %369
store double %364, double* %370
%371 = load double*, double** %103
%372 = load i32, i32* %145
%373 = mul nsw i32 %372, 3
%374 = add nsw i32 %373, 0
%375 = sext i32 %374 to i64
%376 = getelementptr inbounds double, double* %371, i64 %375
store double 1.000000e+00, double* %376
%377 = load double*, double** %104
%378 = load i32, i32* %145
%379 = mul nsw i32 %378, 3
%380 = add nsw i32 %379, 1
%381 = sext i32 %380 to i64
%382 = getelementptr inbounds double, double* %377, i64 %381
store double 1.000000e+00, double* %382
%383 = load double*, double** %105
%384 = load i32, i32* %145
%385 = mul nsw i32 %384, 3
%386 = add nsw i32 %385, 2
%387 = sext i32 %386 to i64
%388 = getelementptr inbounds double, double* %383, i64 %387
store double 1.000000e+00, double* %388
%389 = load double, double* %155
%390 = load double, double* %146
%391 = fmul double %389, %390
%392 = load double*, double** %93
%393 = load i32, i32* %145
%394 = sext i32 %393 to i64
%395 = getelementptr inbounds double, double* %392, i64 %394
%396 = load double, double* %395
%397 = fmul double %391, %396
%398 = load double*, double** %93
%399 = load i32, i32* %145
%400 = sext i32 %399 to i64
%401 = getelementptr inbounds double, double* %398, i64 %400
%402 = load double, double* %401
%403 = fmul double %397, %402
%404 = load double*, double** %106
%405 = load i32, i32* %145
%406 = mul nsw i32 %405, 3
%407 = add nsw i32 %406, 0
%408 = sext i32 %407 to i64
%409 = getelementptr inbounds double, double* %404, i64 %408
store double %403, double* %409
%410 = load double, double* %155
%411 = load double, double* %146
%412 = fmul double %410, %411
%413 = load double*, double** %93
%414 = load i32, i32* %145
%415 = sext i32 %414 to i64
%416 = getelementptr inbounds double, double* %413, i64 %415
%417 = load double, double* %416
%418 = fmul double %412, %417
%419 = load double*, double** %94
%420 = load i32, i32* %145
%421 = sext i32 %420 to i64
%422 = getelementptr inbounds double, double* %419, i64 %421
%423 = load double, double* %422
%424 = fmul double %418, %423
%425 = load double*, double** %106
%426 = load i32, i32* %145
%427 = mul nsw i32 %426, 3
%428 = add nsw i32 %427, 1
%429 = sext i32 %428 to i64
%430 = getelementptr inbounds double, double* %425, i64 %429
store double %424, double* %430
%431 = load double, double* %155
%432 = load double, double* %146
%433 = fmul double %431, %432
%434 = load double*, double** %93
%435 = load i32, i32* %145
%436 = sext i32 %435 to i64
%437 = getelementptr inbounds double, double* %434, i64 %436
%438 = load double, double* %437
%439 = fmul double %433, %438
%440 = load double*, double** %95
%441 = load i32, i32* %145
%442 = sext i32 %441 to i64
%443 = getelementptr inbounds double, double* %440, i64 %442
%444 = load double, double* %443
%445 = fmul double %439, %444
%446 = load double*, double** %106
%447 = load i32, i32* %145
%448 = mul nsw i32 %447, 3
%449 = add nsw i32 %448, 2
%450 = sext i32 %449 to i64
%451 = getelementptr inbounds double, double* %446, i64 %450
store double %445, double* %451
%452 = load double, double* %155
%453 = fmul double 2.000000e+00, %452
%454 = load double, double* %146
%455 = fmul double %453, %454
%456 = load double*, double** %93
%457 = load i32, i32* %145
%458 = sext i32 %457 to i64
%459 = getelementptr inbounds double, double* %456, i64 %458
%460 = load double, double* %459
%461 = fmul double %455, %460
%462 = load double*, double** %107
%463 = load i32, i32* %145
%464 = mul nsw i32 %463, 3
%465 = add nsw i32 %464, 0
%466 = sext i32 %465 to i64
%467 = getelementptr inbounds double, double* %462, i64 %466
store double %461, double* %467
%468 = load double, double* %155
%469 = load double, double* %146
%470 = fmul double %468, %469
%471 = load double*, double** %94
%472 = load i32, i32* %145
%473 = sext i32 %472 to i64
%474 = getelementptr inbounds double, double* %471, i64 %473
%475 = load double, double* %474
%476 = fmul double %470, %475
%477 = load double*, double** %107
%478 = load i32, i32* %145
%479 = mul nsw i32 %478, 3
%480 = add nsw i32 %479, 1
%481 = sext i32 %480 to i64
%482 = getelementptr inbounds double, double* %477, i64 %481
store double %476, double* %482
%483 = load double, double* %155
%484 = load double, double* %146
%485 = fmul double %483, %484
%486 = load double*, double** %95
%487 = load i32, i32* %145
%488 = sext i32 %487 to i64
%489 = getelementptr inbounds double, double* %486, i64 %488
%490 = load double, double* %489
%491 = fmul double %485, %490
%492 = load double*, double** %107
%493 = load i32, i32* %145
%494 = mul nsw i32 %493, 3
%495 = add nsw i32 %494, 2
%496 = sext i32 %495 to i64
%497 = getelementptr inbounds double, double* %492, i64 %496
store double %491, double* %497
%498 = load double, double* %155
%499 = load double, double* %146
%500 = fmul double %498, %499
%501 = load double*, double** %93
%502 = load i32, i32* %145
%503 = sext i32 %502 to i64
%504 = getelementptr inbounds double, double* %501, i64 %503
%505 = load double, double* %504
%506 = fmul double %500, %505
%507 = load double*, double** %108
%508 = load i32, i32* %145
%509 = mul nsw i32 %508, 3
%510 = add nsw i32 %509, 1
%511 = sext i32 %510 to i64
%512 = getelementptr inbounds double, double* %507, i64 %511
store double %506, double* %512
%513 = load double, double* %155
%514 = load double, double* %146
%515 = fmul double %513, %514
%516 = load double*, double** %93
%517 = load i32, i32* %145
%518 = sext i32 %517 to i64
%519 = getelementptr inbounds double, double* %516, i64 %518
%520 = load double, double* %519
%521 = fmul double %515, %520
%522 = load double*, double** %109
%523 = load i32, i32* %145
%524 = mul nsw i32 %523, 3
%525 = add nsw i32 %524, 2
%526 = sext i32 %525 to i64
%527 = getelementptr inbounds double, double* %522, i64 %526
store double %521, double* %527
%528 = load double, double* %155
%529 = load double, double* %146
%530 = fmul double %528, %529
%531 = load double*, double** %94
%532 = load i32, i32* %145
%533 = sext i32 %532 to i64
%534 = getelementptr inbounds double, double* %531, i64 %533
%535 = load double, double* %534
%536 = fmul double %530, %535
%537 = load double*, double** %93
%538 = load i32, i32* %145
%539 = sext i32 %538 to i64
%540 = getelementptr inbounds double, double* %537, i64 %539
%541 = load double, double* %540
%542 = fmul double %536, %541
%543 = load double*, double** %110
%544 = load i32, i32* %145
%545 = mul nsw i32 %544, 3
%546 = add nsw i32 %545, 0
%547 = sext i32 %546 to i64
%548 = getelementptr inbounds double, double* %543, i64 %547
store double %542, double* %548
%549 = load double, double* %155
%550 = load double, double* %146
%551 = fmul double %549, %550
%552 = load double*, double** %94
%553 = load i32, i32* %145
%554 = sext i32 %553 to i64
%555 = getelementptr inbounds double, double* %552, i64 %554
%556 = load double, double* %555
%557 = fmul double %551, %556
%558 = load double*, double** %94
%559 = load i32, i32* %145
%560 = sext i32 %559 to i64
%561 = getelementptr inbounds double, double* %558, i64 %560
%562 = load double, double* %561
%563 = fmul double %557, %562
%564 = load double*, double** %110
%565 = load i32, i32* %145
%566 = mul nsw i32 %565, 3
%567 = add nsw i32 %566, 1
%568 = sext i32 %567 to i64
%569 = getelementptr inbounds double, double* %564, i64 %568
store double %563, double* %569
%570 = load double, double* %155
%571 = load double, double* %146
%572 = fmul double %570, %571
%573 = load double*, double** %94
%574 = load i32, i32* %145
%575 = sext i32 %574 to i64
%576 = getelementptr inbounds double, double* %573, i64 %575
%577 = load double, double* %576
%578 = fmul double %572, %577
%579 = load double*, double** %95
%580 = load i32, i32* %145
%581 = sext i32 %580 to i64
%582 = getelementptr inbounds double, double* %579, i64 %581
%583 = load double, double* %582
%584 = fmul double %578, %583
%585 = load double*, double** %110
%586 = load i32, i32* %145
%587 = mul nsw i32 %586, 3
%588 = add nsw i32 %587, 2
%589 = sext i32 %588 to i64
%590 = getelementptr inbounds double, double* %585, i64 %589
store double %584, double* %590
%591 = load double, double* %155
%592 = load double, double* %146
%593 = fmul double %591, %592
%594 = load double*, double** %94
%595 = load i32, i32* %145
%596 = sext i32 %595 to i64
%597 = getelementptr inbounds double, double* %594, i64 %596
%598 = load double, double* %597
%599 = fmul double %593, %598
%600 = load double*, double** %111
%601 = load i32, i32* %145
%602 = mul nsw i32 %601, 3
%603 = add nsw i32 %602, 0
%604 = sext i32 %603 to i64
%605 = getelementptr inbounds double, double* %600, i64 %604
store double %599, double* %605
%606 = load double, double* %155
%607 = load double, double* %146
%608 = fmul double %606, %607
%609 = load double*, double** %94
%610 = load i32, i32* %145
%611 = sext i32 %610 to i64
%612 = getelementptr inbounds double, double* %609, i64 %611
%613 = load double, double* %612
%614 = fmul double %608, %613
%615 = load double*, double** %113
%616 = load i32, i32* %145
%617 = mul nsw i32 %616, 3
%618 = add nsw i32 %617, 2
%619 = sext i32 %618 to i64
%620 = getelementptr inbounds double, double* %615, i64 %619
store double %614, double* %620
%621 = load double, double* %155
%622 = load double, double* %146
%623 = fmul double %621, %622
%624 = load double*, double** %93
%625 = load i32, i32* %145
%626 = sext i32 %625 to i64
%627 = getelementptr inbounds double, double* %624, i64 %626
%628 = load double, double* %627
%629 = fmul double %623, %628
%630 = load double*, double** %112
%631 = load i32, i32* %145
%632 = mul nsw i32 %631, 3
%633 = add nsw i32 %632, 0
%634 = sext i32 %633 to i64
%635 = getelementptr inbounds double, double* %630, i64 %634
store double %629, double* %635
%636 = load double, double* %155
%637 = fmul double 2.000000e+00, %636
%638 = load double, double* %146
%639 = fmul double %637, %638
%640 = load double*, double** %94
%641 = load i32, i32* %145
%642 = sext i32 %641 to i64
%643 = getelementptr inbounds double, double* %640, i64 %642
%644 = load double, double* %643
%645 = fmul double %639, %644
%646 = load double*, double** %112
%647 = load i32, i32* %145
%648 = mul nsw i32 %647, 3
%649 = add nsw i32 %648, 1
%650 = sext i32 %649 to i64
%651 = getelementptr inbounds double, double* %646, i64 %650
store double %645, double* %651
%652 = load double, double* %155
%653 = load double, double* %146
%654 = fmul double %652, %653
%655 = load double*, double** %95
%656 = load i32, i32* %145
%657 = sext i32 %656 to i64
%658 = getelementptr inbounds double, double* %655, i64 %657
%659 = load double, double* %658
%660 = fmul double %654, %659
%661 = load double*, double** %112
%662 = load i32, i32* %145
%663 = mul nsw i32 %662, 3
%664 = add nsw i32 %663, 2
%665 = sext i32 %664 to i64
%666 = getelementptr inbounds double, double* %661, i64 %665
store double %660, double* %666
%667 = load double, double* %155
%668 = load double, double* %146
%669 = fmul double %667, %668
%670 = load double*, double** %95
%671 = load i32, i32* %145
%672 = sext i32 %671 to i64
%673 = getelementptr inbounds double, double* %670, i64 %672
%674 = load double, double* %673
%675 = fmul double %669, %674
%676 = load double*, double** %93
%677 = load i32, i32* %145
%678 = sext i32 %677 to i64
%679 = getelementptr inbounds double, double* %676, i64 %678
%680 = load double, double* %679
%681 = fmul double %675, %680
%682 = load double*, double** %114
%683 = load i32, i32* %145
%684 = mul nsw i32 %683, 3
%685 = add nsw i32 %684, 0
%686 = sext i32 %685 to i64
%687 = getelementptr inbounds double, double* %682, i64 %686
store double %681, double* %687
%688 = load double, double* %155
%689 = load double, double* %146
%690 = fmul double %688, %689
%691 = load double*, double** %95
%692 = load i32, i32* %145
%693 = sext i32 %692 to i64
%694 = getelementptr inbounds double, double* %691, i64 %693
%695 = load double, double* %694
%696 = fmul double %690, %695
%697 = load double*, double** %94
%698 = load i32, i32* %145
%699 = sext i32 %698 to i64
%700 = getelementptr inbounds double, double* %697, i64 %699
%701 = load double, double* %700
%702 = fmul double %696, %701
%703 = load double*, double** %114
%704 = load i32, i32* %145
%705 = mul nsw i32 %704, 3
%706 = add nsw i32 %705, 1
%707 = sext i32 %706 to i64
%708 = getelementptr inbounds double, double* %703, i64 %707
store double %702, double* %708
%709 = load double, double* %155
%710 = load double, double* %146
%711 = fmul double %709, %710
%712 = load double*, double** %95
%713 = load i32, i32* %145
%714 = sext i32 %713 to i64
%715 = getelementptr inbounds double, double* %712, i64 %714
%716 = load double, double* %715
%717 = fmul double %711, %716
%718 = load double*, double** %95
%719 = load i32, i32* %145
%720 = sext i32 %719 to i64
%721 = getelementptr inbounds double, double* %718, i64 %720
%722 = load double, double* %721
%723 = fmul double %717, %722
%724 = load double*, double** %114
%725 = load i32, i32* %145
%726 = mul nsw i32 %725, 3
%727 = add nsw i32 %726, 2
%728 = sext i32 %727 to i64
%729 = getelementptr inbounds double, double* %724, i64 %728
store double %723, double* %729
%730 = load double, double* %155
%731 = load double, double* %146
%732 = fmul double %730, %731
%733 = load double*, double** %95
%734 = load i32, i32* %145
%735 = sext i32 %734 to i64
%736 = getelementptr inbounds double, double* %733, i64 %735
%737 = load double, double* %736
%738 = fmul double %732, %737
%739 = load double*, double** %115
%740 = load i32, i32* %145
%741 = mul nsw i32 %740, 3
%742 = add nsw i32 %741, 0
%743 = sext i32 %742 to i64
%744 = getelementptr inbounds double, double* %739, i64 %743
store double %738, double* %744
%745 = load double, double* %155
%746 = load double, double* %146
%747 = fmul double %745, %746
%748 = load double*, double** %95
%749 = load i32, i32* %145
%750 = sext i32 %749 to i64
%751 = getelementptr inbounds double, double* %748, i64 %750
%752 = load double, double* %751
%753 = fmul double %747, %752
%754 = load double*, double** %116
%755 = load i32, i32* %145
%756 = mul nsw i32 %755, 3
%757 = add nsw i32 %756, 1
%758 = sext i32 %757 to i64
%759 = getelementptr inbounds double, double* %754, i64 %758
store double %753, double* %759
%760 = load double, double* %155
%761 = load double, double* %146
%762 = fmul double %760, %761
%763 = load double*, double** %93
%764 = load i32, i32* %145
%765 = sext i32 %764 to i64
%766 = getelementptr inbounds double, double* %763, i64 %765
%767 = load double, double* %766
%768 = fmul double %762, %767
%769 = load double*, double** %117
%770 = load i32, i32* %145
%771 = mul nsw i32 %770, 3
%772 = add nsw i32 %771, 0
%773 = sext i32 %772 to i64
%774 = getelementptr inbounds double, double* %769, i64 %773
store double %768, double* %774
%775 = load double, double* %155
%776 = load double, double* %146
%777 = fmul double %775, %776
%778 = load double*, double** %94
%779 = load i32, i32* %145
%780 = sext i32 %779 to i64
%781 = getelementptr inbounds double, double* %778, i64 %780
%782 = load double, double* %781
%783 = fmul double %777, %782
%784 = load double*, double** %117
%785 = load i32, i32* %145
%786 = mul nsw i32 %785, 3
%787 = add nsw i32 %786, 1
%788 = sext i32 %787 to i64
%789 = getelementptr inbounds double, double* %784, i64 %788
store double %783, double* %789
%790 = load double, double* %155
%791 = fmul double 2.000000e+00, %790
%792 = load double, double* %146
%793 = fmul double %791, %792
%794 = load double*, double** %95
%795 = load i32, i32* %145
%796 = sext i32 %795 to i64
%797 = getelementptr inbounds double, double* %794, i64 %796
%798 = load double, double* %797
%799 = fmul double %793, %798
%800 = load double*, double** %117
%801 = load i32, i32* %145
%802 = mul nsw i32 %801, 3
%803 = add nsw i32 %802, 2
%804 = sext i32 %803 to i64
%805 = getelementptr inbounds double, double* %800, i64 %804
store double %799, double* %805
%806 = load double, double* %155
%807 = fmul double 2.000000e+00, %806
%808 = load double, double* %148
%809 = fmul double %807, %808
%810 = load double*, double** %118
%811 = load i32, i32* %145
%812 = mul nsw i32 %811, 9
%813 = add nsw i32 %812, 0
%814 = sext i32 %813 to i64
%815 = getelementptr inbounds double, double* %810, i64 %814
store double %809, double* %815
%816 = load double, double* %155
%817 = load double, double* %148
%818 = fmul double %816, %817
%819 = load double*, double** %118
%820 = load i32, i32* %145
%821 = mul nsw i32 %820, 9
%822 = add nsw i32 %821, 4
%823 = sext i32 %822 to i64
%824 = getelementptr inbounds double, double* %819, i64 %823
store double %818, double* %824
%825 = load double, double* %155
%826 = load double, double* %148
%827 = fmul double %825, %826
%828 = load double*, double** %118
%829 = load i32, i32* %145
%830 = mul nsw i32 %829, 9
%831 = add nsw i32 %830, 8
%832 = sext i32 %831 to i64
%833 = getelementptr inbounds double, double* %828, i64 %832
store double %827, double* %833
%834 = load double, double* %155
%835 = load double, double* %148
%836 = fmul double %834, %835
%837 = load double*, double** %121
%838 = load i32, i32* %145
%839 = mul nsw i32 %838, 9
%840 = add nsw i32 %839, 3
%841 = sext i32 %840 to i64
%842 = getelementptr inbounds double, double* %837, i64 %841
store double %836, double* %842
%843 = load double, double* %155
%844 = load double, double* %148
%845 = fmul double %843, %844
%846 = load double*, double** %122
%847 = load i32, i32* %145
%848 = mul nsw i32 %847, 9
%849 = add nsw i32 %848, 6
%850 = sext i32 %849 to i64
%851 = getelementptr inbounds double, double* %846, i64 %850
store double %845, double* %851
%852 = load double, double* %155
%853 = load double, double* %148
%854 = fmul double %852, %853
%855 = load double*, double** %119
%856 = load i32, i32* %145
%857 = mul nsw i32 %856, 9
%858 = add nsw i32 %857, 0
%859 = sext i32 %858 to i64
%860 = getelementptr inbounds double, double* %855, i64 %859
store double %854, double* %860
%861 = load double, double* %155
%862 = fmul double 2.000000e+00, %861
%863 = load double, double* %148
%864 = fmul double %862, %863
%865 = load double*, double** %119
%866 = load i32, i32* %145
%867 = mul nsw i32 %866, 9
%868 = add nsw i32 %867, 4
%869 = sext i32 %868 to i64
%870 = getelementptr inbounds double, double* %865, i64 %869
store double %864, double* %870
%871 = load double, double* %155
%872 = load double, double* %148
%873 = fmul double %871, %872
%874 = load double*, double** %119
%875 = load i32, i32* %145
%876 = mul nsw i32 %875, 9
%877 = add nsw i32 %876, 8
%878 = sext i32 %877 to i64
%879 = getelementptr inbounds double, double* %874, i64 %878
store double %873, double* %879
%880 = load double, double* %155
%881 = load double, double* %148
%882 = fmul double %880, %881
%883 = load double*, double** %123
%884 = load i32, i32* %145
%885 = mul nsw i32 %884, 9
%886 = add nsw i32 %885, 1
%887 = sext i32 %886 to i64
%888 = getelementptr inbounds double, double* %883, i64 %887
store double %882, double* %888
%889 = load double, double* %155
%890 = load double, double* %148
%891 = fmul double %889, %890
%892 = load double*, double** %124
%893 = load i32, i32* %145
%894 = mul nsw i32 %893, 9
%895 = add nsw i32 %894, 7
%896 = sext i32 %895 to i64
%897 = getelementptr inbounds double, double* %892, i64 %896
store double %891, double* %897
%898 = load double, double* %155
%899 = load double, double* %148
%900 = fmul double %898, %899
%901 = load double*, double** %120
%902 = load i32, i32* %145
%903 = mul nsw i32 %902, 9
%904 = add nsw i32 %903, 0
%905 = sext i32 %904 to i64
%906 = getelementptr inbounds double, double* %901, i64 %905
store double %900, double* %906
%907 = load double, double* %155
%908 = load double, double* %148
%909 = fmul double %907, %908
%910 = load double*, double** %120
%911 = load i32, i32* %145
%912 = mul nsw i32 %911, 9
%913 = add nsw i32 %912, 4
%914 = sext i32 %913 to i64
%915 = getelementptr inbounds double, double* %910, i64 %914
store double %909, double* %915
%916 = load double, double* %155
%917 = fmul double 2.000000e+00, %916
%918 = load double, double* %148
%919 = fmul double %917, %918
%920 = load double*, double** %120
%921 = load i32, i32* %145
%922 = mul nsw i32 %921, 9
%923 = add nsw i32 %922, 8
%924 = sext i32 %923 to i64
%925 = getelementptr inbounds double, double* %920, i64 %924
store double %919, double* %925
%926 = load double, double* %155
%927 = load double, double* %148
%928 = fmul double %926, %927
%929 = load double*, double** %125
%930 = load i32, i32* %145
%931 = mul nsw i32 %930, 9
%932 = add nsw i32 %931, 2
%933 = sext i32 %932 to i64
%934 = getelementptr inbounds double, double* %929, i64 %933
store double %928, double* %934
%935 = load double, double* %155
%936 = load double, double* %148
%937 = fmul double %935, %936
%938 = load double*, double** %126
%939 = load i32, i32* %145
%940 = mul nsw i32 %939, 9
%941 = add nsw i32 %940, 5
%942 = sext i32 %941 to i64
%943 = getelementptr inbounds double, double* %938, i64 %942
store double %937, double* %943
%944 = load double*, double** %87
%945 = load i32, i32* %145
%946 = mul nsw i32 %945, 3
%947 = add nsw i32 %946, 0
%948 = sext i32 %947 to i64
%949 = getelementptr inbounds double, double* %944, i64 %948
%950 = load double, double* %949
%951 = load double*, double** %87
%952 = load i32, i32* %145
%953 = mul nsw i32 %952, 3
%954 = add nsw i32 %953, 0
%955 = sext i32 %954 to i64
%956 = getelementptr inbounds double, double* %951, i64 %955
%957 = load double, double* %956
%958 = load double*, double** %87
%959 = load i32, i32* %145
%960 = mul nsw i32 %959, 3
%961 = add nsw i32 %960, 1
%962 = sext i32 %961 to i64
%963 = getelementptr inbounds double, double* %958, i64 %962
%964 = load double, double* %963
%965 = load double*, double** %87
%966 = load i32, i32* %145
%967 = mul nsw i32 %966, 3
%968 = add nsw i32 %967, 1
%969 = sext i32 %968 to i64
%970 = getelementptr inbounds double, double* %965, i64 %969
%971 = load double, double* %970
%972 = fmul double %964, %971
%973 = call double @llvm.fmuladd.f64(double %950, double %957, double %972)
%974 = load double*, double** %87
%975 = load i32, i32* %145
%976 = mul nsw i32 %975, 3
%977 = add nsw i32 %976, 2
%978 = sext i32 %977 to i64
%979 = getelementptr inbounds double, double* %974, i64 %978
%980 = load double, double* %979
%981 = load double*, double** %87
%982 = load i32, i32* %145
%983 = mul nsw i32 %982, 3
%984 = add nsw i32 %983, 2
%985 = sext i32 %984 to i64
%986 = getelementptr inbounds double, double* %981, i64 %985
%987 = load double, double* %986
%988 = call double @llvm.fmuladd.f64(double %980, double %987, double %973)
%989 = call double @sqrt(double %988)
store double %989, double* %157
%990 = load double, double* %155
%991 = fneg double %990
%992 = load double, double* %146
%993 = fmul double %991, %992
%994 = load double*, double** %85
%995 = getelementptr inbounds double, double* %994, i64 0
%996 = load double, double* %995
%997 = load double, double* %155
%998 = load double, double* %152
%999 = fmul double %997, %998
%1000 = load double, double* %78
%1001 = fmul double %999, %1000
%1002 = load double*, double** %88
%1003 = load i32, i32* %145
%1004 = sext i32 %1003 to i64
%1005 = getelementptr inbounds double, double* %1002, i64 %1004
%1006 = load double, double* %1005
%1007 = fmul double %1001, %1006
%1008 = load double*, double** %87
%1009 = load i32, i32* %145
%1010 = mul nsw i32 %1009, 3
%1011 = add nsw i32 %1010, 0
%1012 = sext i32 %1011 to i64
%1013 = getelementptr inbounds double, double* %1008, i64 %1012
%1014 = load double, double* %1013
%1015 = fmul double %1007, %1014
%1016 = load double, double* %157
%1017 = fdiv double %1015, %1016
%1018 = fneg double %1017
%1019 = call double @llvm.fmuladd.f64(double %993, double %996, double %1018)
%1020 = load double, double* %74
%1021 = load double, double* %146
%1022 = fmul double %1020, %1021
%1023 = load double, double* %156
%1024 = fmul double %1022, %1023
%1025 = load double*, double** %93
%1026 = load i32, i32* %145
%1027 = sext i32 %1026 to i64
%1028 = getelementptr inbounds double, double* %1025, i64 %1027
%1029 = load double, double* %1028
%1030 = fsub double %1029, 0.000000e+00
%1031 = call double @llvm.fmuladd.f64(double %1024, double %1030, double %1019)
%1032 = load double, double* %75
%1033 = load double, double* %146
%1034 = fmul double %1032, %1033
%1035 = load double, double* %155
%1036 = fsub double 1.000000e+00, %1035
%1037 = fmul double %1034, %1036
%1038 = load double*, double** %93
%1039 = load i32, i32* %145
%1040 = sext i32 %1039 to i64
%1041 = getelementptr inbounds double, double* %1038, i64 %1040
%1042 = load double, double* %1041
%1043 = fsub double %1042, 0.000000e+00
%1044 = call double @llvm.fmuladd.f64(double %1037, double %1043, double %1031)
%1045 = load double*, double** %127
%1046 = load i32, i32* %145
%1047 = sext i32 %1046 to i64
%1048 = getelementptr inbounds double, double* %1045, i64 %1047
store double %1044, double* %1048
%1049 = load double, double* %74
%1050 = load double, double* %146
%1051 = fmul double %1049, %1050
%1052 = load double, double* %156
%1053 = load double, double* %75
%1054 = load double, double* %146
%1055 = fmul double %1053, %1054
%1056 = load double, double* %155
%1057 = fsub double 1.000000e+00, %1056
%1058 = fmul double %1055, %1057
%1059 = call double @llvm.fmuladd.f64(double %1051, double %1052, double %1058)
%1060 = load double*, double** %128
%1061 = load i32, i32* %145
%1062 = sext i32 %1061 to i64
%1063 = getelementptr inbounds double, double* %1060, i64 %1062
store double %1059, double* %1063
%1064 = load double*, double** %129
%1065 = load i32, i32* %145
%1066 = sext i32 %1065 to i64
%1067 = getelementptr inbounds double, double* %1064, i64 %1066
store double 0.000000e+00, double* %1067
%1068 = load double*, double** %130
%1069 = load i32, i32* %145
%1070 = sext i32 %1069 to i64
%1071 = getelementptr inbounds double, double* %1068, i64 %1070
store double 0.000000e+00, double* %1071
%1072 = load double, double* %155
%1073 = fneg double %1072
%1074 = load double, double* %146
%1075 = fmul double %1073, %1074
%1076 = load double*, double** %85
%1077 = getelementptr inbounds double, double* %1076, i64 1
%1078 = load double, double* %1077
%1079 = load double, double* %155
%1080 = load double, double* %152
%1081 = fmul double %1079, %1080
%1082 = load double, double* %78
%1083 = fmul double %1081, %1082
%1084 = load double*, double** %88
%1085 = load i32, i32* %145
%1086 = sext i32 %1085 to i64
%1087 = getelementptr inbounds double, double* %1084, i64 %1086
%1088 = load double, double* %1087
%1089 = fmul double %1083, %1088
%1090 = load double*, double** %87
%1091 = load i32, i32* %145
%1092 = mul nsw i32 %1091, 3
%1093 = add nsw i32 %1092, 1
%1094 = sext i32 %1093 to i64
%1095 = getelementptr inbounds double, double* %1090, i64 %1094
%1096 = load double, double* %1095
%1097 = fmul double %1089, %1096
%1098 = load double, double* %157
%1099 = fdiv double %1097, %1098
%1100 = fneg double %1099
%1101 = call double @llvm.fmuladd.f64(double %1075, double %1078, double %1100)
%1102 = load double, double* %74
%1103 = load double, double* %146
%1104 = fmul double %1102, %1103
%1105 = load double, double* %156
%1106 = fmul double %1104, %1105
%1107 = load double*, double** %94
%1108 = load i32, i32* %145
%1109 = sext i32 %1108 to i64
%1110 = getelementptr inbounds double, double* %1107, i64 %1109
%1111 = load double, double* %1110
%1112 = fsub double %1111, 0.000000e+00
%1113 = call double @llvm.fmuladd.f64(double %1106, double %1112, double %1101)
%1114 = load double, double* %75
%1115 = load double, double* %146
%1116 = fmul double %1114, %1115
%1117 = load double, double* %155
%1118 = fsub double 1.000000e+00, %1117
%1119 = fmul double %1116, %1118
%1120 = load double*, double** %94
%1121 = load i32, i32* %145
%1122 = sext i32 %1121 to i64
%1123 = getelementptr inbounds double, double* %1120, i64 %1122
%1124 = load double, double* %1123
%1125 = fsub double %1124, 0.000000e+00
%1126 = call double @llvm.fmuladd.f64(double %1119, double %1125, double %1113)
%1127 = load double*, double** %131
%1128 = load i32, i32* %145
%1129 = sext i32 %1128 to i64
%1130 = getelementptr inbounds double, double* %1127, i64 %1129
store double %1126, double* %1130
%1131 = load double*, double** %132
%1132 = load i32, i32* %145
%1133 = sext i32 %1132 to i64
%1134 = getelementptr inbounds double, double* %1131, i64 %1133
store double 0.000000e+00, double* %1134
%1135 = load double, double* %74
%1136 = load double, double* %146
%1137 = fmul double %1135, %1136
%1138 = load double, double* %156
%1139 = load double, double* %75
%1140 = load double, double* %146
%1141 = fmul double %1139, %1140
%1142 = load double, double* %155
%1143 = fsub double 1.000000e+00, %1142
%1144 = fmul double %1141, %1143
%1145 = call double @llvm.fmuladd.f64(double %1137, double %1138, double %1144)
%1146 = load double*, double** %133
%1147 = load i32, i32* %145
%1148 = sext i32 %1147 to i64
%1149 = getelementptr inbounds double, double* %1146, i64 %1148
store double %1145, double* %1149
%1150 = load double*, double** %134
%1151 = load i32, i32* %145
%1152 = sext i32 %1151 to i64
%1153 = getelementptr inbounds double, double* %1150, i64 %1152
store double 0.000000e+00, double* %1153
%1154 = load double, double* %155
%1155 = fneg double %1154
%1156 = load double, double* %146
%1157 = fmul double %1155, %1156
%1158 = load double*, double** %85
%1159 = getelementptr inbounds double, double* %1158, i64 2
%1160 = load double, double* %1159
%1161 = load double, double* %155
%1162 = load double, double* %152
%1163 = fmul double %1161, %1162
%1164 = load double, double* %78
%1165 = fmul double %1163, %1164
%1166 = load double*, double** %88
%1167 = load i32, i32* %145
%1168 = sext i32 %1167 to i64
%1169 = getelementptr inbounds double, double* %1166, i64 %1168
%1170 = load double, double* %1169
%1171 = fmul double %1165, %1170
%1172 = load double*, double** %87
%1173 = load i32, i32* %145
%1174 = mul nsw i32 %1173, 3
%1175 = add nsw i32 %1174, 2
%1176 = sext i32 %1175 to i64
%1177 = getelementptr inbounds double, double* %1172, i64 %1176
%1178 = load double, double* %1177
%1179 = fmul double %1171, %1178
%1180 = load double, double* %157
%1181 = fdiv double %1179, %1180
%1182 = fneg double %1181
%1183 = call double @llvm.fmuladd.f64(double %1157, double %1160, double %1182)
%1184 = load double, double* %74
%1185 = load double, double* %146
%1186 = fmul double %1184, %1185
%1187 = load double, double* %156
%1188 = fmul double %1186, %1187
%1189 = load double*, double** %95
%1190 = load i32, i32* %145
%1191 = sext i32 %1190 to i64
%1192 = getelementptr inbounds double, double* %1189, i64 %1191
%1193 = load double, double* %1192
%1194 = fsub double %1193, 0.000000e+00
%1195 = call double @llvm.fmuladd.f64(double %1188, double %1194, double %1183)
%1196 = load double, double* %75
%1197 = load double, double* %146
%1198 = fmul double %1196, %1197
%1199 = load double, double* %155
%1200 = fsub double 1.000000e+00, %1199
%1201 = fmul double %1198, %1200
%1202 = load double*, double** %95
%1203 = load i32, i32* %145
%1204 = sext i32 %1203 to i64
%1205 = getelementptr inbounds double, double* %1202, i64 %1204
%1206 = load double, double* %1205
%1207 = fsub double %1206, 0.000000e+00
%1208 = call double @llvm.fmuladd.f64(double %1201, double %1207, double %1195)
%1209 = load double*, double** %135
%1210 = load i32, i32* %145
%1211 = sext i32 %1210 to i64
%1212 = getelementptr inbounds double, double* %1209, i64 %1211
store double %1208, double* %1212
%1213 = load double*, double** %136
%1214 = load i32, i32* %145
%1215 = sext i32 %1214 to i64
%1216 = getelementptr inbounds double, double* %1213, i64 %1215
store double 0.000000e+00, double* %1216
%1217 = load double*, double** %137
%1218 = load i32, i32* %145
%1219 = sext i32 %1218 to i64
%1220 = getelementptr inbounds double, double* %1217, i64 %1219
store double 0.000000e+00, double* %1220
%1221 = load double, double* %74
%1222 = load double, double* %146
%1223 = fmul double %1221, %1222
%1224 = load double, double* %156
%1225 = load double, double* %75
%1226 = load double, double* %146
%1227 = fmul double %1225, %1226
%1228 = load double, double* %155
%1229 = fsub double 1.000000e+00, %1228
%1230 = fmul double %1227, %1229
%1231 = call double @llvm.fmuladd.f64(double %1223, double %1224, double %1230)
%1232 = load double*, double** %138
%1233 = load i32, i32* %145
%1234 = sext i32 %1233 to i64
%1235 = getelementptr inbounds double, double* %1232, i64 %1234
store double %1231, double* %1235
%1236 = load double*, double** %92
%1237 = load i32, i32* %145
%1238 = mul nsw i32 %1237, 3
%1239 = add nsw i32 %1238, 0
%1240 = sext i32 %1239 to i64
%1241 = getelementptr inbounds double, double* %1236, i64 %1240
%1242 = load double, double* %1241
%1243 = load double*, double** %139
%1244 = load i32, i32* %145
%1245 = sext i32 %1244 to i64
%1246 = getelementptr inbounds double, double* %1243, i64 %1245
store double %1242, double* %1246
%1247 = load double*, double** %140
%1248 = load i32, i32* %145
%1249 = mul nsw i32 %1248, 3
%1250 = add nsw i32 %1249, 0
%1251 = sext i32 %1250 to i64
%1252 = getelementptr inbounds double, double* %1247, i64 %1251
store double 1.000000e+00, double* %1252
%1253 = load double*, double** %92
%1254 = load i32, i32* %145
%1255 = mul nsw i32 %1254, 3
%1256 = add nsw i32 %1255, 1
%1257 = sext i32 %1256 to i64
%1258 = getelementptr inbounds double, double* %1253, i64 %1257
%1259 = load double, double* %1258
%1260 = load double*, double** %141
%1261 = load i32, i32* %145
%1262 = sext i32 %1261 to i64
%1263 = getelementptr inbounds double, double* %1260, i64 %1262
store double %1259, double* %1263
%1264 = load double*, double** %142
%1265 = load i32, i32* %145
%1266 = mul nsw i32 %1265, 3
%1267 = add nsw i32 %1266, 1
%1268 = sext i32 %1267 to i64
%1269 = getelementptr inbounds double, double* %1264, i64 %1268
store double 1.000000e+00, double* %1269
%1270 = load double*, double** %92
%1271 = load i32, i32* %145
%1272 = mul nsw i32 %1271, 3
%1273 = add nsw i32 %1272, 2
%1274 = sext i32 %1273 to i64
%1275 = getelementptr inbounds double, double* %1270, i64 %1274
%1276 = load double, double* %1275
%1277 = load double*, double** %143
%1278 = load i32, i32* %145
%1279 = sext i32 %1278 to i64
%1280 = getelementptr inbounds double, double* %1277, i64 %1279
store double %1276, double* %1280
%1281 = load double*, double** %144
%1282 = load i32, i32* %145
%1283 = mul nsw i32 %1282, 3
%1284 = add nsw i32 %1283, 2
%1285 = sext i32 %1284 to i64
%1286 = getelementptr inbounds double, double* %1281, i64 %1285
store double 1.000000e+00, double* %1286
br label %1287
1287: ; preds = %163
%1288 = load i32, i32* %145
%1289 = add nsw i32 %1288, 1
store i32 %1289, i32* %145
br label %159
1290: ; preds = %159
ret void
}

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