void VAMPIREdiag3D(double *diag, const double *yc, const double *m,
                   const double *Jac, const double *dT, const double *Tc,
                   const double *h) {
  const int m1 = m[0], m2 = m[1], m3 = m[2];
  double yA[3], yB[3], yC[3], yD[3], yE[3], yF[3], yG[3], yH[3], yABDC[3],
      yBDHF[3], yABFE[3], yCAEG[3], yDCGH[3], yEFHG[3], yM[3];
  double rA[3], rB[3], rC[3], rD[3], rE[3], rF[3], rG[3], rH[3];
  double dTi[3], Jaci, Ti;
  int id, i1, i2, i3, r, comp, idn;
  const double hd = h[0] * h[1] * h[2];
  const int nn = (m1 + 1) * (m2 + 1) * (m3 + 1);
  const int n = (m1) * (m2) * (m3);
  const int inc_x = 1;
  const int inc_y = m1 + 1;
  const int inc_z = (m1 + 1) * (m2 + 1);
  const double *rptr;
  double *wptr;
#pragma omp parallel for default(shared) private(                              \
    rptr, wptr, id, i1, i2, i3, r, comp, idn, dTi, Jaci, Ti, yA, yB, yC, yD,   \
    yE, yF, yG, yH, yABDC, yBDHF, yABFE, yCAEG, yDCGH, yEFHG, yM, rA, rB, rC,  \
    rD, rE, rF, rG, rH)
  for (i1 = 0; i1 < m1; i1++) {
    for (i2 = 0; i2 < m2; i2++) {
      for (i3 = 0; i3 < m3; i3++) {
        idn = i1 + i2 * inc_y + i3 * inc_z;
        id = i1 + m1 * (i2 + i3 * m2);
        comp = 0;
        Ti = Tc[id] / hd;
        dTi[0] = dT[id];
        dTi[1] = dT[id + n];
        dTi[2] = dT[id + 2 * n];
        Jaci = Jac[id];
        for (r = 0; r < 3; r++) {
          rptr = yc + idn + comp;
          yA[r] = *rptr;
          rptr += inc_x;
          yB[r] = *rptr;
          rptr += inc_y;
          yD[r] = *rptr;
          rptr -= inc_x;
          yC[r] = *rptr;
          rptr += inc_z;
          yG[r] = *rptr;
          rptr += inc_x;
          yH[r] = *rptr;
          rptr -= inc_y;
          yF[r] = *rptr;
          rptr -= inc_x;
          yE[r] = *rptr;
          yABDC[r] = 0.25 * (yA[r] + yB[r] + yD[r] + yC[r]);
          yBDHF[r] = 0.25 * (yB[r] + yD[r] + yH[r] + yF[r]);
          yABFE[r] = 0.25 * (yA[r] + yB[r] + yF[r] + yE[r]);
          yCAEG[r] = 0.25 * (yC[r] + yA[r] + yE[r] + yG[r]);
          yDCGH[r] = 0.25 * (yD[r] + yC[r] + yG[r] + yH[r]);
          yEFHG[r] = 0.25 * (yE[r] + yF[r] + yH[r] + yG[r]);
          yM[r] = 0.5 * (yABDC[r] + yEFHG[r]);
          comp += nn;
          rA[r] = Jaci * 0.125 * dTi[r];
          rB[r] = Jaci * 0.125 * dTi[r];
          rC[r] = Jaci * 0.125 * dTi[r];
          rD[r] = Jaci * 0.125 * dTi[r];
          rE[r] = Jaci * 0.125 * dTi[r];
          rF[r] = Jaci * 0.125 * dTi[r];
          rG[r] = Jaci * 0.125 * dTi[r];
          rH[r] = Jaci * 0.125 * dTi[r];
        }
        VAMPIREdiagTetra(yA, yB, yABDC, yM, rA, rB, rD, rC, rE, rF, rH, rG,
                         -Ti);
        VAMPIREdiagTetra(yB, yD, yABDC, yM, rB, rD, rC, rA, rF, rH, rG, rE,
                         -Ti);
        VAMPIREdiagTetra(yD, yC, yABDC, yM, rD, rC, rA, rB, rH, rG, rE, rF,
                         -Ti);
        VAMPIREdiagTetra(yC, yA, yABDC, yM, rC, rA, rB, rD, rG, rE, rF, rH,
                         -Ti);
        VAMPIREdiagTetra(yB, yD, yBDHF, yM, rB, rD, rH, rF, rA, rC, rG, rE, Ti);
        VAMPIREdiagTetra(yD, yH, yBDHF, yM, rD, rH, rF, rB, rC, rG, rE, rA, Ti);
        VAMPIREdiagTetra(yH, yF, yBDHF, yM, rH, rF, rB, rD, rG, rE, rA, rC, Ti);
        VAMPIREdiagTetra(yF, yB, yBDHF, yM, rF, rB, rD, rH, rE, rA, rC, rG, Ti);
        VAMPIREdiagTetra(yA, yB, yABFE, yM, rA, rB, rF, rE, rC, rD, rH, rG, Ti);
        VAMPIREdiagTetra(yB, yF, yABFE, yM, rB, rF, rE, rA, rD, rH, rG, rC, Ti);
        VAMPIREdiagTetra(yF, yE, yABFE, yM, rF, rE, rA, rB, rH, rG, rC, rD, Ti);
        VAMPIREdiagTetra(yE, yA, yABFE, yM, rE, rA, rB, rF, rG, rC, rD, rH, Ti);
        VAMPIREdiagTetra(yC, yA, yCAEG, yM, rC, rA, rE, rG, rD, rB, rF, rH, Ti);
        VAMPIREdiagTetra(yA, yE, yCAEG, yM, rA, rE, rG, rC, rB, rF, rH, rD, Ti);
        VAMPIREdiagTetra(yE, yG, yCAEG, yM, rE, rG, rC, rA, rF, rH, rD, rB, Ti);
        VAMPIREdiagTetra(yG, yC, yCAEG, yM, rG, rC, rA, rE, rH, rD, rB, rF, Ti);
        VAMPIREdiagTetra(yD, yC, yDCGH, yM, rD, rC, rG, rH, rB, rA, rE, rF, Ti);
        VAMPIREdiagTetra(yC, yG, yDCGH, yM, rC, rG, rH, rD, rA, rE, rF, rB, Ti);
        VAMPIREdiagTetra(yG, yH, yDCGH, yM, rG, rH, rD, rC, rE, rF, rB, rA, Ti);
        VAMPIREdiagTetra(yH, yD, yDCGH, yM, rH, rD, rC, rG, rF, rB, rA, rE, Ti);
        VAMPIREdiagTetra(yE, yF, yEFHG, yM, rE, rF, rH, rG, rA, rB, rD, rC, Ti);
        VAMPIREdiagTetra(yF, yH, yEFHG, yM, rF, rH, rG, rE, rB, rD, rC, rA, Ti);
        VAMPIREdiagTetra(yH, yG, yEFHG, yM, rH, rG, rE, rF, rD, rC, rA, rB, Ti);
        VAMPIREdiagTetra(yG, yE, yEFHG, yM, rG, rE, rF, rH, rC, rA, rB, rD, Ti);
        comp = 0;
        for (r = 0; r < 3; r++) {
          wptr = diag + idn + comp;
#pragma omp atomic
          *wptr += hd * rA[r] * rA[r];
          wptr += inc_x;
#pragma omp atomic
          *wptr += hd * rB[r] * rB[r];
          wptr += inc_y;
#pragma omp atomic
          *wptr += hd * rD[r] * rD[r];
          wptr -= inc_x;
#pragma omp atomic
          *wptr += hd * rC[r] * rC[r];
          wptr += inc_z;
#pragma omp atomic
          *wptr += hd * rG[r] * rG[r];
          wptr += inc_x;
#pragma omp atomic
          *wptr += hd * rH[r] * rH[r];
          wptr -= inc_y;
#pragma omp atomic
          *wptr += hd * rF[r] * rF[r];
          wptr -= inc_x;
#pragma omp atomic
          *wptr += hd * rE[r] * rE[r];
          comp += nn;
        }
      }
    }
  }
}


x86 assembly (clang, -O0):
<VAMPIREdiag3D>:
push   %rbp
mov    %rsp,%rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x3c8,%rsp
mov    0x10(%rbp),%rax
mov    %rdi,-0x30(%rbp)
mov    %rsi,-0x38(%rbp)
mov    %rdx,-0x40(%rbp)
mov    %rcx,-0x48(%rbp)
mov    %r8,-0x50(%rbp)
mov    %r9,-0x58(%rbp)
mov    -0x40(%rbp),%rax
cvttsd2si (%rax),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x40(%rbp),%rax
cvttsd2si 0x8(%rax),%eax
mov    %eax,-0x60(%rbp)
mov    -0x40(%rbp),%rax
cvttsd2si 0x10(%rax),%eax
mov    %eax,-0x64(%rbp)
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x10(%rbp),%rax
mulsd  0x8(%rax),%xmm0
mov    0x10(%rbp),%rax
mulsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x398(%rbp)
ff
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    -0x60(%rbp),%ecx
add    $0x1,%ecx
imul   %ecx,%eax
mov    -0x64(%rbp),%ecx
add    $0x1,%ecx
imul   %ecx,%eax
mov    %eax,-0x39c(%rbp)
mov    -0x5c(%rbp),%eax
imul   -0x60(%rbp),%eax
imul   -0x64(%rbp),%eax
mov    %eax,-0x3a0(%rbp)
movl   $0x1,-0x3a4(%rbp)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3a8(%rbp)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    -0x60(%rbp),%ecx
add    $0x1,%ecx
imul   %ecx,%eax
mov    %eax,-0x3ac(%rbp)
movl   $0x0,-0x378(%rbp)
mov    -0x378(%rbp),%eax
cmp    -0x5c(%rbp),%eax
jge    2876 <VAMPIREdiag3D+0x1766>
movl   $0x0,-0x37c(%rbp)
mov    -0x37c(%rbp),%eax
cmp    -0x60(%rbp),%eax
jge    285d <VAMPIREdiag3D+0x174d>
movl   $0x0,-0x380(%rbp)
mov    -0x380(%rbp),%eax
cmp    -0x64(%rbp),%eax
jge    2844 <VAMPIREdiag3D+0x1734>
mov    -0x378(%rbp),%eax
mov    -0x37c(%rbp),%ecx
imul   -0x3a8(%rbp),%ecx
add    %ecx,%eax
mov    -0x380(%rbp),%ecx
imul   -0x3ac(%rbp),%ecx
add    %ecx,%eax
mov    %eax,-0x38c(%rbp)
mov    -0x378(%rbp),%eax
mov    -0x5c(%rbp),%ecx
mov    -0x37c(%rbp),%edx
mov    -0x380(%rbp),%esi
imul   -0x60(%rbp),%esi
add    %esi,%edx
imul   %edx,%ecx
add    %ecx,%eax
mov    %eax,-0x374(%rbp)
movl   $0x0,-0x388(%rbp)
mov    -0x58(%rbp),%rax
movslq -0x374(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0x398(%rbp),%xmm0
ff
movsd  %xmm0,-0x370(%rbp)
ff
mov    -0x50(%rbp),%rax
movslq -0x374(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x360(%rbp)
ff
mov    -0x50(%rbp),%rax
mov    -0x374(%rbp),%ecx
add    -0x3a0(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x358(%rbp)
ff
mov    -0x50(%rbp),%rax
mov    -0x374(%rbp),%ecx
mov    -0x3a0(%rbp),%edx
shl    $0x1,%edx
add    %edx,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x350(%rbp)
mov    -0x48(%rbp),%rax
movslq -0x374(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x368(%rbp)
ff
movl   $0x0,-0x384(%rbp)
cmpl   $0x3,-0x384(%rbp)
jge    18d4 <VAMPIREdiag3D+0x7c4>
mov    -0x38(%rbp),%rax
movslq -0x38c(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x388(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x3b8(%rbp)
mov    -0x3b8(%rbp),%rax
movsd  (%rax),%xmm0
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x80(%rbp,%rax,8)
mov    -0x3b8(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x3b8(%rbp)
mov    -0x3b8(%rbp),%rax
movsd  (%rax),%xmm0
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0xa0(%rbp,%rax,8)
ff ff
mov    -0x3a8(%rbp),%ecx
mov    -0x3b8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x3b8(%rbp)
mov    -0x3b8(%rbp),%rax
movsd  (%rax),%xmm0
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0xe0(%rbp,%rax,8)
ff ff
mov    -0x3b8(%rbp),%rax
add    $0xfffffffffffffff8,%rax
mov    %rax,-0x3b8(%rbp)
mov    -0x3b8(%rbp),%rax
movsd  (%rax),%xmm0
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0xc0(%rbp,%rax,8)
mov    -0x3ac(%rbp),%ecx
mov    -0x3b8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x3b8(%rbp)
mov    -0x3b8(%rbp),%rax
movsd  (%rax),%xmm0
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x140(%rbp,%rax,8)
ff ff
mov    -0x3b8(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x3b8(%rbp)
mov    -0x3b8(%rbp),%rax
movsd  (%rax),%xmm0
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x160(%rbp,%rax,8)
ff ff
mov    -0x3a8(%rbp),%ecx
mov    -0x3b8(%rbp),%rax
movslq %ecx,%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x3b8(%rbp)
mov    -0x3b8(%rbp),%rax
movsd  (%rax),%xmm0
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x120(%rbp,%rax,8)
ff ff
mov    -0x3b8(%rbp),%rax
add    $0xfffffffffffffff8,%rax
mov    %rax,-0x3b8(%rbp)
mov    -0x3b8(%rbp),%rax
movsd  (%rax),%xmm0
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x100(%rbp,%rax,8)
ff ff
movslq -0x384(%rbp),%rax
movsd  -0x80(%rbp,%rax,8),%xmm1
movslq -0x384(%rbp),%rax
addsd  -0xa0(%rbp,%rax,8),%xmm1
ff ff
movslq -0x384(%rbp),%rax
addsd  -0xe0(%rbp,%rax,8),%xmm1
ff ff
movslq -0x384(%rbp),%rax
addsd  -0xc0(%rbp,%rax,8),%xmm1
ff ff
movsd  0x1af8(%rip),%xmm0
mulsd  %xmm1,%xmm0
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x180(%rbp,%rax,8)
ff ff
movslq -0x384(%rbp),%rax
movsd  -0xa0(%rbp,%rax,8),%xmm1
ff ff
movslq -0x384(%rbp),%rax
addsd  -0xe0(%rbp,%rax,8),%xmm1
ff ff
movslq -0x384(%rbp),%rax
addsd  -0x160(%rbp,%rax,8),%xmm1
ff ff
movslq -0x384(%rbp),%rax
addsd  -0x120(%rbp,%rax,8),%xmm1
ff ff
movsd  0x1a9c(%rip),%xmm0
mulsd  %xmm1,%xmm0
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x1a0(%rbp,%rax,8)
ff ff
movslq -0x384(%rbp),%rax
movsd  -0x80(%rbp,%rax,8),%xmm1
movslq -0x384(%rbp),%rax
addsd  -0xa0(%rbp,%rax,8),%xmm1
ff ff
movslq -0x384(%rbp),%rax
addsd  -0x120(%rbp,%rax,8),%xmm1
ff ff
movslq -0x384(%rbp),%rax
addsd  -0x100(%rbp,%rax,8),%xmm1
ff ff
movsd  0x1a43(%rip),%xmm0
mulsd  %xmm1,%xmm0
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x1c0(%rbp,%rax,8)
ff ff
movslq -0x384(%rbp),%rax
movsd  -0xc0(%rbp,%rax,8),%xmm1
ff ff
movslq -0x384(%rbp),%rax
addsd  -0x80(%rbp,%rax,8),%xmm1
movslq -0x384(%rbp),%rax
addsd  -0x100(%rbp,%rax,8),%xmm1
ff ff
movslq -0x384(%rbp),%rax
addsd  -0x140(%rbp,%rax,8),%xmm1
ff ff
movsd  0x19ea(%rip),%xmm0
mulsd  %xmm1,%xmm0
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x1e0(%rbp,%rax,8)
ff ff
movslq -0x384(%rbp),%rax
movsd  -0xe0(%rbp,%rax,8),%xmm1
ff ff
movslq -0x384(%rbp),%rax
addsd  -0xc0(%rbp,%rax,8),%xmm1
ff ff
movslq -0x384(%rbp),%rax
addsd  -0x140(%rbp,%rax,8),%xmm1
ff ff
movslq -0x384(%rbp),%rax
addsd  -0x160(%rbp,%rax,8),%xmm1
ff ff
movsd  0x198e(%rip),%xmm0
mulsd  %xmm1,%xmm0
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x200(%rbp,%rax,8)
ff ff
movslq -0x384(%rbp),%rax
movsd  -0x100(%rbp,%rax,8),%xmm1
ff ff
movslq -0x384(%rbp),%rax
addsd  -0x120(%rbp,%rax,8),%xmm1
ff ff
movslq -0x384(%rbp),%rax
addsd  -0x160(%rbp,%rax,8),%xmm1
ff ff
movslq -0x384(%rbp),%rax
addsd  -0x140(%rbp,%rax,8),%xmm1
ff ff
movsd  0x1932(%rip),%xmm0
mulsd  %xmm1,%xmm0
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x220(%rbp,%rax,8)
ff ff
movslq -0x384(%rbp),%rax
movsd  -0x180(%rbp,%rax,8),%xmm1
movslq -0x384(%rbp),%rax
addsd  -0x220(%rbp,%rax,8),%xmm1
ff ff
movsd  0x18ee(%rip),%xmm0
mulsd  %xmm1,%xmm0
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x240(%rbp,%rax,8)
ff ff
mov    -0x39c(%rbp),%eax
add    -0x388(%rbp),%eax
mov    %eax,-0x388(%rbp)
movsd  0x18b8(%rip),%xmm0
mulsd  -0x368(%rbp),%xmm0
ff
movslq -0x384(%rbp),%rax
mulsd  -0x360(%rbp,%rax,8),%xmm0
ff ff
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x260(%rbp,%rax,8)
ff ff
movsd  0x1888(%rip),%xmm0
mulsd  -0x368(%rbp),%xmm0
ff
movslq -0x384(%rbp),%rax
mulsd  -0x360(%rbp,%rax,8),%xmm0
ff ff
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x280(%rbp,%rax,8)
ff ff
movsd  0x1858(%rip),%xmm0
mulsd  -0x368(%rbp),%xmm0
ff
movslq -0x384(%rbp),%rax
mulsd  -0x360(%rbp,%rax,8),%xmm0
ff ff
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x2a0(%rbp,%rax,8)
ff ff
movsd  0x1828(%rip),%xmm0
mulsd  -0x368(%rbp),%xmm0
ff
movslq -0x384(%rbp),%rax
mulsd  -0x360(%rbp,%rax,8),%xmm0
ff ff
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x2c0(%rbp,%rax,8)
ff ff
movsd  0x17f8(%rip),%xmm0
mulsd  -0x368(%rbp),%xmm0
ff
movslq -0x384(%rbp),%rax
mulsd  -0x360(%rbp,%rax,8),%xmm0
ff ff
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x2e0(%rbp,%rax,8)
ff ff
movsd  0x17c8(%rip),%xmm0
mulsd  -0x368(%rbp),%xmm0
ff
movslq -0x384(%rbp),%rax
mulsd  -0x360(%rbp,%rax,8),%xmm0
ff ff
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x300(%rbp,%rax,8)
ff ff
movsd  0x1798(%rip),%xmm0
mulsd  -0x368(%rbp),%xmm0
ff
movslq -0x384(%rbp),%rax
mulsd  -0x360(%rbp,%rax,8),%xmm0
ff ff
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x320(%rbp,%rax,8)
ff ff
movsd  0x1768(%rip),%xmm0
mulsd  -0x368(%rbp),%xmm0
ff
movslq -0x384(%rbp),%rax
mulsd  -0x360(%rbp,%rax,8),%xmm0
ff ff
movslq -0x384(%rbp),%rax
movsd  %xmm0,-0x340(%rbp,%rax,8)
ff ff
mov    -0x384(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x384(%rbp)
jmp    1323 <VAMPIREdiag3D+0x213>
lea    -0x80(%rbp),%rdi
lea    -0xa0(%rbp),%rsi
lea    -0x180(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x260(%rbp),%r8
lea    -0x280(%rbp),%r9
lea    -0x2c0(%rbp),%r15
lea    -0x2a0(%rbp),%r14
lea    -0x2e0(%rbp),%rbx
lea    -0x300(%rbp),%r11
lea    -0x340(%rbp),%r10
lea    -0x320(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
movq   %xmm0,%r12
movabs $0x8000000000000000,%r13
xor    %r13,%r12
movq   %r12,%xmm0
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0xa0(%rbp),%rdi
lea    -0xe0(%rbp),%rsi
lea    -0x180(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x280(%rbp),%r8
lea    -0x2c0(%rbp),%r9
lea    -0x2a0(%rbp),%r15
lea    -0x260(%rbp),%r14
lea    -0x300(%rbp),%rbx
lea    -0x340(%rbp),%r11
lea    -0x320(%rbp),%r10
lea    -0x2e0(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
movq   %xmm0,%r12
movabs $0x8000000000000000,%r13
xor    %r13,%r12
movq   %r12,%xmm0
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0xe0(%rbp),%rdi
lea    -0xc0(%rbp),%rsi
lea    -0x180(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x2c0(%rbp),%r8
lea    -0x2a0(%rbp),%r9
lea    -0x260(%rbp),%r15
lea    -0x280(%rbp),%r14
lea    -0x340(%rbp),%rbx
lea    -0x320(%rbp),%r11
lea    -0x2e0(%rbp),%r10
lea    -0x300(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
movq   %xmm0,%r12
movabs $0x8000000000000000,%r13
xor    %r13,%r12
movq   %r12,%xmm0
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0xc0(%rbp),%rdi
lea    -0x80(%rbp),%rsi
lea    -0x180(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x2a0(%rbp),%r8
lea    -0x260(%rbp),%r9
lea    -0x280(%rbp),%r15
lea    -0x2c0(%rbp),%r14
lea    -0x320(%rbp),%rbx
lea    -0x2e0(%rbp),%r11
lea    -0x300(%rbp),%r10
lea    -0x340(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
movq   %xmm0,%r12
movabs $0x8000000000000000,%r13
xor    %r13,%r12
movq   %r12,%xmm0
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0xa0(%rbp),%rdi
lea    -0xe0(%rbp),%rsi
lea    -0x1a0(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x280(%rbp),%r8
lea    -0x2c0(%rbp),%r9
lea    -0x340(%rbp),%r15
lea    -0x300(%rbp),%r14
lea    -0x260(%rbp),%rbx
lea    -0x2a0(%rbp),%r11
lea    -0x320(%rbp),%r10
lea    -0x2e0(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0xe0(%rbp),%rdi
lea    -0x160(%rbp),%rsi
lea    -0x1a0(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x2c0(%rbp),%r8
lea    -0x340(%rbp),%r9
lea    -0x300(%rbp),%r15
lea    -0x280(%rbp),%r14
lea    -0x2a0(%rbp),%rbx
lea    -0x320(%rbp),%r11
lea    -0x2e0(%rbp),%r10
lea    -0x260(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0x160(%rbp),%rdi
lea    -0x120(%rbp),%rsi
lea    -0x1a0(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x340(%rbp),%r8
lea    -0x300(%rbp),%r9
lea    -0x280(%rbp),%r15
lea    -0x2c0(%rbp),%r14
lea    -0x320(%rbp),%rbx
lea    -0x2e0(%rbp),%r11
lea    -0x260(%rbp),%r10
lea    -0x2a0(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0x120(%rbp),%rdi
lea    -0xa0(%rbp),%rsi
lea    -0x1a0(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x300(%rbp),%r8
lea    -0x280(%rbp),%r9
lea    -0x2c0(%rbp),%r15
lea    -0x340(%rbp),%r14
lea    -0x2e0(%rbp),%rbx
lea    -0x260(%rbp),%r11
lea    -0x2a0(%rbp),%r10
lea    -0x320(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0x80(%rbp),%rdi
lea    -0xa0(%rbp),%rsi
lea    -0x1c0(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x260(%rbp),%r8
lea    -0x280(%rbp),%r9
lea    -0x300(%rbp),%r15
lea    -0x2e0(%rbp),%r14
lea    -0x2a0(%rbp),%rbx
lea    -0x2c0(%rbp),%r11
lea    -0x340(%rbp),%r10
lea    -0x320(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0xa0(%rbp),%rdi
lea    -0x120(%rbp),%rsi
lea    -0x1c0(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x280(%rbp),%r8
lea    -0x300(%rbp),%r9
lea    -0x2e0(%rbp),%r15
lea    -0x260(%rbp),%r14
lea    -0x2c0(%rbp),%rbx
lea    -0x340(%rbp),%r11
lea    -0x320(%rbp),%r10
lea    -0x2a0(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0x120(%rbp),%rdi
lea    -0x100(%rbp),%rsi
lea    -0x1c0(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x300(%rbp),%r8
lea    -0x2e0(%rbp),%r9
lea    -0x260(%rbp),%r15
lea    -0x280(%rbp),%r14
lea    -0x340(%rbp),%rbx
lea    -0x320(%rbp),%r11
lea    -0x2a0(%rbp),%r10
lea    -0x2c0(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0x100(%rbp),%rdi
lea    -0x80(%rbp),%rsi
lea    -0x1c0(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x2e0(%rbp),%r8
lea    -0x260(%rbp),%r9
lea    -0x280(%rbp),%r15
lea    -0x300(%rbp),%r14
lea    -0x320(%rbp),%rbx
lea    -0x2a0(%rbp),%r11
lea    -0x2c0(%rbp),%r10
lea    -0x340(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0xc0(%rbp),%rdi
lea    -0x80(%rbp),%rsi
lea    -0x1e0(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x2a0(%rbp),%r8
lea    -0x260(%rbp),%r9
lea    -0x2e0(%rbp),%r15
lea    -0x320(%rbp),%r14
lea    -0x2c0(%rbp),%rbx
lea    -0x280(%rbp),%r11
lea    -0x300(%rbp),%r10
lea    -0x340(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0x80(%rbp),%rdi
lea    -0x100(%rbp),%rsi
lea    -0x1e0(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x260(%rbp),%r8
lea    -0x2e0(%rbp),%r9
lea    -0x320(%rbp),%r15
lea    -0x2a0(%rbp),%r14
lea    -0x280(%rbp),%rbx
lea    -0x300(%rbp),%r11
lea    -0x340(%rbp),%r10
lea    -0x2c0(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0x100(%rbp),%rdi
lea    -0x140(%rbp),%rsi
lea    -0x1e0(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x2e0(%rbp),%r8
lea    -0x320(%rbp),%r9
lea    -0x2a0(%rbp),%r15
lea    -0x260(%rbp),%r14
lea    -0x300(%rbp),%rbx
lea    -0x340(%rbp),%r11
lea    -0x2c0(%rbp),%r10
lea    -0x280(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0x140(%rbp),%rdi
lea    -0xc0(%rbp),%rsi
lea    -0x1e0(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x320(%rbp),%r8
lea    -0x2a0(%rbp),%r9
lea    -0x260(%rbp),%r15
lea    -0x2e0(%rbp),%r14
lea    -0x340(%rbp),%rbx
lea    -0x2c0(%rbp),%r11
lea    -0x280(%rbp),%r10
lea    -0x300(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0xe0(%rbp),%rdi
lea    -0xc0(%rbp),%rsi
lea    -0x200(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x2c0(%rbp),%r8
lea    -0x2a0(%rbp),%r9
lea    -0x320(%rbp),%r15
lea    -0x340(%rbp),%r14
lea    -0x280(%rbp),%rbx
lea    -0x260(%rbp),%r11
lea    -0x2e0(%rbp),%r10
lea    -0x300(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0xc0(%rbp),%rdi
lea    -0x140(%rbp),%rsi
lea    -0x200(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x2a0(%rbp),%r8
lea    -0x320(%rbp),%r9
lea    -0x340(%rbp),%r15
lea    -0x2c0(%rbp),%r14
lea    -0x260(%rbp),%rbx
lea    -0x2e0(%rbp),%r11
lea    -0x300(%rbp),%r10
lea    -0x280(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0x140(%rbp),%rdi
lea    -0x160(%rbp),%rsi
lea    -0x200(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x320(%rbp),%r8
lea    -0x340(%rbp),%r9
lea    -0x2c0(%rbp),%r15
lea    -0x2a0(%rbp),%r14
lea    -0x2e0(%rbp),%rbx
lea    -0x300(%rbp),%r11
lea    -0x280(%rbp),%r10
lea    -0x260(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0x160(%rbp),%rdi
lea    -0xe0(%rbp),%rsi
lea    -0x200(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x340(%rbp),%r8
lea    -0x2c0(%rbp),%r9
lea    -0x2a0(%rbp),%r15
lea    -0x320(%rbp),%r14
lea    -0x300(%rbp),%rbx
lea    -0x280(%rbp),%r11
lea    -0x260(%rbp),%r10
lea    -0x2e0(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0x100(%rbp),%rdi
lea    -0x120(%rbp),%rsi
lea    -0x220(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x2e0(%rbp),%r8
lea    -0x300(%rbp),%r9
lea    -0x340(%rbp),%r15
lea    -0x320(%rbp),%r14
lea    -0x260(%rbp),%rbx
lea    -0x280(%rbp),%r11
lea    -0x2c0(%rbp),%r10
lea    -0x2a0(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0x120(%rbp),%rdi
lea    -0x160(%rbp),%rsi
lea    -0x220(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x300(%rbp),%r8
lea    -0x340(%rbp),%r9
lea    -0x320(%rbp),%r15
lea    -0x2e0(%rbp),%r14
lea    -0x280(%rbp),%rbx
lea    -0x2c0(%rbp),%r11
lea    -0x2a0(%rbp),%r10
lea    -0x260(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0x160(%rbp),%rdi
lea    -0x140(%rbp),%rsi
lea    -0x220(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x340(%rbp),%r8
lea    -0x320(%rbp),%r9
lea    -0x2e0(%rbp),%r15
lea    -0x300(%rbp),%r14
lea    -0x2c0(%rbp),%rbx
lea    -0x2a0(%rbp),%r11
lea    -0x260(%rbp),%r10
lea    -0x280(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
lea    -0x140(%rbp),%rdi
lea    -0x100(%rbp),%rsi
lea    -0x220(%rbp),%rdx
lea    -0x240(%rbp),%rcx
lea    -0x320(%rbp),%r8
lea    -0x2e0(%rbp),%r9
lea    -0x300(%rbp),%r15
lea    -0x340(%rbp),%r14
lea    -0x2a0(%rbp),%rbx
lea    -0x260(%rbp),%r11
lea    -0x280(%rbp),%r10
lea    -0x2c0(%rbp),%rax
movsd  -0x370(%rbp),%xmm0
ff
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11,0x18(%rsp)
mov    %r10,0x20(%rsp)
mov    %rax,0x28(%rsp)
mov    $0x1,%al
call   1030 <VAMPIREdiagTetra@plt>
movl   $0x0,-0x388(%rbp)
movl   $0x0,-0x384(%rbp)
cmpl   $0x3,-0x384(%rbp)
jge    282b <VAMPIREdiag3D+0x171b>
mov    -0x30(%rbp),%rax
movslq -0x38c(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x388(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x3c0(%rbp)
movsd  -0x398(%rbp),%xmm0
ff
movslq -0x384(%rbp),%rax
mulsd  -0x260(%rbp,%rax,8),%xmm0
ff ff
movslq -0x384(%rbp),%rax
movsd  -0x260(%rbp,%rax,8),%xmm2
ff ff
mov    -0x3c0(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
mov    -0x3c0(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x3c0(%rbp)
movsd  -0x398(%rbp),%xmm0
ff
movslq -0x384(%rbp),%rax
mulsd  -0x280(%rbp,%rax,8),%xmm0
ff ff
movslq -0x384(%rbp),%rax
movsd  -0x280(%rbp,%rax,8),%xmm2
ff ff
mov    -0x3c0(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
mov    -0x3a8(%rbp),%ecx
mov    -0x3c0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x3c0(%rbp)
movsd  -0x398(%rbp),%xmm0
ff
movslq -0x384(%rbp),%rax
mulsd  -0x2c0(%rbp,%rax,8),%xmm0
ff ff
movslq -0x384(%rbp),%rax
movsd  -0x2c0(%rbp,%rax,8),%xmm2
ff ff
mov    -0x3c0(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
mov    -0x3c0(%rbp),%rax
add    $0xfffffffffffffff8,%rax
mov    %rax,-0x3c0(%rbp)
movsd  -0x398(%rbp),%xmm0
ff
movslq -0x384(%rbp),%rax
mulsd  -0x2a0(%rbp,%rax,8),%xmm0
ff ff
movslq -0x384(%rbp),%rax
movsd  -0x2a0(%rbp,%rax,8),%xmm2
ff ff
mov    -0x3c0(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
mov    -0x3ac(%rbp),%ecx
mov    -0x3c0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x3c0(%rbp)
movsd  -0x398(%rbp),%xmm0
ff
movslq -0x384(%rbp),%rax
mulsd  -0x320(%rbp,%rax,8),%xmm0
ff ff
movslq -0x384(%rbp),%rax
movsd  -0x320(%rbp,%rax,8),%xmm2
ff ff
mov    -0x3c0(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
mov    -0x3c0(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x3c0(%rbp)
movsd  -0x398(%rbp),%xmm0
ff
movslq -0x384(%rbp),%rax
mulsd  -0x340(%rbp,%rax,8),%xmm0
ff ff
movslq -0x384(%rbp),%rax
movsd  -0x340(%rbp,%rax,8),%xmm2
ff ff
mov    -0x3c0(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
mov    -0x3a8(%rbp),%ecx
mov    -0x3c0(%rbp),%rax
movslq %ecx,%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x3c0(%rbp)
movsd  -0x398(%rbp),%xmm0
ff
movslq -0x384(%rbp),%rax
mulsd  -0x300(%rbp,%rax,8),%xmm0
ff ff
movslq -0x384(%rbp),%rax
movsd  -0x300(%rbp,%rax,8),%xmm2
ff ff
mov    -0x3c0(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
mov    -0x3c0(%rbp),%rax
add    $0xfffffffffffffff8,%rax
mov    %rax,-0x3c0(%rbp)
movsd  -0x398(%rbp),%xmm0
ff
movslq -0x384(%rbp),%rax
mulsd  -0x2e0(%rbp,%rax,8),%xmm0
ff ff
movslq -0x384(%rbp),%rax
movsd  -0x2e0(%rbp,%rax,8),%xmm2
ff ff
mov    -0x3c0(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
mov    -0x39c(%rbp),%eax
add    -0x388(%rbp),%eax
mov    %eax,-0x388(%rbp)
mov    -0x384(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x384(%rbp)
jmp    2532 <VAMPIREdiag3D+0x1422>
jmp    2830 <VAMPIREdiag3D+0x1720>
mov    -0x380(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x380(%rbp)
jmp    121b <VAMPIREdiag3D+0x10b>
jmp    2849 <VAMPIREdiag3D+0x1739>
mov    -0x37c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x37c(%rbp)
jmp    1202 <VAMPIREdiag3D+0xf2>
jmp    2862 <VAMPIREdiag3D+0x1752>
mov    -0x378(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x378(%rbp)
jmp    11e9 <VAMPIREdiag3D+0xd9>
add    $0x3c8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

x86 assembly (clang, -O2):
<VAMPIREdiag3D>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x448,%rsp
mov    %r9,0x320(%rsp)
mov    %r8,0x318(%rsp)
mov    %rcx,0x310(%rsp)
mov    %rsi,0x140(%rsp)
mov    %rdi,0x308(%rsp)
cvttsd2si (%rdx),%eax
test   %eax,%eax
jle    22cc <VAMPIREdiag3D+0x11bc>
cvttsd2si 0x8(%rdx),%ebx
cvttsd2si 0x10(%rdx),%ecx
mov    0x480(%rsp),%rdx
movsd  (%rdx),%xmm0
mulsd  0x8(%rdx),%xmm0
mulsd  0x10(%rdx),%xmm0
lea    0x1(%rax),%ebp
lea    0x1(%rbx),%edx
imul   %ebp,%edx
mov    %ebx,%esi
imul   %eax,%esi
imul   %ecx,%esi
lea    0x1(%rcx),%edi
imul   %edx,%edi
lea    (%rsi,%rsi,1),%r8d
mov    %ebp,%ebp
movslq %edx,%r9
mov    %rbp,%rdx
neg    %rdx
mov    %rdx,0x300(%rsp)
movslq %edi,%rdi
mov    %rbx,0x2a0(%rsp)
movslq %ebx,%rdx
mov    %eax,%eax
mov    %rax,0x180(%rsp)
movslq %r8d,%rax
mov    %rax,0x2f0(%rsp)
movslq %esi,%rax
mov    %rax,0x2e8(%rsp)
mov    %rdx,0x2f8(%rsp)
mov    %edx,%eax
mov    %rax,0x2b0(%rsp)
mov    %rcx,0x2b8(%rsp)
mov    %ecx,%eax
mov    %rax,0x2e0(%rsp)
lea    (%rdi,%rdi,1),%rax
mov    %rax,0x2d8(%rsp)
movapd %xmm0,0x400(%rsp)
unpcklpd %xmm0,%xmm0
movapd %xmm0,0x430(%rsp)
lea    0x0(,%rbp,8),%rax
mov    %rax,0x2a8(%rsp)
lea    (%r9,%rbp,1),%rax
mov    0x140(%rsp),%rcx
lea    (%rcx,%rax,8),%rax
mov    %rax,0x158(%rsp)
movsd  0x1dc0(%rip),%xmm12
movsd  0x1dbf(%rip),%xmm13
lea    0x0(,%r9,8),%rax
mov    %rax,0x2d0(%rsp)
mov    %rbp,0x188(%rsp)
lea    (%rcx,%rbp,8),%rax
mov    %rax,0x150(%rsp)
lea    (%rcx,%r9,8),%rax
mov    %rax,0x148(%rsp)
xor    %eax,%eax
mov    %rax,0x130(%rsp)
mov    %r9,0x2c8(%rsp)
mov    %rdi,0x2c0(%rsp)
jmp    12e9 <VAMPIREdiag3D+0x1d9>
nopl   (%rax)
mov    0x130(%rsp),%rcx
add    $0x1,%rcx
addq   $0x8,0x140(%rsp)
addq   $0x8,0x150(%rsp)
addq   $0x8,0x158(%rsp)
addq   $0x8,0x148(%rsp)
mov    %rcx,%rax
mov    %rcx,0x130(%rsp)
cmp    0x180(%rsp),%rcx
je     22cc <VAMPIREdiag3D+0x11bc>
cmpl   $0x0,0x2a0(%rsp)
jle    12a0 <VAMPIREdiag3D+0x190>
mov    0x148(%rsp),%rax
mov    %rax,0x178(%rsp)
mov    0x158(%rsp),%rax
mov    %rax,0x170(%rsp)
mov    0x150(%rsp),%rax
mov    %rax,0x168(%rsp)
mov    0x140(%rsp),%rax
mov    %rax,0x160(%rsp)
xor    %eax,%eax
mov    %rax,0x138(%rsp)
jmp    138d <VAMPIREdiag3D+0x27d>
nop
mov    0x138(%rsp),%rcx
add    $0x1,%rcx
mov    0x2a8(%rsp),%rax
add    %rax,0x160(%rsp)
add    %rax,0x168(%rsp)
add    %rax,0x170(%rsp)
add    %rax,0x178(%rsp)
mov    %rcx,%rax
mov    %rcx,0x138(%rsp)
cmp    0x2b0(%rsp),%rcx
je     12a0 <VAMPIREdiag3D+0x190>
cmpl   $0x0,0x2b8(%rsp)
jle    1340 <VAMPIREdiag3D+0x230>
mov    0x138(%rsp),%rax
imul   0x188(%rsp),%rax
add    0x130(%rsp),%rax
mov    %rax,0x328(%rsp)
mov    0x178(%rsp),%r13
mov    0x170(%rsp),%rbp
mov    0x168(%rsp),%r12
mov    0x160(%rsp),%r14
xor    %ecx,%ecx
jmp    2069 <VAMPIREdiag3D+0xf59>
nop
divsd  0x400(%rsp),%xmm14
movapd %xmm14,(%rsp)
xorpd  0x1c27(%rip),%xmm14
movapd %xmm14,%xmm0
movapd %xmm14,0x270(%rsp)
lea    0x250(%rsp),%rdi
lea    0x230(%rsp),%rsi
lea    0x3e0(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0xf0(%rsp),%r8
lea    0x10(%rsp),%r9
mov    $0x1,%al
lea    0x30(%rsp),%r15
push   %r15
lea    0x98(%rsp),%rbx
push   %rbx
lea    0xc0(%rsp),%rbx
push   %rbx
lea    0xe8(%rsp),%r15
push   %r15
lea    0x130(%rsp),%rbx
push   %rbx
lea    0x78(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x230(%rsp),%rdi
lea    0x1f0(%rsp),%rsi
lea    0x3e0(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0x10(%rsp),%r8
mov    %rbx,%r9
movaps 0x270(%rsp),%xmm0
mov    $0x1,%al
push   %r15
lea    0x38(%rsp),%rbx
push   %rbx
lea    0xa0(%rsp),%rbx
push   %rbx
lea    0xc8(%rsp),%r15
push   %r15
lea    0x110(%rsp),%rbx
push   %rbx
lea    0x138(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x1f0(%rsp),%rdi
lea    0x210(%rsp),%rsi
lea    0x3e0(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0x50(%rsp),%r8
mov    %rbx,%r9
movaps 0x270(%rsp),%xmm0
mov    $0x1,%al
push   %r15
lea    0xd8(%rsp),%rbx
push   %rbx
lea    0x40(%rsp),%rbx
push   %rbx
lea    0xa8(%rsp),%r15
push   %r15
lea    0x30(%rsp),%rbx
push   %rbx
lea    0x118(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x210(%rsp),%rdi
lea    0x250(%rsp),%rsi
lea    0x3e0(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0x110(%rsp),%r8
mov    %rbx,%r9
movaps 0x270(%rsp),%xmm0
mov    $0x1,%al
push   %r15
lea    0xb8(%rsp),%rbx
push   %rbx
lea    0xe0(%rsp),%rbx
push   %rbx
lea    0x48(%rsp),%rbx
push   %rbx
lea    0x70(%rsp),%rbx
push   %rbx
lea    0x38(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x230(%rsp),%rdi
lea    0x1f0(%rsp),%rsi
lea    0x3c0(%rsp),%rdx
lea    0x70(%rsp),%rcx
mov    %rbx,%r8
lea    0x50(%rsp),%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
lea    0xd0(%rsp),%rbx
push   %rbx
lea    0x38(%rsp),%rbx
push   %rbx
lea    0x120(%rsp),%rbx
push   %rbx
lea    0x108(%rsp),%r15
push   %r15
lea    0xd0(%rsp),%rbx
push   %rbx
lea    0xb8(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x1f0(%rsp),%rdi
lea    0x190(%rsp),%rsi
lea    0x3c0(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0x50(%rsp),%r8
mov    %rbx,%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
push   %r15
lea    0xd8(%rsp),%rbx
push   %rbx
lea    0x40(%rsp),%rbx
push   %rbx
lea    0x128(%rsp),%r15
push   %r15
lea    0x30(%rsp),%rbx
push   %rbx
lea    0xd8(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x190(%rsp),%rdi
lea    0x280(%rsp),%rsi
lea    0x3c0(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0x90(%rsp),%r8
mov    %rbx,%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
push   %r15
lea    0xf8(%rsp),%rbx
push   %rbx
lea    0xe0(%rsp),%rbx
push   %rbx
lea    0x48(%rsp),%rbx
push   %rbx
lea    0x70(%rsp),%rbx
push   %rbx
lea    0x38(%rsp),%r15
push   %r15
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x280(%rsp),%rdi
lea    0x230(%rsp),%rsi
lea    0x3c0(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0xb0(%rsp),%r8
mov    %r15,%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
lea    0x30(%rsp),%rbx
push   %rbx
lea    0x118(%rsp),%rbx
push   %rbx
lea    0x100(%rsp),%r15
push   %r15
lea    0xe8(%rsp),%rbx
push   %rbx
lea    0xb0(%rsp),%rbx
push   %rbx
lea    0x78(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x250(%rsp),%rdi
lea    0x230(%rsp),%rsi
lea    0x3a0(%rsp),%rdx
lea    0x70(%rsp),%rcx
mov    %r15,%r8
lea    0x10(%rsp),%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
lea    0x30(%rsp),%rbx
push   %rbx
lea    0x98(%rsp),%rbx
push   %rbx
lea    0x60(%rsp),%rbx
push   %rbx
lea    0x128(%rsp),%rbx
push   %rbx
lea    0xf0(%rsp),%rbx
push   %rbx
lea    0xd8(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x230(%rsp),%rdi
lea    0x280(%rsp),%r15
mov    %r15,%rsi
lea    0x3a0(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0x10(%rsp),%r8
mov    %rbx,%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
lea    0x110(%rsp),%rbx
push   %rbx
lea    0x38(%rsp),%rbx
push   %rbx
lea    0xa0(%rsp),%rbx
push   %rbx
lea    0x68(%rsp),%rbx
push   %rbx
lea    0x110(%rsp),%rbx
push   %rbx
lea    0xf8(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
mov    %r15,%rdi
lea    0x1d0(%rsp),%rsi
lea    0x3a0(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0xb0(%rsp),%r8
mov    %rbx,%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
lea    0x50(%rsp),%rbx
push   %rbx
lea    0x118(%rsp),%rbx
push   %rbx
lea    0x40(%rsp),%rbx
push   %rbx
lea    0xa8(%rsp),%r15
push   %r15
lea    0x30(%rsp),%rbx
push   %rbx
lea    0x118(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x1d0(%rsp),%rdi
lea    0x250(%rsp),%rsi
lea    0x3a0(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0xd0(%rsp),%r8
mov    %rbx,%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
push   %r15
lea    0x58(%rsp),%rbx
push   %rbx
lea    0x120(%rsp),%r15
push   %r15
lea    0x48(%rsp),%rbx
push   %rbx
lea    0xd0(%rsp),%rbx
push   %rbx
lea    0x38(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x210(%rsp),%rdi
lea    0x250(%rsp),%rsi
lea    0x380(%rsp),%rdx
lea    0x70(%rsp),%rcx
mov    %r15,%r8
lea    0xf0(%rsp),%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
lea    0x90(%rsp),%rbx
push   %rbx
lea    0xb8(%rsp),%rbx
push   %rbx
lea    0x20(%rsp),%rbx
push   %rbx
lea    0x68(%rsp),%r15
push   %r15
lea    0x50(%rsp),%rbx
push   %rbx
lea    0xf8(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x250(%rsp),%rdi
lea    0x1d0(%rsp),%rsi
lea    0x380(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0xf0(%rsp),%r8
mov    %rbx,%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
push   %r15
lea    0x98(%rsp),%rbx
push   %rbx
lea    0xc0(%rsp),%rbx
push   %rbx
lea    0x28(%rsp),%rbx
push   %rbx
lea    0x130(%rsp),%rbx
push   %rbx
lea    0x58(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x1d0(%rsp),%rdi
lea    0x1b0(%rsp),%rsi
lea    0x380(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0xd0(%rsp),%r8
mov    %rbx,%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
lea    0x10(%rsp),%rbx
push   %rbx
lea    0x58(%rsp),%rbx
push   %rbx
lea    0xa0(%rsp),%rbx
push   %rbx
lea    0xc8(%rsp),%rbx
push   %rbx
lea    0x110(%rsp),%rbx
push   %rbx
lea    0x138(%rsp),%r15
push   %r15
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x1b0(%rsp),%rdi
lea    0x210(%rsp),%rsi
lea    0x380(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0x30(%rsp),%r8
mov    %r15,%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
lea    0xb0(%rsp),%rbx
push   %rbx
lea    0x18(%rsp),%rbx
push   %rbx
lea    0x60(%rsp),%rbx
push   %rbx
lea    0xa8(%rsp),%rbx
push   %rbx
lea    0xf0(%rsp),%r15
push   %r15
lea    0x118(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x1f0(%rsp),%rdi
lea    0x210(%rsp),%rsi
lea    0x360(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0x50(%rsp),%r8
lea    0x110(%rsp),%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
lea    0xb0(%rsp),%rbx
push   %rbx
push   %r15
lea    0x100(%rsp),%rbx
push   %rbx
lea    0x28(%rsp),%rbx
push   %rbx
lea    0xb0(%rsp),%rbx
push   %rbx
lea    0x58(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x210(%rsp),%rdi
lea    0x1b0(%rsp),%rsi
lea    0x360(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0x110(%rsp),%r8
mov    %rbx,%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
lea    0x10(%rsp),%rbx
push   %rbx
lea    0xb8(%rsp),%r15
push   %r15
lea    0xe0(%rsp),%rbx
push   %rbx
lea    0x108(%rsp),%rbx
push   %rbx
lea    0x70(%rsp),%rbx
push   %rbx
lea    0xb8(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x1b0(%rsp),%rdi
lea    0x190(%rsp),%rsi
lea    0x360(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0x30(%rsp),%r8
lea    0x90(%rsp),%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
lea    0xf0(%rsp),%rbx
push   %rbx
lea    0x18(%rsp),%rbx
push   %rbx
push   %r15
lea    0xe8(%rsp),%rbx
push   %rbx
lea    0x130(%rsp),%r15
push   %r15
lea    0x78(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x190(%rsp),%rdi
lea    0x1f0(%rsp),%rsi
lea    0x360(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0x90(%rsp),%r8
mov    %rbx,%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
lea    0xd0(%rsp),%rbx
push   %rbx
lea    0xf8(%rsp),%rbx
push   %rbx
lea    0x20(%rsp),%rbx
push   %rbx
lea    0xc8(%rsp),%rbx
push   %rbx
lea    0x50(%rsp),%rbx
push   %rbx
push   %r15
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x1d0(%rsp),%rdi
lea    0x280(%rsp),%rsi
lea    0x340(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0xd0(%rsp),%r8
lea    0xb0(%rsp),%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
push   %r15
lea    0x58(%rsp),%rbx
push   %rbx
lea    0x20(%rsp),%rbx
push   %rbx
lea    0x108(%rsp),%r15
push   %r15
lea    0x50(%rsp),%rbx
push   %rbx
lea    0xb8(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x280(%rsp),%rdi
lea    0x190(%rsp),%rsi
lea    0x340(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0xb0(%rsp),%r8
mov    %rbx,%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
push   %r15
lea    0x118(%rsp),%rbx
push   %rbx
lea    0x60(%rsp),%rbx
push   %rbx
lea    0x28(%rsp),%rbx
push   %rbx
lea    0xf0(%rsp),%rbx
push   %rbx
lea    0x58(%rsp),%r15
push   %r15
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x190(%rsp),%rdi
lea    0x1b0(%rsp),%rsi
lea    0x340(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0x90(%rsp),%r8
mov    %r15,%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
lea    0x10(%rsp),%rbx
push   %rbx
lea    0xf8(%rsp),%rbx
push   %rbx
lea    0x120(%rsp),%rbx
push   %rbx
lea    0x68(%rsp),%rbx
push   %rbx
lea    0xd0(%rsp),%rbx
push   %rbx
lea    0xf8(%rsp),%r15
push   %r15
call   1030 <VAMPIREdiagTetra@plt>
add    $0x30,%rsp
lea    0x1b0(%rsp),%rdi
lea    0x1d0(%rsp),%rsi
lea    0x340(%rsp),%rdx
lea    0x70(%rsp),%rcx
lea    0x30(%rsp),%r8
mov    %r15,%r9
movaps (%rsp),%xmm0
mov    $0x1,%al
lea    0x50(%rsp),%rbx
push   %rbx
lea    0x18(%rsp),%rbx
push   %rbx
lea    0x100(%rsp),%rbx
push   %rbx
lea    0x128(%rsp),%rbx
push   %rbx
lea    0xb0(%rsp),%rbx
push   %rbx
lea    0xd8(%rsp),%rbx
push   %rbx
call   1030 <VAMPIREdiagTetra@plt>
mov    0x2f0(%rsp),%rdi
mov    0x2f8(%rsp),%r9
movsd  0x12a3(%rip),%xmm13
movsd  0x1292(%rip),%xmm12
add    $0x30,%rsp
mov    0x308(%rsp),%rcx
mov    0x330(%rsp),%rdx
lea    (%rcx,%rdx,8),%rax
movapd 0xf0(%rsp),%xmm0
movhpd 0x10(%rsp),%xmm0
movapd 0x430(%rsp),%xmm3
movapd %xmm3,%xmm1
mulpd  %xmm0,%xmm1
movupd (%rcx,%rdx,8),%xmm2
mulpd  %xmm0,%xmm1
addpd  %xmm2,%xmm1
movupd %xmm1,(%rcx,%rdx,8)
mov    0x188(%rsp),%rdx
lea    (%rax,%rdx,8),%rcx
movapd 0x110(%rsp),%xmm0
movhpd 0x50(%rsp),%xmm0
movapd %xmm3,%xmm1
mulpd  %xmm0,%xmm1
movupd (%rax,%rdx,8),%xmm2
mulpd  %xmm0,%xmm1
addpd  %xmm2,%xmm1
movupd %xmm1,(%rax,%rdx,8)
movapd 0x30(%rsp),%xmm0
movhpd 0x90(%rsp),%xmm0
movapd %xmm3,%xmm1
mulpd  %xmm0,%xmm1
movupd (%rcx,%r9,8),%xmm2
mulpd  %xmm0,%xmm1
addpd  %xmm2,%xmm1
movupd %xmm1,(%rcx,%r9,8)
lea    (%rcx,%r9,8),%rcx
movsd  0xb0(%rsp),%xmm0
movapd 0x400(%rsp),%xmm4
movapd %xmm4,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
mov    0x300(%rsp),%rsi
addsd  0x8(%rcx,%rsi,8),%xmm1
movsd  %xmm1,0x8(%rcx,%rsi,8)
movsd  0xd0(%rsp),%xmm0
movapd %xmm4,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
addsd  (%rcx,%rsi,8),%xmm1
movsd  %xmm1,(%rcx,%rsi,8)
movupd 0xf8(%rsp),%xmm0
movhpd 0x18(%rsp),%xmm0
movapd %xmm3,%xmm1
mulpd  %xmm0,%xmm1
movupd (%rax,%rdi,8),%xmm2
mulpd  %xmm0,%xmm1
addpd  %xmm2,%xmm1
movupd %xmm1,(%rax,%rdi,8)
movupd 0x118(%rsp),%xmm0
movhpd 0x58(%rsp),%xmm0
lea    (%rax,%rdi,8),%rcx
movapd %xmm3,%xmm1
mulpd  %xmm0,%xmm1
movupd (%rcx,%rdx,8),%xmm2
mulpd  %xmm0,%xmm1
addpd  %xmm2,%xmm1
movupd %xmm1,(%rcx,%rdx,8)
lea    (%rcx,%rdx,8),%rcx
movsd  0x38(%rsp),%xmm0
movapd %xmm4,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
addsd  (%rcx,%r9,8),%xmm1
movsd  %xmm1,(%rcx,%r9,8)
movsd  0x98(%rsp),%xmm0
movapd %xmm4,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
addsd  0x8(%rcx,%r9,8),%xmm1
movsd  %xmm1,0x8(%rcx,%r9,8)
lea    (%rcx,%r9,8),%rcx
movsd  0xb8(%rsp),%xmm0
movapd %xmm4,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
addsd  0x8(%rcx,%rsi,8),%xmm1
movsd  %xmm1,0x8(%rcx,%rsi,8)
movsd  0xd8(%rsp),%xmm0
movapd %xmm4,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
addsd  (%rcx,%rsi,8),%xmm1
movsd  %xmm1,(%rcx,%rsi,8)
movsd  0x100(%rsp),%xmm0
movhpd 0x20(%rsp),%xmm0
movapd %xmm3,%xmm1
mulpd  %xmm0,%xmm1
mov    0x2d8(%rsp),%rcx
movupd (%rax,%rcx,8),%xmm2
mulpd  %xmm0,%xmm1
addpd  %xmm2,%xmm1
movupd %xmm1,(%rax,%rcx,8)
movsd  0x120(%rsp),%xmm0
movhpd 0x60(%rsp),%xmm0
lea    (%rax,%rcx,8),%rax
movapd %xmm3,%xmm1
mulpd  %xmm0,%xmm1
movupd (%rax,%rdx,8),%xmm2
mulpd  %xmm0,%xmm1
addpd  %xmm2,%xmm1
movupd %xmm1,(%rax,%rdx,8)
lea    (%rax,%rdx,8),%rax
movsd  0x40(%rsp),%xmm0
movapd %xmm4,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
addsd  (%rax,%r9,8),%xmm1
movsd  %xmm1,(%rax,%r9,8)
movsd  0xa0(%rsp),%xmm0
movapd %xmm4,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
addsd  0x8(%rax,%r9,8),%xmm1
movsd  %xmm1,0x8(%rax,%r9,8)
lea    (%rax,%r9,8),%rax
movsd  0xc0(%rsp),%xmm0
movapd %xmm4,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
addsd  0x8(%rax,%rsi,8),%xmm1
movsd  %xmm1,0x8(%rax,%rsi,8)
movsd  0xe0(%rsp),%xmm0
movapd %xmm4,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
addsd  (%rax,%rsi,8),%xmm1
movsd  %xmm1,(%rax,%rsi,8)
mov    0x338(%rsp),%rcx
add    $0x1,%rcx
mov    0x2d0(%rsp),%rax
add    %rax,%r14
add    %rax,%r12
add    %rax,%rbp
add    %rax,%r13
cmp    0x2e0(%rsp),%rcx
je     1340 <VAMPIREdiag3D+0x230>
mov    %rcx,%rax
imul   %r9,%rax
add    0x328(%rsp),%rax
mov    %rax,0x330(%rsp)
mov    %rcx,0x338(%rsp)
mov    %rcx,%rax
imul   0x2f8(%rsp),%rax
add    0x138(%rsp),%rax
imul   0x180(%rsp),%rax
add    0x130(%rsp),%rax
mov    0x320(%rsp),%rcx
movsd  (%rcx,%rax,8),%xmm14
mov    0x318(%rsp),%rdx
movsd  (%rdx,%rax,8),%xmm0
movsd  %xmm0,0x410(%rsp)
mov    0x2e8(%rsp),%rcx
add    %rax,%rcx
movsd  (%rdx,%rcx,8),%xmm1
movsd  %xmm1,0x418(%rsp)
mov    0x2f0(%rsp),%rcx
add    %rax,%rcx
movsd  (%rdx,%rcx,8),%xmm1
movsd  %xmm1,0x420(%rsp)
mov    0x310(%rsp),%rcx
movsd  (%rcx,%rax,8),%xmm8
mulsd  0xee6(%rip),%xmm8
mov    $0x1,%eax
xor    %ecx,%ecx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mulsd  %xmm8,%xmm0
movsd  -0x8(%r14,%rax,8),%xmm7
movsd  %xmm7,0x250(%rsp,%rcx,1)
movsd  (%r14,%rax,8),%xmm5
movsd  %xmm5,0x230(%rsp,%rcx,1)
movsd  (%r12,%rax,8),%xmm4
movsd  %xmm4,0x1f0(%rsp,%rcx,1)
movsd  -0x8(%r12,%rax,8),%xmm3
movsd  %xmm3,0x210(%rsp,%rcx,1)
movsd  -0x8(%rbp,%rax,8),%xmm9
movsd  %xmm9,0x1b0(%rsp,%rcx,1)
movsd  0x0(%rbp,%rax,8),%xmm10
movsd  %xmm10,0x190(%rsp,%rcx,1)
movsd  0x0(%r13,%rax,8),%xmm2
movsd  %xmm2,0x280(%rsp,%rcx,1)
movsd  -0x8(%r13,%rax,8),%xmm11
movsd  %xmm11,0x1d0(%rsp,%rcx,1)
movapd %xmm7,%xmm6
addsd  %xmm5,%xmm6
movapd %xmm6,%xmm1
addsd  %xmm4,%xmm1
addsd  %xmm3,%xmm1
mulsd  %xmm12,%xmm1
movsd  %xmm1,0x3e0(%rsp,%rcx,1)
addsd  %xmm4,%xmm5
addsd  %xmm10,%xmm5
addsd  %xmm2,%xmm5
mulsd  %xmm12,%xmm5
movsd  %xmm5,0x3c0(%rsp,%rcx,1)
addsd  %xmm2,%xmm6
addsd  %xmm11,%xmm6
mulsd  %xmm12,%xmm6
movsd  %xmm6,0x3a0(%rsp,%rcx,1)
addsd  %xmm3,%xmm7
addsd  %xmm11,%xmm7
addsd  %xmm9,%xmm7
mulsd  %xmm12,%xmm7
movsd  %xmm7,0x380(%rsp,%rcx,1)
addsd  %xmm3,%xmm4
addsd  %xmm9,%xmm4
addsd  %xmm10,%xmm4
mulsd  %xmm12,%xmm4
movsd  %xmm4,0x360(%rsp,%rcx,1)
addsd  %xmm11,%xmm2
addsd  %xmm10,%xmm2
addsd  %xmm9,%xmm2
mulsd  %xmm12,%xmm2
movsd  %xmm2,0x340(%rsp,%rcx,1)
addsd  %xmm1,%xmm2
mulsd  %xmm13,%xmm2
movsd  %xmm2,0x70(%rsp,%rcx,1)
movsd  %xmm0,0xf0(%rsp,%rcx,1)
movsd  %xmm0,0x10(%rsp,%rcx,1)
movsd  %xmm0,0x110(%rsp,%rcx,1)
movsd  %xmm0,0x50(%rsp,%rcx,1)
movsd  %xmm0,0xd0(%rsp,%rcx,1)
movsd  %xmm0,0xb0(%rsp,%rcx,1)
movsd  %xmm0,0x30(%rsp,%rcx,1)
movsd  %xmm0,0x90(%rsp,%rcx,1)
cmp    $0x10,%rcx
je     13e0 <VAMPIREdiag3D+0x2d0>
movsd  0x418(%rsp,%rcx,1),%xmm0
add    %rdi,%rax
add    $0x8,%rcx
jmp    2130 <VAMPIREdiag3D+0x1020>
add    $0x448,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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