void TwophaseNavierStokes_VOF_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 *vof,
    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 = fmax(0.0, fmin(1.0, vof[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_VOF_SO_3D_Evaluate>:
push   %rbp
mov    %rsp,%rbp
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    1a02 <TwophaseNavierStokes_VOF_SO_3D_Evaluate+0x902>
mov    -0x40(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  0xdd2(%rip),%xmm1
minsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
maxsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  0xdb5(%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  0xd8c(%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  0xd46(%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  0xd17(%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  0xce8(%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  0xc6d(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    0x60(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  0xc52(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    0x68(%rbp),%rax
imul   $0x3,-0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  0xc37(%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  0xba3(%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  0xa1f(%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  0x892(%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  0x6bd(%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  0x672(%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  0x627(%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    120d <TwophaseNavierStokes_VOF_SO_3D_Evaluate+0x10d>
pop    %rbp
ret

x86 assembly (clang, -O2):
<TwophaseNavierStokes_VOF_SO_3D_Evaluate>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
test   %edi,%edi
jle    1500 <TwophaseNavierStokes_VOF_SO_3D_Evaluate+0x400>
mov    %edi,%eax
shl    $0x3,%rax
lea    (%rax,%rax,2),%rax
mov    %rax,-0x8(%rsp)
movsd  0xed6(%rip),%xmm9
xorpd  %xmm8,%xmm8
movaps 0xed9(%rip),%xmm10
mov    0x40(%rsp),%r15
mov    0x38(%rsp),%rax
xor    %ebp,%ebp
movabs $0x3ff0000000000000,%r10
xor    %edi,%edi
xor    %r11d,%r11d
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movsd  (%rdx,%rbp,1),%xmm5
minsd  %xmm9,%xmm5
maxsd  %xmm8,%xmm5
movapd %xmm9,%xmm0
subsd  %xmm5,%xmm0
movapd %xmm5,%xmm11
movapd %xmm1,%xmm7
movsd  (%r9,%rbp,1),%xmm6
mov    0x48(%rsp),%rcx
movsd  %xmm6,(%rcx,%rbp,1)
mov    0x50(%rsp),%rcx
mov    %r10,(%rcx,%rbp,1)
movsd  (%rax,%rbp,1),%xmm6
mov    0x58(%rsp),%rcx
movsd  %xmm6,(%rcx,%rbp,1)
mov    0x60(%rsp),%rcx
mov    %r10,(%rcx,%rbp,1)
movsd  (%r15,%rbp,1),%xmm6
mov    0x68(%rsp),%rcx
movsd  %xmm6,(%rcx,%rbp,1)
mov    0x70(%rsp),%rcx
mov    %r10,(%rcx,%rbp,1)
movsd  (%r9,%rbp,1),%xmm6
mov    0x78(%rsp),%rcx
movsd  %xmm6,(%rcx,%rdi,1)
movsd  (%rax,%rbp,1),%xmm6
movsd  %xmm6,0x8(%rcx,%rdi,1)
movsd  (%r15,%rbp,1),%xmm6
movsd  %xmm6,0x10(%rcx,%rdi,1)
mov    0x80(%rsp),%rcx
mov    %r10,(%rcx,%rdi,1)
mov    0x88(%rsp),%rcx
mov    %r10,0x8(%rcx,%rdi,1)
mov    0x90(%rsp),%rcx
mov    %r10,0x10(%rcx,%rdi,1)
movsd  (%r9,%rbp,1),%xmm6
mulsd  %xmm6,%xmm6
mov    0x98(%rsp),%rcx
movsd  %xmm6,(%rcx,%rdi,1)
movsd  (%r9,%rbp,1),%xmm6
mulsd  (%rax,%rbp,1),%xmm6
movsd  %xmm6,0x8(%rcx,%rdi,1)
movsd  (%r9,%rbp,1),%xmm6
mulsd  (%r15,%rbp,1),%xmm6
mulsd  %xmm0,%xmm7
movsd  %xmm6,0x10(%rcx,%rdi,1)
movsd  (%r9,%rbp,1),%xmm6
addsd  %xmm6,%xmm6
mov    0xa0(%rsp),%rcx
movsd  %xmm6,(%rcx,%rdi,1)
movsd  (%rax,%rbp,1),%xmm6
movsd  %xmm6,0x8(%rcx,%rdi,1)
movsd  (%r15,%rbp,1),%xmm6
movsd  %xmm6,0x10(%rcx,%rdi,1)
movsd  (%r9,%rbp,1),%xmm6
mov    0xa8(%rsp),%rcx
movsd  %xmm6,0x8(%rcx,%rdi,1)
movsd  (%r9,%rbp,1),%xmm6
mov    0xb0(%rsp),%rcx
movsd  %xmm6,0x10(%rcx,%rdi,1)
movsd  (%rax,%rbp,1),%xmm6
mulsd  (%r9,%rbp,1),%xmm6
mulsd  %xmm4,%xmm5
mov    0xb8(%rsp),%rcx
movsd  %xmm6,(%rcx,%rdi,1)
movsd  (%rax,%rbp,1),%xmm6
mulsd  %xmm6,%xmm6
movsd  %xmm6,0x8(%rcx,%rdi,1)
movsd  (%rax,%rbp,1),%xmm6
mulsd  (%r15,%rbp,1),%xmm6
mulsd  %xmm2,%xmm0
movsd  %xmm6,0x10(%rcx,%rdi,1)
movsd  (%rax,%rbp,1),%xmm6
mov    0xc0(%rsp),%rcx
movsd  %xmm6,(%rcx,%rdi,1)
movsd  (%r9,%rbp,1),%xmm6
mov    0xc8(%rsp),%rcx
movsd  %xmm6,(%rcx,%rdi,1)
movsd  (%rax,%rbp,1),%xmm6
addsd  %xmm6,%xmm6
movsd  %xmm6,0x8(%rcx,%rdi,1)
movsd  (%r15,%rbp,1),%xmm6
movsd  %xmm6,0x10(%rcx,%rdi,1)
movsd  (%rax,%rbp,1),%xmm6
mov    0xd0(%rsp),%rcx
movsd  %xmm6,0x10(%rcx,%rdi,1)
movsd  (%r15,%rbp,1),%xmm6
mulsd  (%r9,%rbp,1),%xmm6
mov    0xd8(%rsp),%rcx
movsd  %xmm6,(%rcx,%rdi,1)
movsd  (%r15,%rbp,1),%xmm6
mulsd  (%rax,%rbp,1),%xmm6
addsd  %xmm5,%xmm0
movsd  %xmm6,0x8(%rcx,%rdi,1)
movsd  (%r15,%rbp,1),%xmm5
mulsd  %xmm5,%xmm5
movsd  %xmm5,0x10(%rcx,%rdi,1)
movsd  (%r15,%rbp,1),%xmm5
mov    0xe0(%rsp),%rcx
movsd  %xmm5,(%rcx,%rdi,1)
movsd  (%r15,%rbp,1),%xmm5
mov    0xe8(%rsp),%rcx
movsd  %xmm5,(%rcx,%rdi,1)
movsd  (%r9,%rbp,1),%xmm5
mov    0xf0(%rsp),%rcx
movsd  %xmm5,(%rcx,%rdi,1)
movsd  (%rax,%rbp,1),%xmm5
movsd  %xmm5,0x8(%rcx,%rdi,1)
movsd  (%r15,%rbp,1),%xmm5
addsd  %xmm5,%xmm5
movsd  %xmm5,0x10(%rcx,%rdi,1)
mov    %r11d,%r13d
mov    0xf8(%rsp),%rcx
movsd  %xmm0,(%rcx,%r13,8)
lea    0x4(%r11),%ebx
movsd  %xmm0,(%rcx,%rbx,8)
lea    0x8(%r11),%r14d
movsd  %xmm0,(%rcx,%r14,8)
mov    0x100(%rsp),%rcx
movsd  %xmm0,(%rcx,%r13,8)
movsd  %xmm0,(%rcx,%rbx,8)
movsd  %xmm0,(%rcx,%r14,8)
mov    0x108(%rsp),%r12
movsd  %xmm0,(%r12,%r13,8)
movsd  %xmm0,(%r12,%rbx,8)
movsd  %xmm0,(%r12,%r14,8)
mulsd  %xmm3,%xmm11
addsd  %xmm11,%xmm7
movsd  (%rsi),%xmm0
xorps  %xmm10,%xmm0
mov    0x110(%rsp),%rbx
movlps %xmm0,(%rbx,%rbp,1)
movsd  0x8(%rsi),%xmm0
xorps  %xmm10,%xmm0
mov    0x118(%rsp),%rbx
movlps %xmm0,(%rbx,%rbp,1)
movsd  0x10(%rsi),%xmm0
xorps  %xmm10,%xmm0
mov    0x120(%rsp),%rbx
movlps %xmm0,(%rbx,%rbp,1)
movsd  (%r8,%rdi,1),%xmm0
divsd  %xmm7,%xmm0
mov    0x128(%rsp),%rbx
movsd  %xmm0,(%rbx,%rbp,1)
movapd %xmm9,%xmm0
divsd  %xmm7,%xmm0
mov    0x130(%rsp),%rbx
movsd  %xmm0,(%rbx,%rdi,1)
movsd  0x8(%r8,%rdi,1),%xmm5
divsd  %xmm7,%xmm5
mov    0x138(%rsp),%rbx
movsd  %xmm5,(%rbx,%rbp,1)
mov    0x140(%rsp),%rbx
movsd  %xmm0,0x8(%rbx,%rdi,1)
movsd  0x10(%r8,%rdi,1),%xmm5
divsd  %xmm7,%xmm5
mov    0x148(%rsp),%rbx
movsd  %xmm5,(%rbx,%rbp,1)
mov    0x150(%rsp),%rbx
movsd  %xmm0,0x10(%rbx,%rdi,1)
add    $0x9,%r11d
add    $0x18,%rdi
add    $0x8,%rbp
cmp    %rdi,-0x8(%rsp)
jne    1160 <TwophaseNavierStokes_VOF_SO_3D_Evaluate+0x60>
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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