void TwophaseNavierStokes_LS_SO_3D_Evaluate(
    const int nPoints, const double eps, const double rho_0, const double nu_0,
    const double rho_1, const double nu_1, const double *g, const double *phi,
    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_u_source, double *mom_v_source,
    double *mom_w_source, 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, H;
  for (k = 0; k < nPoints; k++) {
    H = smoothedHeaviside(eps, phi[k]);
    rho = rho_0 * (1.0 - H) + rho_1 * H;
    nu = nu_0 * (1.0 - H) + nu_1 * H;
    mom_u_acc[k] = u[k];
    dmom_u_acc_u[k] = 1.0;
    mom_v_acc[k] = v[k];
    dmom_v_acc_v[k] = 1.0;
    mom_w_acc[k] = w[k];
    dmom_w_acc_w[k] = 1.0;
    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] = u[k] * u[k];
    mom_u_adv[k * 3 + 1] = u[k] * v[k];
    mom_u_adv[k * 3 + 2] = u[k] * w[k];
    dmom_u_adv_u[k * 3 + 0] = 2.0 * u[k];
    dmom_u_adv_u[k * 3 + 1] = v[k];
    dmom_u_adv_u[k * 3 + 2] = w[k];
    dmom_u_adv_v[k * 3 + 1] = u[k];
    dmom_u_adv_w[k * 3 + 2] = u[k];
    mom_v_adv[k * 3 + 0] = v[k] * u[k];
    mom_v_adv[k * 3 + 1] = v[k] * v[k];
    mom_v_adv[k * 3 + 2] = v[k] * w[k];
    dmom_v_adv_u[k * 3 + 0] = v[k];
    dmom_v_adv_v[k * 3 + 0] = u[k];
    dmom_v_adv_v[k * 3 + 1] = 2.0 * v[k];
    dmom_v_adv_v[k * 3 + 2] = w[k];
    dmom_v_adv_w[k * 3 + 2] = v[k];
    mom_w_adv[k * 3 + 0] = w[k] * u[k];
    mom_w_adv[k * 3 + 1] = w[k] * v[k];
    mom_w_adv[k * 3 + 2] = w[k] * w[k];
    dmom_w_adv_u[k * 3 + 0] = w[k];
    dmom_w_adv_v[k * 3 + 0] = w[k];
    dmom_w_adv_w[k * 3 + 0] = u[k];
    dmom_w_adv_w[k * 3 + 1] = v[k];
    dmom_w_adv_w[k * 3 + 2] = 2.0 * w[k];
    mom_u_diff_ten[k * 9 + 0] = nu;
    mom_u_diff_ten[k * 9 + 4] = nu;
    mom_u_diff_ten[k * 9 + 8] = nu;
    mom_v_diff_ten[k * 9 + 0] = nu;
    mom_v_diff_ten[k * 9 + 4] = nu;
    mom_v_diff_ten[k * 9 + 8] = nu;
    mom_w_diff_ten[k * 9 + 0] = nu;
    mom_w_diff_ten[k * 9 + 4] = nu;
    mom_w_diff_ten[k * 9 + 8] = nu;
    mom_u_source[k] = -g[0];
    mom_v_source[k] = -g[1];
    mom_w_source[k] = -g[2];
    mom_u_ham[k] = grad_p[k * 3 + 0] / rho;
    dmom_u_ham_grad_p[k * 3 + 0] = 1.0 / rho;
    mom_v_ham[k] = grad_p[k * 3 + 1] / rho;
    dmom_v_ham_grad_p[k * 3 + 1] = 1.0 / rho;
    mom_w_ham[k] = grad_p[k * 3 + 2] / rho;
    dmom_w_ham_grad_p[k * 3 + 2] = 1.0 / rho;
  }
}


x86 assembly (clang, -O0):
<TwophaseNavierStokes_LS_SO_3D_Evaluate>:
push   %rbp
mov    %rsp,%rbp
sub    $0x80,%rsp
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
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %edi,-0x4(%rbp)
movsd  %xmm0,-0x10(%rbp)
movsd  %xmm1,-0x18(%rbp)
movsd  %xmm2,-0x20(%rbp)
movsd  %xmm3,-0x28(%rbp)
movsd  %xmm4,-0x30(%rbp)
mov    %rsi,-0x38(%rbp)
mov    %rdx,-0x40(%rbp)
mov    %rcx,-0x48(%rbp)
mov    %r8,-0x50(%rbp)
mov    %r9,-0x58(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    1a16 <TwophaseNavierStokes_LS_SO_3D_Evaluate+0x906>
movsd  -0x10(%rbp),%xmm0
mov    -0x40(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    $0x2,%al
call   1030 <smoothedHeaviside@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  0xda1(%rip),%xmm2
subsd  -0x78(%rbp),%xmm2
movsd  -0x28(%rbp),%xmm1
mulsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x20(%rbp),%xmm0
movsd  0xd78(%rip),%xmm2
subsd  -0x78(%rbp),%xmm2
movsd  -0x30(%rbp),%xmm1
mulsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x58(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x20(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  0xd32(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    0x10(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x30(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x38(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  0xd03(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    0x18(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x40(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x48(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  0xcd4(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x58(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x50(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x10(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x50(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x18(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x50(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x58(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  0xc59(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    0x60(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  0xc3e(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    0x68(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  0xc23(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x58(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x58(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x70(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x58(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x70(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x58(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x18(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x70(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x58(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  0xb8f(%rip),%xmm0
mulsd  (%rax,%rcx,8),%xmm0
mov    0x78(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x10(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x78(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x18(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x78(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x58(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x80(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x58(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x88(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x10(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x58(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x90(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x10(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x90(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x10(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x18(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x90(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x10(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x98(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x58(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0xa0(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x10(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  0xa0b(%rip),%xmm0
mulsd  (%rax,%rcx,8),%xmm0
mov    0xa0(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x18(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0xa0(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x10(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0xa8(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x18(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x58(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xb0(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x18(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xb0(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x18(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x18(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xb0(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x18(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0xb8(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x18(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0xc0(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x58(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0xc8(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x10(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0xc8(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x18(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  0x87e(%rip),%xmm0
mulsd  (%rax,%rcx,8),%xmm0
mov    0xc8(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x70(%rbp),%xmm0
mov    0xd0(%rbp),%rax
imul   $0x9,-0x5c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x70(%rbp),%xmm0
mov    0xd0(%rbp),%rax
imul   $0x9,-0x5c(%rbp),%ecx
add    $0x4,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x70(%rbp),%xmm0
mov    0xd0(%rbp),%rax
imul   $0x9,-0x5c(%rbp),%ecx
add    $0x8,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x70(%rbp),%xmm0
mov    0xd8(%rbp),%rax
imul   $0x9,-0x5c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x70(%rbp),%xmm0
mov    0xd8(%rbp),%rax
imul   $0x9,-0x5c(%rbp),%ecx
add    $0x4,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x70(%rbp),%xmm0
mov    0xd8(%rbp),%rax
imul   $0x9,-0x5c(%rbp),%ecx
add    $0x8,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x70(%rbp),%xmm0
mov    0xe0(%rbp),%rax
imul   $0x9,-0x5c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x70(%rbp),%xmm0
mov    0xe0(%rbp),%rax
imul   $0x9,-0x5c(%rbp),%ecx
add    $0x4,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x70(%rbp),%xmm0
mov    0xe0(%rbp),%rax
imul   $0x9,-0x5c(%rbp),%ecx
add    $0x8,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0xe8(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0xf0(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0xf8(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x50(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0x68(%rbp),%xmm0
mov    0x100(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x6a9(%rip),%xmm0
divsd  -0x68(%rbp),%xmm0
mov    0x108(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x50(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0x68(%rbp),%xmm0
mov    0x110(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x65e(%rip),%xmm0
divsd  -0x68(%rbp),%xmm0
mov    0x118(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x50(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0x68(%rbp),%xmm0
mov    0x120(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  0x613(%rip),%xmm0
divsd  -0x68(%rbp),%xmm0
mov    0x128(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1224 <TwophaseNavierStokes_LS_SO_3D_Evaluate+0x114>
add    $0x80,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<TwophaseNavierStokes_LS_SO_3D_Evaluate>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x48,%rsp
test   %edi,%edi
jle    1573 <TwophaseNavierStokes_LS_SO_3D_Evaluate+0x463>
mov    %r9,%r13
movapd %xmm4,%xmm5
mov    %edi,%eax
shl    $0x3,%rax
mov    %rax,0x8(%rsp)
mov    0x80(%rsp),%r15
xor    %ebp,%ebp
xor    %r12d,%r12d
xor    %r14d,%r14d
mov    %rdx,0x40(%rsp)
mov    %rsi,0x38(%rsp)
movsd  %xmm4,0x30(%rsp)
movsd  %xmm3,0x28(%rsp)
movsd  %xmm2,0x20(%rsp)
movsd  %xmm1,0x18(%rsp)
movsd  %xmm0,0x10(%rsp)
movsd  (%rdx,%rbp,1),%xmm1
movsd  0x10(%rsp),%xmm0
mov    $0x2,%al
mov    %r8,%rbx
call   1030 <smoothedHeaviside@plt>
movsd  0x18(%rsp),%xmm0
movsd  0x20(%rsp),%xmm2
movsd  0x30(%rsp),%xmm5
mov    %rbx,%r8
xorps  %xmm3,%xmm3
cvtsi2sd %eax,%xmm3
movsd  0xe56(%rip),%xmm8
movapd %xmm8,%xmm7
subsd  %xmm3,%xmm7
movapd %xmm3,%xmm6
movsd  0x0(%r13,%rbp,1),%xmm4
mov    0x90(%rsp),%rax
movsd  %xmm4,(%rax,%rbp,1)
mov    0x98(%rsp),%rax
movabs $0x3ff0000000000000,%rdi
mov    %rdi,(%rax,%rbp,1)
movsd  (%r15,%rbp,1),%xmm4
mov    0xa0(%rsp),%rax
movsd  %xmm4,(%rax,%rbp,1)
mov    0xa8(%rsp),%rax
mov    %rdi,(%rax,%rbp,1)
mov    0x88(%rsp),%rsi
movsd  (%rsi,%rbp,1),%xmm4
mov    0xb0(%rsp),%rax
movsd  %xmm4,(%rax,%rbp,1)
mov    0xb8(%rsp),%rax
mov    %rdi,(%rax,%rbp,1)
movsd  0x0(%r13,%rbp,1),%xmm4
mov    %r12d,%eax
mov    0xc0(%rsp),%rcx
movsd  %xmm4,(%rcx,%rax,8)
movsd  (%r15,%rbp,1),%xmm4
lea    0x1(%r12),%r9d
movsd  %xmm4,(%rcx,%r9,8)
movsd  (%rsi,%rbp,1),%xmm4
lea    0x2(%r12),%edx
movsd  %xmm4,(%rcx,%rdx,8)
mov    0xc8(%rsp),%rcx
mov    %rdi,(%rcx,%rax,8)
mov    0xd0(%rsp),%rcx
mov    %rdi,(%rcx,%r9,8)
mov    0xd8(%rsp),%rcx
mov    %rdi,(%rcx,%rdx,8)
movsd  0x0(%r13,%rbp,1),%xmm4
mulsd  %xmm4,%xmm4
mov    0xe0(%rsp),%rcx
movsd  %xmm4,(%rcx,%rax,8)
movsd  0x0(%r13,%rbp,1),%xmm4
mulsd  (%r15,%rbp,1),%xmm4
movsd  %xmm4,(%rcx,%r9,8)
movsd  0x0(%r13,%rbp,1),%xmm4
mulsd  (%rsi,%rbp,1),%xmm4
mulsd  %xmm7,%xmm0
movsd  %xmm4,(%rcx,%rdx,8)
movsd  0x0(%r13,%rbp,1),%xmm4
addsd  %xmm4,%xmm4
mov    0xe8(%rsp),%rcx
movsd  %xmm4,(%rcx,%rax,8)
movsd  (%r15,%rbp,1),%xmm4
movsd  %xmm4,(%rcx,%r9,8)
movsd  (%rsi,%rbp,1),%xmm4
movsd  %xmm4,(%rcx,%rdx,8)
movsd  0x0(%r13,%rbp,1),%xmm4
mov    0xf0(%rsp),%rcx
movsd  %xmm4,(%rcx,%r9,8)
movsd  0x0(%r13,%rbp,1),%xmm4
mov    0xf8(%rsp),%rcx
movsd  %xmm4,(%rcx,%rdx,8)
movsd  (%r15,%rbp,1),%xmm4
mulsd  0x0(%r13,%rbp,1),%xmm4
mulsd  %xmm5,%xmm3
mov    0x100(%rsp),%rcx
movsd  %xmm4,(%rcx,%rax,8)
movsd  (%r15,%rbp,1),%xmm4
mulsd  %xmm4,%xmm4
movsd  %xmm4,(%rcx,%r9,8)
movsd  (%r15,%rbp,1),%xmm4
mulsd  (%rsi,%rbp,1),%xmm4
mulsd  %xmm2,%xmm7
movsd  %xmm4,(%rcx,%rdx,8)
movsd  (%r15,%rbp,1),%xmm4
mov    0x108(%rsp),%rcx
movsd  %xmm4,(%rcx,%rax,8)
movsd  0x0(%r13,%rbp,1),%xmm4
mov    0x110(%rsp),%rcx
movsd  %xmm4,(%rcx,%rax,8)
movsd  (%r15,%rbp,1),%xmm4
addsd  %xmm4,%xmm4
movsd  %xmm4,(%rcx,%r9,8)
movsd  (%rsi,%rbp,1),%xmm4
movsd  %xmm4,(%rcx,%rdx,8)
movsd  (%r15,%rbp,1),%xmm4
mov    0x118(%rsp),%rcx
movsd  %xmm4,(%rcx,%rdx,8)
movsd  (%rsi,%rbp,1),%xmm4
mulsd  0x0(%r13,%rbp,1),%xmm4
mov    0x120(%rsp),%rcx
movsd  %xmm4,(%rcx,%rax,8)
movsd  (%rsi,%rbp,1),%xmm4
mulsd  (%r15,%rbp,1),%xmm4
addsd  %xmm3,%xmm7
movsd  %xmm4,(%rcx,%r9,8)
movsd  (%rsi,%rbp,1),%xmm3
mulsd  %xmm3,%xmm3
movsd  %xmm3,(%rcx,%rdx,8)
movsd  (%rsi,%rbp,1),%xmm3
mov    0x128(%rsp),%rcx
movsd  %xmm3,(%rcx,%rax,8)
movsd  (%rsi,%rbp,1),%xmm3
mov    0x130(%rsp),%rcx
movsd  %xmm3,(%rcx,%rax,8)
movsd  0x0(%r13,%rbp,1),%xmm3
mov    0x138(%rsp),%rcx
movsd  %xmm3,(%rcx,%rax,8)
movsd  (%r15,%rbp,1),%xmm3
movsd  %xmm3,(%rcx,%r9,8)
movsd  (%rsi,%rbp,1),%xmm3
addsd  %xmm3,%xmm3
movsd  %xmm3,(%rcx,%rdx,8)
movsd  0x28(%rsp),%xmm3
mov    %r14d,%esi
mov    0x140(%rsp),%rcx
movsd  %xmm7,(%rcx,%rsi,8)
lea    0x4(%r14),%edi
movsd  %xmm7,(%rcx,%rdi,8)
lea    0x8(%r14),%ebx
movsd  %xmm7,(%rcx,%rbx,8)
mov    0x148(%rsp),%rcx
movsd  %xmm7,(%rcx,%rsi,8)
movsd  %xmm7,(%rcx,%rdi,8)
movsd  %xmm7,(%rcx,%rbx,8)
mov    0x150(%rsp),%rcx
movsd  %xmm7,(%rcx,%rsi,8)
mov    0x38(%rsp),%rsi
movsd  %xmm7,(%rcx,%rdi,8)
movsd  %xmm7,(%rcx,%rbx,8)
mulsd  %xmm3,%xmm6
addsd  %xmm6,%xmm0
movsd  (%rsi),%xmm4
movaps 0xb66(%rip),%xmm6
xorps  %xmm6,%xmm4
mov    0x158(%rsp),%rdi
movlps %xmm4,(%rdi,%rbp,1)
movsd  0x8(%rsi),%xmm4
xorps  %xmm6,%xmm4
mov    0x160(%rsp),%rdi
movlps %xmm4,(%rdi,%rbp,1)
movsd  0x10(%rsi),%xmm4
xorps  %xmm6,%xmm4
mov    0x168(%rsp),%rdi
movlps %xmm4,(%rdi,%rbp,1)
movsd  (%r8,%rax,8),%xmm4
divsd  %xmm0,%xmm4
mov    0x170(%rsp),%rdi
movsd  %xmm4,(%rdi,%rbp,1)
movapd %xmm8,%xmm6
divsd  %xmm0,%xmm6
mov    0x178(%rsp),%rdi
movsd  %xmm6,(%rdi,%rax,8)
movsd  (%r8,%r9,8),%xmm4
divsd  %xmm0,%xmm4
mov    0x180(%rsp),%rax
movsd  %xmm4,(%rax,%rbp,1)
mov    0x188(%rsp),%rax
movsd  %xmm6,(%rax,%r9,8)
movsd  (%r8,%rdx,8),%xmm4
divsd  %xmm0,%xmm4
mov    0x190(%rsp),%rax
movsd  %xmm4,(%rax,%rbp,1)
mov    0x198(%rsp),%rax
movsd  %xmm6,(%rax,%rdx,8)
mov    0x40(%rsp),%rdx
add    $0x9,%r14d
add    $0x3,%r12d
add    $0x8,%rbp
cmp    %rbp,0x8(%rsp)
jne    1170 <TwophaseNavierStokes_LS_SO_3D_Evaluate+0x60>
add    $0x48,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
define void @TwophaseNavierStokes_LS_SO_3D_Evaluate(i32 %0, double %1, double %2, double %3, double %4, double %5, double* nocapture %6, double* nocapture %7, double* nocapture readnone %8, double* nocapture %9, double* nocapture %10, double* nocapture %11, double* nocapture %12, double* nocapture writeonly %13, double* nocapture writeonly %14, double* nocapture writeonly %15, double* nocapture writeonly %16, double* nocapture writeonly %17, double* nocapture writeonly %18, double* nocapture writeonly %19, double* nocapture writeonly %20, double* nocapture writeonly %21, double* nocapture writeonly %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) {
%48 = icmp sgt i32 %0, 0
br i1 %48, label %49, label %200
49: ; preds = %47
%50 = getelementptr inbounds double, double* %6, i64 1
%51 = getelementptr inbounds double, double* %6, i64 2
%52 = zext i32 %0 to i64
br label %53
53: ; preds = %49, %53
%54 = phi i64 [ 0, %49 ], [ %198, %53 ]
%55 = getelementptr inbounds double, double* %7, i64 %54
%56 = load double, double* %55
%57 = tail call i32 (double, double, ...) bitcast (i32 (...)* @smoothedHeaviside to i32 (double, double, ...)*)(double %1, double %56)
%58 = sitofp i32 %57 to double
%59 = fsub double 1.000000e+00, %58
%60 = fmul double %58, %4
%61 = tail call double @llvm.fmuladd.f64(double %2, double %59, double %60)
%62 = fmul double %58, %5
%63 = tail call double @llvm.fmuladd.f64(double %3, double %59, double %62)
%64 = getelementptr inbounds double, double* %10, i64 %54
%65 = load double, double* %64
%66 = getelementptr inbounds double, double* %13, i64 %54
store double %65, double* %66
%67 = getelementptr inbounds double, double* %14, i64 %54
store double 1.000000e+00, double* %67
%68 = getelementptr inbounds double, double* %11, i64 %54
%69 = load double, double* %68
%70 = getelementptr inbounds double, double* %15, i64 %54
store double %69, double* %70
%71 = getelementptr inbounds double, double* %16, i64 %54
store double 1.000000e+00, double* %71
%72 = getelementptr inbounds double, double* %12, i64 %54
%73 = load double, double* %72
%74 = getelementptr inbounds double, double* %17, i64 %54
store double %73, double* %74
%75 = getelementptr inbounds double, double* %18, i64 %54
store double 1.000000e+00, double* %75
%76 = load double, double* %64
%77 = trunc i64 %54 to i32
%78 = mul nsw i32 %77, 3
%79 = zext i32 %78 to i64
%80 = getelementptr inbounds double, double* %19, i64 %79
store double %76, double* %80
%81 = load double, double* %68
%82 = add nuw nsw i32 %78, 1
%83 = zext i32 %82 to i64
%84 = getelementptr inbounds double, double* %19, i64 %83
store double %81, double* %84
%85 = load double, double* %72
%86 = add nuw nsw i32 %78, 2
%87 = zext i32 %86 to i64
%88 = getelementptr inbounds double, double* %19, i64 %87
store double %85, double* %88
%89 = getelementptr inbounds double, double* %20, i64 %79
store double 1.000000e+00, double* %89
%90 = getelementptr inbounds double, double* %21, i64 %83
store double 1.000000e+00, double* %90
%91 = getelementptr inbounds double, double* %22, i64 %87
store double 1.000000e+00, double* %91
%92 = load double, double* %64
%93 = fmul double %92, %92
%94 = getelementptr inbounds double, double* %23, i64 %79
store double %93, double* %94
%95 = load double, double* %64
%96 = load double, double* %68
%97 = fmul double %95, %96
%98 = getelementptr inbounds double, double* %23, i64 %83
store double %97, double* %98
%99 = load double, double* %64
%100 = load double, double* %72
%101 = fmul double %99, %100
%102 = getelementptr inbounds double, double* %23, i64 %87
store double %101, double* %102
%103 = load double, double* %64
%104 = fmul double %103, 2.000000e+00
%105 = getelementptr inbounds double, double* %24, i64 %79
store double %104, double* %105
%106 = load double, double* %68
%107 = getelementptr inbounds double, double* %24, i64 %83
store double %106, double* %107
%108 = load double, double* %72
%109 = getelementptr inbounds double, double* %24, i64 %87
store double %108, double* %109
%110 = load double, double* %64
%111 = getelementptr inbounds double, double* %25, i64 %83
store double %110, double* %111
%112 = load double, double* %64
%113 = getelementptr inbounds double, double* %26, i64 %87
store double %112, double* %113
%114 = load double, double* %68
%115 = load double, double* %64
%116 = fmul double %114, %115
%117 = getelementptr inbounds double, double* %27, i64 %79
store double %116, double* %117
%118 = load double, double* %68
%119 = fmul double %118, %118
%120 = getelementptr inbounds double, double* %27, i64 %83
store double %119, double* %120
%121 = load double, double* %68
%122 = load double, double* %72
%123 = fmul double %121, %122
%124 = getelementptr inbounds double, double* %27, i64 %87
store double %123, double* %124
%125 = load double, double* %68
%126 = getelementptr inbounds double, double* %28, i64 %79
store double %125, double* %126
%127 = load double, double* %64
%128 = getelementptr inbounds double, double* %29, i64 %79
store double %127, double* %128
%129 = load double, double* %68
%130 = fmul double %129, 2.000000e+00
%131 = getelementptr inbounds double, double* %29, i64 %83
store double %130, double* %131
%132 = load double, double* %72
%133 = getelementptr inbounds double, double* %29, i64 %87
store double %132, double* %133
%134 = load double, double* %68
%135 = getelementptr inbounds double, double* %30, i64 %87
store double %134, double* %135
%136 = load double, double* %72
%137 = load double, double* %64
%138 = fmul double %136, %137
%139 = getelementptr inbounds double, double* %31, i64 %79
store double %138, double* %139
%140 = load double, double* %72
%141 = load double, double* %68
%142 = fmul double %140, %141
%143 = getelementptr inbounds double, double* %31, i64 %83
store double %142, double* %143
%144 = load double, double* %72
%145 = fmul double %144, %144
%146 = getelementptr inbounds double, double* %31, i64 %87
store double %145, double* %146
%147 = load double, double* %72
%148 = getelementptr inbounds double, double* %32, i64 %79
store double %147, double* %148
%149 = load double, double* %72
%150 = getelementptr inbounds double, double* %33, i64 %79
store double %149, double* %150
%151 = load double, double* %64
%152 = getelementptr inbounds double, double* %34, i64 %79
store double %151, double* %152
%153 = load double, double* %68
%154 = getelementptr inbounds double, double* %34, i64 %83
store double %153, double* %154
%155 = load double, double* %72
%156 = fmul double %155, 2.000000e+00
%157 = getelementptr inbounds double, double* %34, i64 %87
store double %156, double* %157
%158 = mul nsw i32 %77, 9
%159 = zext i32 %158 to i64
%160 = getelementptr inbounds double, double* %35, i64 %159
store double %63, double* %160
%161 = add nuw nsw i32 %158, 4
%162 = zext i32 %161 to i64
%163 = getelementptr inbounds double, double* %35, i64 %162
store double %63, double* %163
%164 = add nuw nsw i32 %158, 8
%165 = zext i32 %164 to i64
%166 = getelementptr inbounds double, double* %35, i64 %165
store double %63, double* %166
%167 = getelementptr inbounds double, double* %36, i64 %159
store double %63, double* %167
%168 = getelementptr inbounds double, double* %36, i64 %162
store double %63, double* %168
%169 = getelementptr inbounds double, double* %36, i64 %165
store double %63, double* %169
%170 = getelementptr inbounds double, double* %37, i64 %159
store double %63, double* %170
%171 = getelementptr inbounds double, double* %37, i64 %162
store double %63, double* %171
%172 = getelementptr inbounds double, double* %37, i64 %165
store double %63, double* %172
%173 = load double, double* %6
%174 = fneg double %173
%175 = getelementptr inbounds double, double* %38, i64 %54
store double %174, double* %175
%176 = load double, double* %50
%177 = fneg double %176
%178 = getelementptr inbounds double, double* %39, i64 %54
store double %177, double* %178
%179 = load double, double* %51
%180 = fneg double %179
%181 = getelementptr inbounds double, double* %40, i64 %54
store double %180, double* %181
%182 = getelementptr inbounds double, double* %9, i64 %79
%183 = load double, double* %182
%184 = fdiv double %183, %61
%185 = getelementptr inbounds double, double* %41, i64 %54
store double %184, double* %185
%186 = fdiv double 1.000000e+00, %61
%187 = getelementptr inbounds double, double* %42, i64 %79
store double %186, double* %187
%188 = getelementptr inbounds double, double* %9, i64 %83
%189 = load double, double* %188
%190 = fdiv double %189, %61
%191 = getelementptr inbounds double, double* %43, i64 %54
store double %190, double* %191
%192 = getelementptr inbounds double, double* %44, i64 %83
store double %186, double* %192
%193 = getelementptr inbounds double, double* %9, i64 %87
%194 = load double, double* %193
%195 = fdiv double %194, %61
%196 = getelementptr inbounds double, double* %45, i64 %54
store double %195, double* %196
%197 = getelementptr inbounds double, double* %46, i64 %87
store double %186, double* %197
%198 = add nuw nsw i64 %54, 1
%199 = icmp eq i64 %198, %52
br i1 %199, label %200, label %53
200: ; preds = %53, %47
ret void
}