void calculateSubgridErrorNavierStokes3D_GLS_tauRes(
    int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element,
    int nSpace, double *tau0, double *tau1, double *pdeResidualP,
    double *dpdeResidualP_du, double *dpdeResidualP_dv,
    double *dpdeResidualP_dw, double *pdeResidualU, double *dpdeResidualU_dp,
    double *dpdeResidualU_du, double *dpdeResidualU_dv,
    double *dpdeResidualU_dw, double *pdeResidualV, double *dpdeResidualV_dp,
    double *dpdeResidualV_du, double *dpdeResidualV_dv,
    double *dpdeResidualV_dw, double *pdeResidualW, double *dpdeResidualW_dp,
    double *dpdeResidualW_du, double *dpdeResidualW_dv,
    double *dpdeResidualW_dw, double *subgridErrorP, double *dsubgridErrorP_du,
    double *dsubgridErrorP_dv, double *dsubgridErrorP_dw, double *subgridErrorU,
    double *dsubgridErrorU_dp, double *dsubgridErrorU_du,
    double *dsubgridErrorU_dv, double *dsubgridErrorU_dw, double *subgridErrorV,
    double *dsubgridErrorV_dp, double *dsubgridErrorV_du,
    double *dsubgridErrorV_dv, double *dsubgridErrorV_dw, double *subgridErrorW,
    double *dsubgridErrorW_dp, double *dsubgridErrorW_du,
    double *dsubgridErrorW_dv, double *dsubgridErrorW_dw) {
  int eN, k, nSpace2 = nSpace * nSpace, j;
  for (eN = 0; eN < nElements_global; eN++) {
    for (k = 0; k < nQuadraturePoints_element; k++) {
      subgridErrorU[eN * nQuadraturePoints_element + k] =
          -tau0[eN * nQuadraturePoints_element + k] *
          pdeResidualU[eN * nQuadraturePoints_element + k];
      subgridErrorV[eN * nQuadraturePoints_element + k] =
          -tau0[eN * nQuadraturePoints_element + k] *
          pdeResidualV[eN * nQuadraturePoints_element + k];
      subgridErrorW[eN * nQuadraturePoints_element + k] =
          -tau0[eN * nQuadraturePoints_element + k] *
          pdeResidualW[eN * nQuadraturePoints_element + k];
      subgridErrorP[eN * nQuadraturePoints_element + k] =
          -tau1[eN * nQuadraturePoints_element + k] *
          pdeResidualP[eN * nQuadraturePoints_element + k];
      for (j = 0; j < nDOF_trial_element; j++) {
        dsubgridErrorU_dp[eN * nQuadraturePoints_element * nDOF_trial_element +
                          k * nDOF_trial_element + j] =
            -tau0[eN * nQuadraturePoints_element + k] *
            dpdeResidualU_dp[eN * nQuadraturePoints_element *
                                 nDOF_trial_element +
                             k * nDOF_trial_element + j];
        dsubgridErrorU_du[eN * nQuadraturePoints_element * nDOF_trial_element +
                          k * nDOF_trial_element + j] =
            -tau0[eN * nQuadraturePoints_element + k] *
            dpdeResidualU_du[eN * nQuadraturePoints_element *
                                 nDOF_trial_element +
                             k * nDOF_trial_element + j];
        dsubgridErrorU_dv[eN * nQuadraturePoints_element * nDOF_trial_element +
                          k * nDOF_trial_element + j] =
            -tau0[eN * nQuadraturePoints_element + k] *
            dpdeResidualU_dv[eN * nQuadraturePoints_element *
                                 nDOF_trial_element +
                             k * nDOF_trial_element + j];
        dsubgridErrorU_dw[eN * nQuadraturePoints_element * nDOF_trial_element +
                          k * nDOF_trial_element + j] =
            -tau0[eN * nQuadraturePoints_element + k] *
            dpdeResidualU_dw[eN * nQuadraturePoints_element *
                                 nDOF_trial_element +
                             k * nDOF_trial_element + j];
        dsubgridErrorV_dp[eN * nQuadraturePoints_element * nDOF_trial_element +
                          k * nDOF_trial_element + j] =
            -tau0[eN * nQuadraturePoints_element + k] *
            dpdeResidualV_dp[eN * nQuadraturePoints_element *
                                 nDOF_trial_element +
                             k * nDOF_trial_element + j];
        dsubgridErrorV_du[eN * nQuadraturePoints_element * nDOF_trial_element +
                          k * nDOF_trial_element + j] =
            -tau0[eN * nQuadraturePoints_element + k] *
            dpdeResidualV_du[eN * nQuadraturePoints_element *
                                 nDOF_trial_element +
                             k * nDOF_trial_element + j];
        dsubgridErrorV_dv[eN * nQuadraturePoints_element * nDOF_trial_element +
                          k * nDOF_trial_element + j] =
            -tau0[eN * nQuadraturePoints_element + k] *
            dpdeResidualV_dv[eN * nQuadraturePoints_element *
                                 nDOF_trial_element +
                             k * nDOF_trial_element + j];
        dsubgridErrorV_dw[eN * nQuadraturePoints_element * nDOF_trial_element +
                          k * nDOF_trial_element + j] =
            -tau0[eN * nQuadraturePoints_element + k] *
            dpdeResidualV_dw[eN * nQuadraturePoints_element *
                                 nDOF_trial_element +
                             k * nDOF_trial_element + j];
        dsubgridErrorW_dp[eN * nQuadraturePoints_element * nDOF_trial_element +
                          k * nDOF_trial_element + j] =
            -tau0[eN * nQuadraturePoints_element + k] *
            dpdeResidualW_dp[eN * nQuadraturePoints_element *
                                 nDOF_trial_element +
                             k * nDOF_trial_element + j];
        dsubgridErrorW_du[eN * nQuadraturePoints_element * nDOF_trial_element +
                          k * nDOF_trial_element + j] =
            -tau0[eN * nQuadraturePoints_element + k] *
            dpdeResidualW_du[eN * nQuadraturePoints_element *
                                 nDOF_trial_element +
                             k * nDOF_trial_element + j];
        dsubgridErrorW_dv[eN * nQuadraturePoints_element * nDOF_trial_element +
                          k * nDOF_trial_element + j] =
            -tau0[eN * nQuadraturePoints_element + k] *
            dpdeResidualW_dv[eN * nQuadraturePoints_element *
                                 nDOF_trial_element +
                             k * nDOF_trial_element + j];
        dsubgridErrorW_dw[eN * nQuadraturePoints_element * nDOF_trial_element +
                          k * nDOF_trial_element + j] =
            -tau0[eN * nQuadraturePoints_element + k] *
            dpdeResidualW_dw[eN * nQuadraturePoints_element *
                                 nDOF_trial_element +
                             k * nDOF_trial_element + j];
        dsubgridErrorP_du[eN * nQuadraturePoints_element * nDOF_trial_element +
                          k * nDOF_trial_element + j] =
            -tau1[eN * nQuadraturePoints_element + k] *
            dpdeResidualP_du[eN * nQuadraturePoints_element *
                                 nDOF_trial_element +
                             k * nDOF_trial_element + j];
        dsubgridErrorP_dv[eN * nQuadraturePoints_element * nDOF_trial_element +
                          k * nDOF_trial_element + j] =
            -tau1[eN * nQuadraturePoints_element + k] *
            dpdeResidualP_dv[eN * nQuadraturePoints_element *
                                 nDOF_trial_element +
                             k * nDOF_trial_element + j];
        dsubgridErrorP_dw[eN * nQuadraturePoints_element * nDOF_trial_element +
                          k * nDOF_trial_element + j] =
            -tau1[eN * nQuadraturePoints_element + k] *
            dpdeResidualP_dw[eN * nQuadraturePoints_element *
                                 nDOF_trial_element +
                             k * nDOF_trial_element + j];
      }
    }
  }
}


x86 assembly (clang, -O0):
<calculateSubgridErrorNavierStokes3D_GLS_tauRes>:
push   %rbp
mov    %rsp,%rbp
mov    0x138(%rbp),%rax
mov    0x130(%rbp),%rax
mov    0x128(%rbp),%rax
mov    0x120(%rbp),%rax
mov    0x118(%rbp),%rax
mov    0x110(%rbp),%rax
mov    0x108(%rbp),%rax
mov    0x100(%rbp),%rax
mov    0xf8(%rbp),%rax
mov    0xf0(%rbp),%rax
mov    0xe8(%rbp),%rax
mov    0xe0(%rbp),%rax
mov    0xd8(%rbp),%rax
mov    0xd0(%rbp),%rax
mov    0xc8(%rbp),%rax
mov    0xc0(%rbp),%rax
mov    0xb8(%rbp),%rax
mov    0xb0(%rbp),%rax
mov    0xa8(%rbp),%rax
mov    0xa0(%rbp),%rax
mov    0x98(%rbp),%rax
mov    0x90(%rbp),%rax
mov    0x88(%rbp),%rax
mov    0x80(%rbp),%rax
mov    0x78(%rbp),%rax
mov    0x70(%rbp),%rax
mov    0x68(%rbp),%rax
mov    0x60(%rbp),%rax
mov    0x58(%rbp),%rax
mov    0x50(%rbp),%rax
mov    0x48(%rbp),%rax
mov    0x40(%rbp),%rax
mov    0x38(%rbp),%rax
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %edx,-0xc(%rbp)
mov    %ecx,-0x10(%rbp)
mov    %r8,-0x18(%rbp)
mov    %r9,-0x20(%rbp)
mov    -0x10(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x2c(%rbp)
movl   $0x0,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    1ad8 <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0x9d8>
movl   $0x0,-0x28(%rbp)
mov    -0x28(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    1ac5 <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0x9c5>
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x30(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xc8(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x58(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xf0(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x80(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x118(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x20(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x10(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xa8(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movl   $0x0,-0x30(%rbp)
mov    -0x30(%rbp),%eax
cmp    -0xc(%rbp),%eax
jge    1ab2 <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0x9b2>
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x38(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xd0(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x40(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xd8(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x48(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xe0(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x50(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xe8(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x60(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xf8(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x68(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x100(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x70(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x108(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x78(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x110(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x88(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x120(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x90(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x128(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x98(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x130(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0xa0(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x138(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x20(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xb0(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x20(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x20(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xb8(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x20(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    -0x28(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    0x28(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0xc0(%rbp),%rax
mov    -0x24(%rbp),%ecx
imul   -0x8(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x28(%rbp),%edx
imul   -0xc(%rbp),%edx
add    %edx,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    13a2 <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0x2a2>
jmp    1ab7 <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0x9b7>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    121c <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0x11c>
jmp    1aca <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0x9ca>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1209 <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0x109>
pop    %rbp
ret

x86 assembly (clang, -O2):
<calculateSubgridErrorNavierStokes3D_GLS_tauRes>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x80,%rsp
mov    %edx,-0x7c(%rsp)
mov    %esi,-0x78(%rsp)
test   %edi,%edi
jle    1625 <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0x525>
mov    %edi,%eax
mov    %rax,-0x50(%rsp)
mov    -0x7c(%rsp),%esi
mov    %esi,%ecx
mov    -0x78(%rsp),%eax
imul   %eax,%esi
mov    %esi,-0x5c(%rsp)
shl    $0x3,%rcx
mov    %rcx,-0x48(%rsp)
movapd 0xeb6(%rip),%xmm0
cltq
mov    %rax,-0x58(%rsp)
mov    %eax,%eax
mov    %rax,-0x40(%rsp)
xor    %eax,%eax
mov    %rax,-0x68(%rsp)
xor    %eax,%eax
mov    %rax,-0x70(%rsp)
jmp    119a <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0x9a>
nopl   0x0(%rax,%rax,1)
mov    -0x70(%rsp),%rcx
add    $0x1,%rcx
mov    -0x68(%rsp),%rax
add    -0x5c(%rsp),%eax
mov    %rax,-0x68(%rsp)
mov    %rcx,%rax
mov    %rcx,-0x70(%rsp)
cmp    -0x50(%rsp),%rcx
je     1625 <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0x525>
cmpl   $0x0,-0x78(%rsp)
jle    1170 <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0x70>
mov    -0x70(%rsp),%rax
imul   -0x58(%rsp),%rax
mov    %rax,-0x38(%rsp)
mov    -0x68(%rsp),%rax
mov    %eax,-0x74(%rsp)
xor    %ecx,%ecx
jmp    11d8 <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0xd8>
xchg   %ax,%ax
mov    -0x30(%rsp),%rcx
add    $0x1,%rcx
mov    -0x7c(%rsp),%eax
add    %eax,-0x74(%rsp)
cmp    -0x40(%rsp),%rcx
je     1170 <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0x70>
mov    -0x38(%rsp),%rax
mov    %rcx,-0x30(%rsp)
lea    (%rcx,%rax,1),%rbp
movsd  (%r8,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mov    0xd8(%rsp),%rax
mulsd  (%rax,%rbp,8),%xmm1
mov    0x170(%rsp),%rax
movsd  %xmm1,(%rax,%rbp,8)
movsd  (%r8,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mov    0x100(%rsp),%rax
mulsd  (%rax,%rbp,8),%xmm1
mov    0x198(%rsp),%rax
movsd  %xmm1,(%rax,%rbp,8)
movsd  (%r8,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mov    0x128(%rsp),%rax
mulsd  (%rax,%rbp,8),%xmm1
mov    0x1c0(%rsp),%rax
movsd  %xmm1,(%rax,%rbp,8)
movsd  (%r9,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mov    0xb8(%rsp),%rax
mulsd  (%rax,%rbp,8),%xmm1
mov    0x150(%rsp),%rax
movsd  %xmm1,(%rax,%rbp,8)
cmpl   $0x0,-0x7c(%rsp)
jle    11c0 <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0xc0>
movslq -0x74(%rsp),%rax
mov    0xe0(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x78(%rsp)
mov    0x178(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x70(%rsp)
mov    0xe8(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x68(%rsp)
mov    0x180(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x60(%rsp)
mov    0xf0(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x58(%rsp)
mov    0x188(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x50(%rsp)
mov    0xf8(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x48(%rsp)
mov    0x190(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x40(%rsp)
mov    0x108(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x38(%rsp)
mov    0x1a0(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x30(%rsp)
mov    0x110(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x28(%rsp)
mov    0x1a8(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x20(%rsp)
mov    0x118(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x18(%rsp)
mov    0x1b0(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x10(%rsp)
mov    0x120(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x8(%rsp)
mov    0x1b8(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,(%rsp)
mov    0x130(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,-0x8(%rsp)
mov    0x1c8(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,-0x10(%rsp)
mov    0x138(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,-0x18(%rsp)
mov    0x1d0(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,-0x20(%rsp)
mov    0x140(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,-0x28(%rsp)
mov    0x1d8(%rsp),%rcx
lea    (%rcx,%rax,8),%rdx
mov    0x148(%rsp),%rcx
lea    (%rcx,%rax,8),%r13
mov    0x1e0(%rsp),%rcx
lea    (%rcx,%rax,8),%rsi
mov    0xc0(%rsp),%rcx
lea    (%rcx,%rax,8),%r15
mov    0x158(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    0xc8(%rsp),%rdi
lea    (%rdi,%rax,8),%r12
mov    0x160(%rsp),%rdi
lea    (%rdi,%rax,8),%r11
mov    0xd0(%rsp),%rdi
lea    (%rdi,%rax,8),%rdi
mov    0x168(%rsp),%rbx
lea    (%rbx,%rax,8),%r10
mov    -0x48(%rsp),%rax
xor    %r14d,%r14d
xchg   %ax,%ax
movsd  (%r8,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mov    0x78(%rsp),%rbx
mulsd  (%rbx,%r14,1),%xmm1
mov    0x70(%rsp),%rbx
movsd  %xmm1,(%rbx,%r14,1)
movsd  (%r8,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mov    0x68(%rsp),%rbx
mulsd  (%rbx,%r14,1),%xmm1
mov    0x60(%rsp),%rbx
movsd  %xmm1,(%rbx,%r14,1)
movsd  (%r8,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mov    0x58(%rsp),%rbx
mulsd  (%rbx,%r14,1),%xmm1
mov    0x50(%rsp),%rbx
movsd  %xmm1,(%rbx,%r14,1)
movsd  (%r8,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mov    0x48(%rsp),%rbx
mulsd  (%rbx,%r14,1),%xmm1
mov    0x40(%rsp),%rbx
movsd  %xmm1,(%rbx,%r14,1)
movsd  (%r8,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mov    0x38(%rsp),%rbx
mulsd  (%rbx,%r14,1),%xmm1
mov    0x30(%rsp),%rbx
movsd  %xmm1,(%rbx,%r14,1)
movsd  (%r8,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mov    0x28(%rsp),%rbx
mulsd  (%rbx,%r14,1),%xmm1
mov    0x20(%rsp),%rbx
movsd  %xmm1,(%rbx,%r14,1)
movsd  (%r8,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mov    0x18(%rsp),%rbx
mulsd  (%rbx,%r14,1),%xmm1
mov    0x10(%rsp),%rbx
movsd  %xmm1,(%rbx,%r14,1)
movsd  (%r8,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mov    0x8(%rsp),%rbx
mulsd  (%rbx,%r14,1),%xmm1
mov    (%rsp),%rbx
movsd  %xmm1,(%rbx,%r14,1)
movsd  (%r8,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mov    -0x8(%rsp),%rbx
mulsd  (%rbx,%r14,1),%xmm1
mov    -0x10(%rsp),%rbx
movsd  %xmm1,(%rbx,%r14,1)
movsd  (%r8,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mov    -0x18(%rsp),%rbx
mulsd  (%rbx,%r14,1),%xmm1
mov    -0x20(%rsp),%rbx
movsd  %xmm1,(%rbx,%r14,1)
movsd  (%r8,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mov    -0x28(%rsp),%rbx
mulsd  (%rbx,%r14,1),%xmm1
movsd  %xmm1,(%rdx,%r14,1)
movsd  (%r8,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mulsd  0x0(%r13,%r14,1),%xmm1
movsd  %xmm1,(%rsi,%r14,1)
movsd  (%r9,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mulsd  (%r15,%r14,1),%xmm1
movsd  %xmm1,(%rcx,%r14,1)
movsd  (%r9,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mulsd  (%r12,%r14,1),%xmm1
movsd  %xmm1,(%r11,%r14,1)
movsd  (%r9,%rbp,8),%xmm1
xorpd  %xmm0,%xmm1
mulsd  (%rdi,%r14,1),%xmm1
movsd  %xmm1,(%r10,%r14,1)
add    $0x8,%r14
cmp    %r14,%rax
jne    1460 <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0x360>
jmp    11c0 <calculateSubgridErrorNavierStokes3D_GLS_tauRes+0xc0>
add    $0x80,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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