void calcDistImgProjJacS(double a[5], double kc[5], double qr0[4], double v[3],
                         double t[3], double M[3], double jacmS[2][3]) {
  double t1;
  double t10;
  double t100;
  double t101;
  double t102;
  double t104;
  double t108;
  double t110;
  double t112;
  double t114;
  double t12;
  double t121;
  double t123;
  double t126;
  double t129;
  double t130;
  double t132;
  double t136;
  double t137;
  double t138;
  double t14;
  double t141;
  double t144;
  double t153;
  double t158;
  double t16;
  double t169;
  double t174;
  double t177;
  double t18;
  double t180;
  double t181;
  double t182;
  double t185;
  double t186;
  double t187;
  double t189;
  double t19;
  double t190;
  double t191;
  double t192;
  double t194;
  double t2;
  double t201;
  double t206;
  double t211;
  double t214;
  double t243;
  double t247;
  double t248;
  double t25;
  double t250;
  double t251;
  double t254;
  double t255;
  double t256;
  double t258;
  double t26;
  double t265;
  double t270;
  double t275;
  double t278;
  double t3;
  double t307;
  double t32;
  double t33;
  double t35;
  double t36;
  double t4;
  double t42;
  double t46;
  double t5;
  double t51;
  double t52;
  double t57;
  double t58;
  double t6;
  double t61;
  double t67;
  double t68;
  double t69;
  double t7;
  double t70;
  double t71;
  double t72;
  double t74;
  double t75;
  double t76;
  double t77;
  double t79;
  double t80;
  double t81;
  double t82;
  double t85;
  double t86;
  double t9;
  double t92;
  double t93;
  double t94;
  double t97;
  double t98;
  double t99;
  {
    t1 = a[0];
    t2 = v[0];
    t3 = t2 * t2;
    t4 = v[1];
    t5 = t4 * t4;
    t6 = v[2];
    t7 = t6 * t6;
    t9 = sqrt(1.0 - t3 - t5 - t7);
    t10 = qr0[1];
    t12 = qr0[0];
    t14 = qr0[3];
    t16 = qr0[2];
    t18 = t9 * t10 + t12 * t2 + t4 * t14 - t6 * t16;
    t19 = M[0];
    t25 = t9 * t16 + t12 * t4 + t10 * t6 - t2 * t14;
    t26 = M[1];
    t32 = t9 * t14 + t12 * t6 + t2 * t16 - t4 * t10;
    t33 = M[2];
    t35 = -t18 * t19 - t25 * t26 - t32 * t33;
    t36 = -t18;
    t42 = t9 * t12 - t2 * t10 - t4 * t16 - t6 * t14;
    t46 = t42 * t19 + t25 * t33 - t32 * t26;
    t51 = t42 * t26 + t32 * t19 - t18 * t33;
    t52 = -t32;
    t57 = t42 * t33 + t26 * t18 - t25 * t19;
    t58 = -t25;
    t61 = t35 * t36 + t42 * t46 + t51 * t52 - t57 * t58 + t[0];
    t67 = t35 * t52 + t42 * t57 + t46 * t58 - t51 * t36 + t[2];
    t68 = t67 * t67;
    t69 = 1 / t68;
    t70 = t61 * t69;
    t71 = t36 * t36;
    t72 = t42 * t42;
    t74 = t58 * t58;
    t75 = t71 + t72 + t32 * t52 - t74;
    t76 = t70 * t75;
    t77 = t61 * t61;
    t79 = 1 / t68 / t67;
    t80 = t79 * t77;
    t81 = t36 * t52;
    t82 = t58 * t42;
    t85 = t81 + 2.0 * t82 - t32 * t36;
    t86 = t80 * t85;
    t92 = t35 * t58 + t51 * t42 + t57 * t36 - t46 * t52 + t[1];
    t93 = t92 * t69;
    t94 = t36 * t58;
    t97 = t42 * t52;
    t98 = 2.0 * t94 + t42 * t32 - t97;
    t99 = t93 * t98;
    t100 = t92 * t92;
    t101 = t100 * t79;
    t102 = t101 * t85;
    t104 = 2.0 * t76 - 2.0 * t86 + 2.0 * t99 - 2.0 * t102;
    t108 = t77 * t69 + t69 * t100;
    t110 = kc[4];
    t112 = kc[1] + t108 * t110;
    t114 = kc[0] + t112 * t108;
    t121 = t104 * t114 + t108 * (t112 * t104 + t108 * t104 * t110);
    t123 = 1 / t67;
    t126 = 1.0 + t108 * t114;
    t129 = t126 * t61;
    t130 = t69 * t85;
    t132 = kc[2];
    t136 = t132 * t61;
    t137 = t79 * t92;
    t138 = t137 * t85;
    t141 = t69 * t98;
    t144 = kc[3];
    t153 = a[4];
    t158 = t126 * t92;
    t169 = t144 * t61;
    t174 = t121 * t92 * t123 + t126 * t98 * t123 - t158 * t130 +
           t132 * (2.0 * t76 - 2.0 * t86 + 6.0 * t99 - 6.0 * t102) +
           2.0 * t144 * t75 * t93 - 4.0 * t138 * t169 + 2.0 * t141 * t169;
    jacmS[0][0] =
        t1 * (t121 * t61 * t123 + t126 * t75 * t123 - t129 * t130 +
              2.0 * t132 * t75 * t93 - 4.0 * t136 * t138 + 2.0 * t136 * t141 +
              t144 * (6.0 * t76 - 6.0 * t86 + 2.0 * t99 - 2.0 * t102)) +
        t153 * t174;
    t177 = t1 * a[3];
    jacmS[1][0] = t177 * t174;
    t180 = t94 + 2.0 * t97 - t58 * t18;
    t181 = t70 * t180;
    t182 = t52 * t58;
    t185 = t36 * t42;
    t186 = 2.0 * t182 + t42 * t18 - t185;
    t187 = t80 * t186;
    t189 = t52 * t52;
    t190 = t74 + t72 + t36 * t18 - t189;
    t191 = t93 * t190;
    t192 = t101 * t186;
    t194 = 2.0 * t181 - 2.0 * t187 + 2.0 * t191 - 2.0 * t192;
    t201 = t114 * t194 + t108 * (t112 * t194 + t108 * t194 * t110);
    t206 = t69 * t186;
    t211 = t137 * t186;
    t214 = t69 * t190;
    t243 = t201 * t92 * t123 + t126 * t190 * t123 - t158 * t206 +
           t132 * (2.0 * t181 - 2.0 * t187 + 6.0 * t191 - 6.0 * t192) +
           2.0 * t144 * t180 * t93 - 4.0 * t211 * t169 + 2.0 * t169 * t214;
    jacmS[0][1] =
        t1 * (t201 * t61 * t123 + t126 * t180 * t123 - t129 * t206 +
              2.0 * t132 * t180 * t93 - 4.0 * t136 * t211 + 2.0 * t136 * t214 +
              t144 * (6.0 * t181 - 6.0 * t187 + 2.0 * t191 - 2.0 * t192)) +
        t153 * t243;
    jacmS[1][1] = t177 * t243;
    t247 = 2.0 * t81 + t42 * t25 - t82;
    t248 = t70 * t247;
    t250 = t189 + t72 + t25 * t58 - t71;
    t251 = t80 * t250;
    t254 = t182 + 2.0 * t185 - t25 * t52;
    t255 = t93 * t254;
    t256 = t101 * t250;
    t258 = 2.0 * t248 - 2.0 * t251 + 2.0 * t255 - 2.0 * t256;
    t265 = t258 * t114 + t108 * (t258 * t112 + t108 * t258 * t110);
    t270 = t250 * t69;
    t275 = t137 * t250;
    t278 = t254 * t69;
    t307 = t265 * t92 * t123 + t126 * t254 * t123 - t270 * t158 +
           t132 * (2.0 * t248 - 2.0 * t251 + 6.0 * t255 - 6.0 * t256) +
           2.0 * t144 * t247 * t93 - 4.0 * t169 * t275 + 2.0 * t169 * t278;
    jacmS[0][2] =
        t1 * (t265 * t61 * t123 + t126 * t247 * t123 - t129 * t270 +
              2.0 * t132 * t247 * t93 - 4.0 * t136 * t275 + 2.0 * t136 * t278 +
              t144 * (6.0 * t248 - 6.0 * t251 + 2.0 * t255 - 2.0 * t256)) +
        t153 * t307;
    jacmS[1][2] = t307 * t177;
    return;
  }
}


x86 assembly (clang, -O0):
<calcDistImgProjJacS>:
push   %rbp
mov    %rsp,%rbp
sub    $0x360,%rsp
mov    0x10(%rbp),%rax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x188(%rbp)
ff
movsd  -0x188(%rbp),%xmm0
ff
mulsd  -0x188(%rbp),%xmm0
ff
movsd  %xmm0,-0x228(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x258(%rbp)
ff
movsd  -0x258(%rbp),%xmm0
ff
mulsd  -0x258(%rbp),%xmm0
ff
movsd  %xmm0,-0x270(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x298(%rbp)
ff
movsd  -0x298(%rbp),%xmm0
ff
mulsd  -0x298(%rbp),%xmm0
ff
movsd  %xmm0,-0x2c0(%rbp)
ff
movsd  0x1e5a(%rip),%xmm0
subsd  -0x228(%rbp),%xmm0
ff
subsd  -0x270(%rbp),%xmm0
ff
subsd  -0x2c0(%rbp),%xmm0
ff
call   1030 <sqrt@plt>
movsd  %xmm0,-0x330(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x330(%rbp),%xmm0
ff
movsd  -0x40(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  -0x188(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x258(%rbp),%xmm1
ff
movsd  -0xd8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x298(%rbp),%xmm0
ff
movsd  -0x100(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x330(%rbp),%xmm0
ff
movsd  -0x100(%rbp),%xmm2
ff
movsd  -0x88(%rbp),%xmm1
ff
mulsd  -0x258(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x40(%rbp),%xmm1
movsd  -0x298(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x188(%rbp),%xmm0
ff
movsd  -0xd8(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x200(%rbp)
ff
movsd  -0x330(%rbp),%xmm0
ff
movsd  -0xd8(%rbp),%xmm2
ff
movsd  -0x88(%rbp),%xmm1
ff
mulsd  -0x298(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x188(%rbp),%xmm1
ff
movsd  -0x100(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x258(%rbp),%xmm0
ff
movsd  -0x40(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x238(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x240(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0x160(%rbp),%xmm2
ff
movsd  -0x1c8(%rbp),%xmm0
ff
mulsd  -0x200(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x238(%rbp),%xmm0
ff
movsd  -0x240(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x248(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x250(%rbp)
ff
movsd  -0x330(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm2
ff
movsd  -0x188(%rbp),%xmm1
ff
mulsd  -0x40(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x258(%rbp),%xmm1
ff
movsd  -0x100(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x298(%rbp),%xmm0
ff
movsd  -0xd8(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x260(%rbp)
ff
movsd  -0x260(%rbp),%xmm1
ff
movsd  -0x160(%rbp),%xmm2
ff
movsd  -0x1c8(%rbp),%xmm0
ff
mulsd  -0x240(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x238(%rbp),%xmm0
ff
movsd  -0x200(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x268(%rbp)
ff
movsd  -0x260(%rbp),%xmm1
ff
movsd  -0x200(%rbp),%xmm2
ff
movsd  -0x238(%rbp),%xmm0
ff
mulsd  -0x160(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x120(%rbp),%xmm0
ff
movsd  -0x240(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x278(%rbp)
ff
movsd  -0x238(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x280(%rbp)
ff
movsd  -0x260(%rbp),%xmm1
ff
movsd  -0x240(%rbp),%xmm2
ff
movsd  -0x200(%rbp),%xmm0
ff
mulsd  -0x120(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x1c8(%rbp),%xmm0
ff
movsd  -0x160(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x288(%rbp)
ff
movsd  -0x1c8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x290(%rbp)
ff
movsd  -0x248(%rbp),%xmm0
ff
movsd  -0x250(%rbp),%xmm2
ff
movsd  -0x260(%rbp),%xmm1
ff
mulsd  -0x268(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x278(%rbp),%xmm1
ff
movsd  -0x280(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x288(%rbp),%xmm0
ff
movsd  -0x290(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
addsd  (%rax),%xmm0
movsd  %xmm0,-0x2a0(%rbp)
ff
movsd  -0x248(%rbp),%xmm0
movsd  -0x280(%rbp),%xmm2
ff
movsd  -0x260(%rbp),%xmm1
ff
mulsd  -0x288(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x268(%rbp),%xmm1
ff
movsd  -0x290(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x278(%rbp),%xmm0
ff
movsd  -0x250(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
addsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x2a8(%rbp)
ff
movsd  -0x2a8(%rbp),%xmm0
ff
mulsd  -0x2a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x2b0(%rbp)
ff
movsd  0x1887(%rip),%xmm0
divsd  -0x2b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x2b8(%rbp)
ff
movsd  -0x2a0(%rbp),%xmm0
ff
mulsd  -0x2b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x2c8(%rbp)
ff
movsd  -0x250(%rbp),%xmm0
ff
mulsd  -0x250(%rbp),%xmm0
ff
movsd  %xmm0,-0x2d0(%rbp)
ff
movsd  -0x260(%rbp),%xmm0
ff
mulsd  -0x260(%rbp),%xmm0
ff
movsd  %xmm0,-0x2d8(%rbp)
ff
movsd  -0x290(%rbp),%xmm0
ff
mulsd  -0x290(%rbp),%xmm0
movsd  %xmm0,-0x2e0(%rbp)
ff
movsd  -0x2d0(%rbp),%xmm1
ff
addsd  -0x2d8(%rbp),%xmm1
ff
movsd  -0x238(%rbp),%xmm0
ff
movsd  -0x280(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
subsd  -0x2e0(%rbp),%xmm0
ff
movsd  %xmm0,-0x2e8(%rbp)
ff
movsd  -0x2c8(%rbp),%xmm0
ff
mulsd  -0x2e8(%rbp),%xmm0
ff
movsd  %xmm0,-0x2f0(%rbp)
ff
movsd  -0x2a0(%rbp),%xmm0
ff
mulsd  -0x2a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x2f8(%rbp)
ff
movsd  0x17a7(%rip),%xmm0
divsd  -0x2b0(%rbp),%xmm0
ff
divsd  -0x2a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x300(%rbp)
ff
movsd  -0x300(%rbp),%xmm0
ff
mulsd  -0x2f8(%rbp),%xmm0
ff
movsd  %xmm0,-0x308(%rbp)
ff
movsd  -0x250(%rbp),%xmm0
ff
mulsd  -0x280(%rbp),%xmm0
ff
movsd  %xmm0,-0x310(%rbp)
ff
movsd  -0x290(%rbp),%xmm0
ff
mulsd  -0x260(%rbp),%xmm0
ff
movsd  %xmm0,-0x318(%rbp)
ff
movsd  -0x310(%rbp),%xmm0
ff
movsd  -0x318(%rbp),%xmm1
ff
addsd  %xmm1,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x238(%rbp),%xmm0
ff
movsd  -0x250(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x320(%rbp)
ff
movsd  -0x308(%rbp),%xmm0
ff
mulsd  -0x320(%rbp),%xmm0
ff
movsd  %xmm0,-0x328(%rbp)
ff
movsd  -0x248(%rbp),%xmm0
ff
movsd  -0x290(%rbp),%xmm2
ff
movsd  -0x278(%rbp),%xmm1
ff
mulsd  -0x260(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x288(%rbp),%xmm1
ff
movsd  -0x250(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x268(%rbp),%xmm0
ff
movsd  -0x280(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
addsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x338(%rbp)
ff
movsd  -0x338(%rbp),%xmm0
ff
mulsd  -0x2b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x340(%rbp)
ff
movsd  -0x250(%rbp),%xmm0
ff
mulsd  -0x290(%rbp),%xmm0
ff
movsd  %xmm0,-0x348(%rbp)
ff
movsd  -0x260(%rbp),%xmm0
ff
mulsd  -0x280(%rbp),%xmm0
ff
movsd  %xmm0,-0x350(%rbp)
ff
movsd  -0x348(%rbp),%xmm0
ff
movsd  -0x260(%rbp),%xmm1
ff
mulsd  -0x238(%rbp),%xmm1
ff
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
subsd  -0x350(%rbp),%xmm0
ff
movsd  %xmm0,-0x358(%rbp)
ff
movsd  -0x340(%rbp),%xmm0
ff
mulsd  -0x358(%rbp),%xmm0
ff
movsd  %xmm0,-0x360(%rbp)
ff
movsd  -0x338(%rbp),%xmm0
ff
mulsd  -0x338(%rbp),%xmm0
ff
movsd  %xmm0,-0x48(%rbp)
movsd  -0x48(%rbp),%xmm0
mulsd  -0x300(%rbp),%xmm0
ff
movsd  %xmm0,-0x50(%rbp)
movsd  -0x50(%rbp),%xmm0
mulsd  -0x320(%rbp),%xmm0
ff
movsd  %xmm0,-0x58(%rbp)
movsd  -0x2f0(%rbp),%xmm1
ff
movsd  0x156f(%rip),%xmm0
mulsd  -0x328(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
addsd  %xmm1,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x360(%rbp),%xmm0
ff
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x58(%rbp),%xmm1
addsd  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x2f8(%rbp),%xmm0
ff
movsd  -0x2b8(%rbp),%xmm2
ff
movsd  -0x2b8(%rbp),%xmm1
ff
mulsd  -0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0x68(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x78(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x60(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm2
movsd  -0x68(%rbp),%xmm1
movsd  -0x78(%rbp),%xmm3
movsd  -0x60(%rbp),%xmm5
movsd  -0x68(%rbp),%xmm4
mulsd  -0x60(%rbp),%xmm4
mulsd  -0x70(%rbp),%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  0x147b(%rip),%xmm0
divsd  -0x2a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x68(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x1455(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x2a0(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x2b8(%rbp),%xmm0
ff
mulsd  -0x320(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  -0x2a0(%rbp),%xmm0
ff
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x300(%rbp),%xmm0
ff
mulsd  -0x338(%rbp),%xmm0
ff
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x320(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x2b8(%rbp),%xmm0
ff
mulsd  -0x358(%rbp),%xmm0
ff
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x8(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x338(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mulsd  -0x2a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x90(%rbp),%xmm1
ff
mulsd  -0x338(%rbp),%xmm1
ff
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x358(%rbp),%xmm0
ff
mulsd  -0x98(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xf8(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0xb8(%rbp),%xmm1
ff
movsd  -0x2f0(%rbp),%xmm2
ff
movsd  0x12bf(%rip),%xmm3
mulsd  -0x328(%rbp),%xmm3
ff
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
addsd  %xmm2,%xmm2
addsd  %xmm3,%xmm2
movsd  -0x360(%rbp),%xmm3
ff
movsd  0x1280(%rip),%xmm4
mulsd  %xmm4,%xmm3
addsd  %xmm2,%xmm3
movsd  -0x58(%rbp),%xmm2
movsd  0x1283(%rip),%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x125b(%rip),%xmm0
mulsd  -0xe8(%rbp),%xmm0
ff
mulsd  -0x2e8(%rbp),%xmm0
ff
movsd  -0x340(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x123b(%rip),%xmm1
mulsd  -0xd0(%rbp),%xmm1
ff
movsd  -0x108(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x11fc(%rip),%xmm0
mulsd  -0xe0(%rbp),%xmm0
ff
movsd  -0x108(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm1
ff
mulsd  -0x2a0(%rbp),%xmm1
ff
movsd  -0x98(%rbp),%xmm3
ff
movsd  -0xa0(%rbp),%xmm2
ff
mulsd  -0x2e8(%rbp),%xmm2
ff
mulsd  -0x98(%rbp),%xmm2
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0xb0(%rbp),%xmm3
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0x1168(%rip),%xmm1
mulsd  -0xb8(%rbp),%xmm1
ff
mulsd  -0x2e8(%rbp),%xmm1
ff
movsd  -0x340(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0x1148(%rip),%xmm2
mulsd  -0xc0(%rbp),%xmm2
ff
movsd  -0xd0(%rbp),%xmm3
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0x1109(%rip),%xmm1
mulsd  -0xc0(%rbp),%xmm1
ff
movsd  -0xe0(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  -0xe8(%rbp),%xmm2
ff
movsd  -0x2f0(%rbp),%xmm4
ff
movsd  0x10d1(%rip),%xmm3
mulsd  -0x328(%rbp),%xmm3
ff
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
movsd  0x10aa(%rip),%xmm5
mulsd  %xmm5,%xmm4
addsd  %xmm3,%xmm4
movsd  -0x360(%rbp),%xmm3
ff
addsd  %xmm3,%xmm3
addsd  %xmm4,%xmm3
movsd  -0x58(%rbp),%xmm4
addsd  %xmm4,%xmm4
subsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
mulsd  -0x110(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mulsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x118(%rbp),%xmm0
ff
mulsd  -0x110(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x18(%rax)
movsd  -0x348(%rbp),%xmm0
ff
movsd  -0x350(%rbp),%xmm1
ff
addsd  %xmm1,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x290(%rbp),%xmm0
ff
movsd  -0x120(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x2c8(%rbp),%xmm0
ff
mulsd  -0x128(%rbp),%xmm0
ff
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x280(%rbp),%xmm0
ff
mulsd  -0x290(%rbp),%xmm0
ff
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x250(%rbp),%xmm0
ff
mulsd  -0x260(%rbp),%xmm0
ff
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
movsd  -0x260(%rbp),%xmm1
ff
mulsd  -0x120(%rbp),%xmm1
ff
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
subsd  -0x140(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x308(%rbp),%xmm0
ff
mulsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x280(%rbp),%xmm0
ff
mulsd  -0x280(%rbp),%xmm0
ff
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x2e0(%rbp),%xmm1
ff
addsd  -0x2d8(%rbp),%xmm1
ff
movsd  -0x250(%rbp),%xmm0
ff
movsd  -0x120(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
subsd  -0x158(%rbp),%xmm0
ff
movsd  %xmm0,-0x168(%rbp)
movsd  -0x340(%rbp),%xmm0
ff
mulsd  -0x168(%rbp),%xmm0
ff
movsd  %xmm0,-0x170(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
mulsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0x178(%rbp)
ff
movsd  -0x130(%rbp),%xmm1
ff
movsd  0xeca(%rip),%xmm0
mulsd  -0x150(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
addsd  %xmm1,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x170(%rbp),%xmm0
ff
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x178(%rbp),%xmm1
ff
addsd  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x180(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x180(%rbp),%xmm2
ff
movsd  -0x68(%rbp),%xmm1
movsd  -0x78(%rbp),%xmm3
movsd  -0x180(%rbp),%xmm5
ff
movsd  -0x68(%rbp),%xmm4
mulsd  -0x180(%rbp),%xmm4
ff
mulsd  -0x70(%rbp),%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x190(%rbp)
ff
movsd  -0x2b8(%rbp),%xmm0
ff
mulsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0x198(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  -0x2b8(%rbp),%xmm0
ff
mulsd  -0x168(%rbp),%xmm0
ff
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  -0x190(%rbp),%xmm1
ff
mulsd  -0x338(%rbp),%xmm1
ff
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x168(%rbp),%xmm0
ff
mulsd  -0x98(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xf8(%rbp),%xmm0
ff
movsd  -0x198(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0xb8(%rbp),%xmm1
ff
movsd  -0x130(%rbp),%xmm2
ff
movsd  0xd67(%rip),%xmm3
mulsd  -0x150(%rbp),%xmm3
ff
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
addsd  %xmm2,%xmm2
addsd  %xmm3,%xmm2
movsd  -0x170(%rbp),%xmm3
ff
movsd  0xd28(%rip),%xmm4
mulsd  %xmm4,%xmm3
addsd  %xmm2,%xmm3
movsd  -0x178(%rbp),%xmm2
ff
movsd  0xd28(%rip),%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0xd00(%rip),%xmm0
mulsd  -0xe8(%rbp),%xmm0
ff
mulsd  -0x128(%rbp),%xmm0
ff
movsd  -0x340(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xce0(%rip),%xmm1
mulsd  -0x1a0(%rbp),%xmm1
ff
movsd  -0x108(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0xca1(%rip),%xmm0
mulsd  -0x108(%rbp),%xmm0
ff
movsd  -0x1a8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1b0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x190(%rbp),%xmm1
ff
mulsd  -0x2a0(%rbp),%xmm1
ff
movsd  -0x98(%rbp),%xmm3
ff
movsd  -0xa0(%rbp),%xmm2
ff
mulsd  -0x128(%rbp),%xmm2
ff
mulsd  -0x98(%rbp),%xmm2
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0x198(%rbp),%xmm3
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0xc0d(%rip),%xmm1
mulsd  -0xb8(%rbp),%xmm1
ff
mulsd  -0x128(%rbp),%xmm1
ff
movsd  -0x340(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0xbed(%rip),%xmm2
mulsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x1a0(%rbp),%xmm3
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0xbae(%rip),%xmm1
mulsd  -0xc0(%rbp),%xmm1
ff
movsd  -0x1a8(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  -0xe8(%rbp),%xmm2
ff
movsd  -0x130(%rbp),%xmm4
ff
movsd  0xb76(%rip),%xmm3
mulsd  -0x150(%rbp),%xmm3
ff
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
movsd  0xb4f(%rip),%xmm5
mulsd  %xmm5,%xmm4
addsd  %xmm3,%xmm4
movsd  -0x170(%rbp),%xmm3
ff
addsd  %xmm3,%xmm3
addsd  %xmm4,%xmm3
movsd  -0x178(%rbp),%xmm4
ff
addsd  %xmm4,%xmm4
subsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
mulsd  -0x1b0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0x118(%rbp),%xmm0
ff
mulsd  -0x1b0(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0x310(%rbp),%xmm0
ff
movsd  -0x260(%rbp),%xmm1
ff
mulsd  -0x1c8(%rbp),%xmm1
ff
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
subsd  -0x318(%rbp),%xmm0
ff
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  -0x2c8(%rbp),%xmm0
ff
mulsd  -0x1b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x1c0(%rbp)
ff
movsd  -0x158(%rbp),%xmm1
ff
addsd  -0x2d8(%rbp),%xmm1
ff
movsd  -0x1c8(%rbp),%xmm0
ff
movsd  -0x290(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
subsd  -0x2d0(%rbp),%xmm0
ff
movsd  %xmm0,-0x1d0(%rbp)
ff
movsd  -0x308(%rbp),%xmm0
ff
mulsd  -0x1d0(%rbp),%xmm0
ff
movsd  %xmm0,-0x1d8(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
movsd  -0x140(%rbp),%xmm1
ff
addsd  %xmm1,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x1c8(%rbp),%xmm0
ff
movsd  -0x280(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1e0(%rbp)
ff
movsd  -0x340(%rbp),%xmm0
ff
mulsd  -0x1e0(%rbp),%xmm0
ff
movsd  %xmm0,-0x1e8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
mulsd  -0x1d0(%rbp),%xmm0
ff
movsd  %xmm0,-0x1f0(%rbp)
ff
movsd  -0x1c0(%rbp),%xmm1
ff
movsd  0x9c9(%rip),%xmm0
mulsd  -0x1d8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
addsd  %xmm1,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x1e8(%rbp),%xmm0
ff
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x1f0(%rbp),%xmm1
ff
addsd  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1f8(%rbp)
ff
movsd  -0x1f8(%rbp),%xmm0
ff
movsd  -0x80(%rbp),%xmm2
movsd  -0x68(%rbp),%xmm1
movsd  -0x1f8(%rbp),%xmm3
ff
movsd  -0x78(%rbp),%xmm5
movsd  -0x68(%rbp),%xmm4
mulsd  -0x1f8(%rbp),%xmm4
ff
mulsd  -0x70(%rbp),%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x1d0(%rbp),%xmm0
ff
mulsd  -0x2b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x1d0(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
movsd  -0x1e0(%rbp),%xmm0
ff
mulsd  -0x2b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x220(%rbp)
ff
movsd  -0x208(%rbp),%xmm1
ff
mulsd  -0x338(%rbp),%xmm1
ff
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x1e0(%rbp),%xmm0
ff
mulsd  -0x98(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x210(%rbp),%xmm0
ff
movsd  -0xf8(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0xb8(%rbp),%xmm1
ff
movsd  -0x1c0(%rbp),%xmm2
ff
movsd  0x866(%rip),%xmm3
mulsd  -0x1d8(%rbp),%xmm3
ff
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
addsd  %xmm2,%xmm2
addsd  %xmm3,%xmm2
movsd  -0x1e8(%rbp),%xmm3
ff
movsd  0x827(%rip),%xmm4
mulsd  %xmm4,%xmm3
addsd  %xmm2,%xmm3
movsd  -0x1f0(%rbp),%xmm2
ff
movsd  0x827(%rip),%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x7ff(%rip),%xmm0
mulsd  -0xe8(%rbp),%xmm0
ff
mulsd  -0x1b8(%rbp),%xmm0
ff
movsd  -0x340(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x7df(%rip),%xmm1
mulsd  -0x108(%rbp),%xmm1
ff
movsd  -0x218(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x7a0(%rip),%xmm0
mulsd  -0x108(%rbp),%xmm0
ff
movsd  -0x220(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x230(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x208(%rbp),%xmm1
ff
mulsd  -0x2a0(%rbp),%xmm1
ff
movsd  -0x98(%rbp),%xmm3
ff
movsd  -0xa0(%rbp),%xmm2
ff
mulsd  -0x1b8(%rbp),%xmm2
ff
mulsd  -0x98(%rbp),%xmm2
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0x210(%rbp),%xmm3
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0x70c(%rip),%xmm1
mulsd  -0xb8(%rbp),%xmm1
ff
mulsd  -0x1b8(%rbp),%xmm1
ff
movsd  -0x340(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0x6ec(%rip),%xmm2
mulsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x218(%rbp),%xmm3
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0x6ad(%rip),%xmm1
mulsd  -0xc0(%rbp),%xmm1
ff
movsd  -0x220(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  -0xe8(%rbp),%xmm2
ff
movsd  -0x1c0(%rbp),%xmm4
ff
movsd  0x675(%rip),%xmm3
mulsd  -0x1d8(%rbp),%xmm3
ff
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
movsd  0x64e(%rip),%xmm5
mulsd  %xmm5,%xmm4
addsd  %xmm3,%xmm4
movsd  -0x1e8(%rbp),%xmm3
ff
addsd  %xmm3,%xmm3
addsd  %xmm4,%xmm3
movsd  -0x1f0(%rbp),%xmm4
ff
addsd  %xmm4,%xmm4
subsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
mulsd  -0x230(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x230(%rbp),%xmm0
ff
mulsd  -0x118(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x28(%rax)
add    $0x360,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<calcDistImgProjJacS>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x228,%rsp
mov    %r9,%r13
mov    %r8,%r15
mov    %rdx,%rbx
mov    %rsi,%r12
mov    %rdi,%r14
mov    0x260(%rsp),%rbp
movsd  (%rdi),%xmm0
movaps %xmm0,0x210(%rsp)
movsd  (%rcx),%xmm6
movsd  0x8(%rcx),%xmm12
movapd %xmm6,%xmm1
mulsd  %xmm6,%xmm1
movapd %xmm12,%xmm2
mulsd  %xmm12,%xmm2
movsd  0x10(%rcx),%xmm5
movapd %xmm5,%xmm3
mulsd  %xmm5,%xmm3
movsd  0xe8b(%rip),%xmm0
subsd  %xmm1,%xmm0
subsd  %xmm2,%xmm0
subsd  %xmm3,%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1191 <calcDistImgProjJacS+0x81>
sqrtsd %xmm0,%xmm0
jmp    11ba <calcDistImgProjJacS+0xaa>
movapd %xmm12,0x20(%rsp)
movapd %xmm6,(%rsp)
movapd %xmm5,0x10(%rsp)
call   1030 <sqrt@plt>
movapd 0x10(%rsp),%xmm5
movapd (%rsp),%xmm6
movapd 0x20(%rsp),%xmm12
movupd (%rbx),%xmm4
movsd  0x18(%rbx),%xmm14
movsd  0x10(%rbx),%xmm2
movapd %xmm6,%xmm1
mulsd  %xmm4,%xmm1
movapd %xmm4,%xmm9
unpckhpd %xmm4,%xmm9
movapd %xmm0,%xmm7
mulsd  %xmm9,%xmm7
addsd  %xmm1,%xmm7
movapd %xmm12,%xmm15
mulsd  %xmm14,%xmm15
addsd  %xmm7,%xmm15
movapd 0xe21(%rip),%xmm1
movapd %xmm5,%xmm7
xorpd  %xmm1,%xmm7
movapd %xmm1,%xmm10
movapd %xmm5,%xmm1
mulsd  %xmm2,%xmm1
subsd  %xmm1,%xmm15
movapd %xmm12,%xmm1
mulsd  %xmm4,%xmm1
movapd %xmm0,%xmm3
mulsd  %xmm2,%xmm3
addsd  %xmm1,%xmm3
mulsd  %xmm5,%xmm9
addsd  %xmm3,%xmm9
movapd %xmm6,%xmm1
xorpd  %xmm10,%xmm1
movapd %xmm6,%xmm3
mulsd  %xmm14,%xmm3
subsd  %xmm3,%xmm9
movsd  0x0(%r13),%xmm8
movsd  0x8(%r13),%xmm11
xorpd  %xmm10,%xmm12
unpcklpd %xmm1,%xmm5
unpcklpd %xmm0,%xmm0
movapd %xmm14,%xmm3
unpcklpd %xmm4,%xmm3
mulpd  %xmm0,%xmm3
movsd  0x10(%r13),%xmm13
mulpd  %xmm4,%xmm5
addpd  %xmm5,%xmm3
movapd %xmm15,%xmm1
xorpd  %xmm10,%xmm1
unpcklpd %xmm12,%xmm6
unpcklpd %xmm2,%xmm2
mulpd  %xmm6,%xmm2
movapd %xmm11,%xmm5
mulsd  %xmm9,%xmm5
addpd  %xmm3,%xmm2
unpcklpd %xmm12,%xmm7
movsd  %xmm14,%xmm4
mulpd  %xmm7,%xmm4
shufpd $0x1,%xmm2,%xmm2
addpd  %xmm4,%xmm2
movapd %xmm2,%xmm4
unpckhpd %xmm2,%xmm4
movapd %xmm4,%xmm14
xorpd  %xmm10,%xmm14
movapd %xmm15,%xmm10
mulsd  %xmm9,%xmm10
shufpd $0x2,%xmm2,%xmm14
mulpd  %xmm2,%xmm14
movapd %xmm14,%xmm0
addsd  %xmm14,%xmm0
addsd  %xmm10,%xmm0
addsd  %xmm10,%xmm0
movapd %xmm0,0x170(%rsp)
movapd %xmm2,%xmm0
mulsd  %xmm1,%xmm0
movapd %xmm0,0x20(%rsp)
unpcklpd %xmm1,%xmm10
mulsd  %xmm8,%xmm1
subsd  %xmm5,%xmm1
movapd %xmm4,%xmm3
mulsd  %xmm13,%xmm3
subsd  %xmm3,%xmm1
movapd %xmm9,%xmm3
mulsd  %xmm13,%xmm3
movapd %xmm2,%xmm12
mulsd  %xmm8,%xmm12
addsd  %xmm3,%xmm12
movapd %xmm4,%xmm3
mulsd  %xmm11,%xmm3
subsd  %xmm3,%xmm12
movapd %xmm9,%xmm3
mulsd  %xmm8,%xmm3
mulsd  %xmm4,%xmm8
movapd %xmm2,%xmm6
mulsd  %xmm11,%xmm6
addsd  %xmm8,%xmm6
movapd %xmm15,%xmm7
mulsd  %xmm13,%xmm7
subsd  %xmm7,%xmm6
mulsd  %xmm15,%xmm11
mulsd  %xmm2,%xmm13
addsd  %xmm11,%xmm13
subsd  %xmm3,%xmm13
movapd %xmm2,%xmm8
mulsd  %xmm12,%xmm8
movapd %xmm1,%xmm7
mulsd  %xmm15,%xmm7
subsd  %xmm7,%xmm8
movapd %xmm6,%xmm7
mulsd  %xmm4,%xmm7
subsd  %xmm7,%xmm8
movapd %xmm2,%xmm7
mulsd  %xmm13,%xmm7
movapd %xmm1,%xmm0
mulsd  %xmm4,%xmm0
subsd  %xmm0,%xmm7
movapd %xmm12,%xmm0
mulsd  %xmm9,%xmm0
subsd  %xmm0,%xmm7
movapd %xmm6,%xmm0
mulsd  %xmm15,%xmm0
addsd  %xmm7,%xmm0
movapd %xmm13,%xmm7
mulsd  %xmm9,%xmm7
addsd  0x10(%r15),%xmm0
movapd %xmm0,0x40(%rsp)
addsd  %xmm8,%xmm7
mulsd  %xmm0,%xmm0
unpcklpd %xmm7,%xmm0
movapd 0xc1e(%rip),%xmm7
movhpd (%r15),%xmm7
movapd %xmm7,%xmm3
divpd  %xmm0,%xmm3
movapd %xmm3,0x80(%rsp)
addpd  %xmm0,%xmm7
movapd %xmm9,%xmm0
xorpd  0xbe7(%rip),%xmm0
movapd %xmm2,%xmm8
mulpd  %xmm2,%xmm8
movapd %xmm15,%xmm3
mulsd  %xmm4,%xmm3
movapd %xmm3,0x10(%rsp)
mulsd  %xmm2,%xmm0
movapd %xmm0,0x70(%rsp)
mulsd  %xmm2,%xmm6
mulsd  %xmm9,%xmm1
mulsd  %xmm4,%xmm12
movapd %xmm4,%xmm0
mulsd  %xmm9,%xmm0
movapd %xmm0,0x30(%rsp)
movapd %xmm4,(%rsp)
mulpd  %xmm2,%xmm4
movapd %xmm2,%xmm11
mulsd  %xmm9,%xmm2
movapd %xmm2,0x60(%rsp)
mulsd  %xmm9,%xmm9
unpcklpd %xmm8,%xmm0
unpcklpd %xmm9,%xmm3
addpd  %xmm0,%xmm3
shufpd $0x2,%xmm3,%xmm4
movapd 0xb8e(%rip),%xmm0
unpcklpd %xmm15,%xmm0
mulpd  %xmm10,%xmm0
addpd  %xmm4,%xmm0
mulsd  %xmm15,%xmm13
movapd %xmm11,%xmm3
mulsd  %xmm15,%xmm3
mulsd  %xmm15,%xmm15
subpd  %xmm14,%xmm0
movapd %xmm0,0x150(%rsp)
unpckhpd %xmm14,%xmm14
addsd  %xmm8,%xmm14
subsd  %xmm9,%xmm14
subsd  %xmm15,%xmm14
movapd %xmm14,0x100(%rsp)
movapd %xmm15,%xmm11
addsd  %xmm8,%xmm11
movapd (%rsp),%xmm0
mulsd  %xmm0,%xmm0
subsd  %xmm0,%xmm11
subsd  %xmm9,%xmm11
subsd  %xmm1,%xmm6
subsd  %xmm13,%xmm6
addsd  %xmm6,%xmm12
movapd 0x30(%rsp),%xmm14
movapd %xmm14,%xmm0
addsd  %xmm14,%xmm0
addsd  %xmm3,%xmm0
movapd 0x70(%rsp),%xmm2
movapd %xmm2,%xmm8
addsd  %xmm2,%xmm8
movapd 0x10(%rsp),%xmm1
addsd  %xmm1,%xmm8
addsd  %xmm1,%xmm8
movapd 0x20(%rsp),%xmm15
subsd  %xmm15,%xmm0
unpcklpd %xmm0,%xmm8
movapd %xmm7,%xmm9
movapd %xmm7,0x90(%rsp)
unpckhpd %xmm7,%xmm9
movapd %xmm9,0x160(%rsp)
movapd %xmm9,%xmm13
movapd 0x80(%rsp),%xmm7
mulsd  %xmm7,%xmm13
movapd %xmm13,0xa0(%rsp)
mulsd  %xmm9,%xmm9
movapd %xmm7,%xmm0
divsd  0x40(%rsp),%xmm0
movapd %xmm9,%xmm5
mulsd  %xmm0,%xmm5
movapd %xmm5,0xb0(%rsp)
movapd %xmm0,0xe0(%rsp)
movapd %xmm11,%xmm1
unpcklpd 0x170(%rsp),%xmm1
movapd %xmm1,0x1f0(%rsp)
unpcklpd %xmm13,%xmm13
mulpd  %xmm1,%xmm13
unpcklpd %xmm5,%xmm5
mulpd  %xmm8,%xmm5
movapd %xmm13,%xmm1
movapd %xmm13,0x140(%rsp)
addpd  %xmm13,%xmm1
movapd %xmm5,%xmm4
movapd %xmm5,%xmm3
movapd %xmm5,0x130(%rsp)
addpd  %xmm5,%xmm4
subpd  %xmm4,%xmm1
addsd  0x8(%r15),%xmm12
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
movapd %xmm12,0x120(%rsp)
mulsd  %xmm12,%xmm4
movapd %xmm4,%xmm12
mulsd  %xmm7,%xmm4
mulsd  %xmm7,%xmm9
addsd  %xmm4,%xmm9
movsd  0x20(%r12),%xmm4
movapd %xmm4,0xd0(%rsp)
movapd %xmm9,%xmm5
mulsd  %xmm4,%xmm5
addsd  0x8(%r12),%xmm5
movapd %xmm5,0x110(%rsp)
mulsd  %xmm0,%xmm12
movapd %xmm12,%xmm0
unpcklpd %xmm12,%xmm0
mulpd  %xmm8,%xmm0
movapd %xmm0,0xf0(%rsp)
unpcklpd %xmm5,%xmm0
movapd 0x9a0(%rip),%xmm4
unpcklpd %xmm9,%xmm4
mulpd  %xmm0,%xmm4
movsd  0x94e(%rip),%xmm10
movsd  %xmm10,(%rsp)
movapd %xmm3,%xmm5
mulsd  %xmm10,%xmm5
movsd  0x93f(%rip),%xmm0
movsd  %xmm0,0x50(%rsp)
mulsd  %xmm0,%xmm13
addsd  %xmm5,%xmm13
addsd  %xmm15,%xmm15
addsd  %xmm14,%xmm15
addsd  %xmm14,%xmm15
movapd %xmm15,%xmm0
movapd %xmm15,0x20(%rsp)
movapd 0x10(%rsp),%xmm10
addsd  %xmm10,%xmm10
addsd  0x60(%rsp),%xmm10
subsd  %xmm2,%xmm10
movapd %xmm10,0x10(%rsp)
movapd %xmm10,%xmm14
movapd %xmm6,%xmm2
mulsd  %xmm7,%xmm2
movsd  0x18(%r12),%xmm3
movapd %xmm3,%xmm5
movapd %xmm3,%xmm10
movapd %xmm3,0x70(%rsp)
addsd  %xmm3,%xmm5
movsd  0x10(%r12),%xmm3
movapd %xmm3,0x30(%rsp)
addsd  %xmm3,%xmm3
movapd %xmm3,0x200(%rsp)
movapd %xmm11,0xc0(%rsp)
mulsd  %xmm3,%xmm11
mulsd  %xmm2,%xmm11
movapd %xmm0,%xmm6
mulsd  %xmm2,%xmm6
movapd %xmm5,0x1e0(%rsp)
mulsd  %xmm14,%xmm5
mulsd  %xmm2,%xmm5
movapd %xmm5,0x1d0(%rsp)
unpcklpd %xmm2,%xmm2
movapd %xmm2,0x60(%rsp)
movapd 0x150(%rsp),%xmm14
movapd %xmm14,%xmm0
mulpd  %xmm2,%xmm0
movapd %xmm0,%xmm2
addsd  %xmm0,%xmm2
addsd  %xmm2,%xmm13
movapd %xmm2,%xmm5
addsd  %xmm1,%xmm5
movhpd (%r12),%xmm5
addpd  %xmm4,%xmm5
movapd %xmm5,%xmm2
unpckhpd %xmm5,%xmm2
movapd %xmm2,0x1c0(%rsp)
movapd %xmm9,%xmm4
mulsd  %xmm2,%xmm4
movsd  0x806(%rip),%xmm15
addsd  %xmm15,%xmm4
movapd %xmm4,0x1b0(%rsp)
divsd  0x40(%rsp),%xmm15
movapd 0x90(%rsp),%xmm2
movsd  %xmm7,%xmm2
unpcklpd %xmm10,%xmm14
mulpd  %xmm2,%xmm14
movapd %xmm14,%xmm10
movapd %xmm14,0x180(%rsp)
movapd %xmm0,%xmm2
unpckhpd %xmm0,%xmm0
movapd %xmm2,%xmm4
movapd %xmm2,%xmm3
mulpd  0x813(%rip),%xmm4
addpd  %xmm1,%xmm4
movapd %xmm4,0x90(%rsp)
unpckhpd %xmm1,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
movapd 0xf0(%rsp),%xmm4
movapd %xmm4,%xmm1
unpckhpd %xmm4,%xmm1
addsd  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movapd %xmm5,%xmm14
shufpd $0x1,%xmm0,%xmm14
mulpd  %xmm5,%xmm14
unpcklpd %xmm0,%xmm5
movapd %xmm5,0x1a0(%rsp)
movapd 0xa0(%rsp),%xmm5
mulsd  0x10(%rsp),%xmm5
movapd 0x100(%rsp),%xmm1
movapd 0xb0(%rsp),%xmm2
mulsd  %xmm1,%xmm2
movapd 0x140(%rsp),%xmm0
shufpd $0x1,%xmm5,%xmm0
movapd %xmm0,0x140(%rsp)
addsd  %xmm5,%xmm5
movapd 0x130(%rsp),%xmm0
shufpd $0x1,%xmm2,%xmm0
movapd %xmm0,0x130(%rsp)
movapd %xmm2,%xmm0
addsd  %xmm2,%xmm0
subsd  %xmm0,%xmm5
mulsd  %xmm1,%xmm12
movsd  0x50(%rsp),%xmm0
mulsd  %xmm6,%xmm0
movsd  %xmm0,0x50(%rsp)
shufpd $0x1,%xmm6,%xmm3
movapd %xmm3,0xb0(%rsp)
movapd %xmm6,%xmm7
addsd  %xmm6,%xmm7
addsd  %xmm5,%xmm7
movsd  (%rsp),%xmm0
mulsd  %xmm12,%xmm0
movsd  %xmm0,(%rsp)
movapd %xmm4,%xmm0
movapd %xmm4,0x190(%rsp)
movapd %xmm4,0xa0(%rsp)
shufpd $0x1,%xmm12,%xmm0
movapd %xmm0,0xf0(%rsp)
addsd  %xmm12,%xmm12
subsd  %xmm12,%xmm7
movapd %xmm9,%xmm4
mulsd  %xmm7,%xmm4
movapd 0xd0(%rsp),%xmm2
mulsd  %xmm2,%xmm4
movapd 0x110(%rsp),%xmm0
movapd %xmm0,%xmm6
mulsd  %xmm7,%xmm0
addsd  %xmm4,%xmm0
mulsd  %xmm9,%xmm0
movapd %xmm0,0x110(%rsp)
unpcklpd %xmm9,%xmm9
movapd %xmm9,%xmm12
movapd 0x1a0(%rsp),%xmm0
mulpd  %xmm0,%xmm12
movapd %xmm2,%xmm4
unpcklpd %xmm2,%xmm4
mulpd  %xmm12,%xmm4
unpcklpd %xmm6,%xmm6
mulpd  %xmm0,%xmm6
addpd  %xmm4,%xmm6
mulpd  %xmm9,%xmm6
addpd  %xmm6,%xmm14
movapd 0x160(%rsp),%xmm9
movapd %xmm9,%xmm4
mulsd  %xmm14,%xmm4
movapd 0xc0(%rsp),%xmm0
movapd 0x1b0(%rsp),%xmm2
mulsd  %xmm2,%xmm0
movapd %xmm15,0x40(%rsp)
mulsd  %xmm15,%xmm0
mulsd  %xmm15,%xmm4
addsd  %xmm0,%xmm4
movapd 0xe0(%rsp),%xmm6
mulsd  0x120(%rsp),%xmm6
movapd 0x5e7(%rip),%xmm0
xorpd  %xmm2,%xmm0
mulsd  %xmm9,%xmm0
movapd %xmm0,0xd0(%rsp)
movapd 0x80(%rsp),%xmm3
movapd %xmm3,%xmm15
unpcklpd %xmm3,%xmm15
movapd %xmm15,0xc0(%rsp)
mulsd  %xmm1,%xmm3
movapd %xmm3,0x80(%rsp)
mulsd  %xmm6,%xmm1
movapd %xmm1,0x100(%rsp)
unpcklpd %xmm6,%xmm6
mulpd  %xmm8,%xmm6
movapd %xmm8,%xmm12
mulpd  %xmm15,%xmm12
movapd %xmm0,%xmm3
mulsd  %xmm12,%xmm3
addsd  %xmm4,%xmm3
addsd  %xmm3,%xmm11
movapd 0x30(%rsp),%xmm8
mulsd  %xmm9,%xmm8
movapd %xmm8,%xmm3
mulsd  0x548(%rip),%xmm3
movapd %xmm3,0xe0(%rsp)
mulsd  %xmm6,%xmm3
addsd  %xmm11,%xmm3
addsd  %xmm8,%xmm8
movapd %xmm8,%xmm11
mulsd  %xmm10,%xmm11
addsd  %xmm3,%xmm11
movapd 0x190(%rsp),%xmm0
addsd  %xmm0,%xmm0
subsd  %xmm0,%xmm13
mulsd  0x70(%rsp),%xmm13
addsd  %xmm11,%xmm13
movapd 0x120(%rsp),%xmm0
movapd %xmm0,%xmm10
mulsd  %xmm2,%xmm10
unpcklpd %xmm0,%xmm0
mulpd  %xmm14,%xmm0
movapd 0x150(%rsp),%xmm15
movapd %xmm15,%xmm1
movapd 0x20(%rsp),%xmm3
shufpd $0x1,%xmm3,%xmm15
mulsd  %xmm2,%xmm3
movapd %xmm3,0x20(%rsp)
movapd %xmm2,%xmm4
unpcklpd %xmm2,%xmm4
mulpd  %xmm4,%xmm1
movapd 0x40(%rsp),%xmm11
unpcklpd %xmm11,%xmm11
mulpd  %xmm11,%xmm1
mulpd  %xmm11,%xmm0
addpd  %xmm1,%xmm0
movapd %xmm10,%xmm1
unpcklpd %xmm10,%xmm1
mulpd  %xmm12,%xmm1
subpd  %xmm1,%xmm0
movapd 0xa0(%rsp),%xmm9
mulpd  0x4df(%rip),%xmm9
addpd  0x90(%rsp),%xmm9
movsd  0x50(%rsp),%xmm2
addsd  %xmm5,%xmm2
movsd  (%rsp),%xmm1
addsd  %xmm2,%xmm1
movapd 0x30(%rsp),%xmm2
mulsd  %xmm2,%xmm1
movsd  %xmm1,(%rsp)
movapd %xmm2,%xmm1
unpcklpd %xmm2,%xmm1
mulpd  %xmm9,%xmm1
addpd  %xmm0,%xmm1
movapd 0x1e0(%rsp),%xmm0
unpcklpd %xmm0,%xmm0
mulpd  0x1f0(%rsp),%xmm0
mulpd  0x60(%rsp),%xmm0
addpd  %xmm1,%xmm0
movapd %xmm0,%xmm2
movapd 0x486(%rip),%xmm0
mulpd  %xmm6,%xmm0
movapd 0x180(%rsp),%xmm3
movapd %xmm3,%xmm1
unpckhpd %xmm3,%xmm1
mulpd  %xmm1,%xmm0
addpd  %xmm2,%xmm0
mulpd  0xc0(%rsp),%xmm15
movapd %xmm3,%xmm5
addpd  %xmm3,%xmm5
shufpd $0x1,%xmm15,%xmm3
mulpd  %xmm5,%xmm3
addpd  %xmm0,%xmm3
movsd  0x20(%r14),%xmm0
movapd %xmm0,0x50(%rsp)
mulsd  %xmm3,%xmm0
movapd 0x210(%rsp),%xmm2
mulsd  %xmm2,%xmm13
addsd  %xmm0,%xmm13
movsd  %xmm13,0x0(%rbp)
movsd  0x18(%r14),%xmm0
mulsd  %xmm2,%xmm0
movapd %xmm0,0x30(%rsp)
unpcklpd %xmm0,%xmm0
mulpd  %xmm3,%xmm0
movapd %xmm3,%xmm13
movupd %xmm0,0x18(%rbp)
mulsd  0x1c0(%rsp),%xmm7
addsd  0x110(%rsp),%xmm7
movapd 0x120(%rsp),%xmm0
mulsd  %xmm7,%xmm0
movapd 0x40(%rsp),%xmm9
movapd 0x20(%rsp),%xmm3
mulsd  %xmm9,%xmm3
mulsd  %xmm9,%xmm0
addsd  %xmm3,%xmm0
movapd 0x80(%rsp),%xmm9
mulsd  %xmm9,%xmm10
subsd  %xmm10,%xmm0
movsd  (%rsp),%xmm3
addsd  %xmm0,%xmm3
movapd 0x1d0(%rsp),%xmm0
addsd  %xmm3,%xmm0
mulsd  0x31a(%rip),%xmm1
movapd 0x100(%rsp),%xmm10
mulsd  %xmm10,%xmm1
addsd  %xmm0,%xmm1
unpckhpd %xmm5,%xmm5
unpcklpd %xmm8,%xmm8
mulpd  %xmm15,%xmm8
unpckhpd %xmm15,%xmm15
mulsd  %xmm5,%xmm15
addsd  %xmm1,%xmm15
shufpd $0x1,%xmm7,%xmm14
mulpd  0x160(%rsp),%xmm14
movapd 0x170(%rsp),%xmm1
unpcklpd 0x10(%rsp),%xmm1
mulpd  %xmm1,%xmm4
mulpd  %xmm11,%xmm4
mulpd  %xmm11,%xmm14
addpd  %xmm4,%xmm14
shufpd $0x1,%xmm9,%xmm12
movapd 0xd0(%rsp),%xmm3
unpcklpd %xmm3,%xmm3
mulpd  %xmm3,%xmm12
addpd  %xmm14,%xmm12
movapd 0x200(%rsp),%xmm3
unpcklpd %xmm3,%xmm3
mulpd  %xmm1,%xmm3
mulpd  0x60(%rsp),%xmm3
addpd  %xmm12,%xmm3
shufpd $0x1,%xmm10,%xmm6
movapd 0xe0(%rsp),%xmm1
unpcklpd %xmm1,%xmm1
mulpd  %xmm1,%xmm6
addpd  %xmm3,%xmm6
addpd  %xmm6,%xmm8
movapd 0x130(%rsp),%xmm3
mulpd  0x2b6(%rip),%xmm3
movapd 0x140(%rsp),%xmm1
mulpd  0x295(%rip),%xmm1
addpd  %xmm3,%xmm1
movapd 0xb0(%rsp),%xmm3
addpd  %xmm3,%xmm3
addpd  %xmm1,%xmm3
movapd 0xf0(%rsp),%xmm1
addpd  %xmm1,%xmm1
subpd  %xmm1,%xmm3
movapd 0x70(%rsp),%xmm1
unpcklpd %xmm1,%xmm1
mulpd  %xmm3,%xmm1
addpd  %xmm8,%xmm1
movapd 0x50(%rsp),%xmm3
unpcklpd %xmm3,%xmm3
shufpd $0x1,%xmm15,%xmm13
mulpd  %xmm3,%xmm13
unpcklpd %xmm2,%xmm2
mulpd  %xmm1,%xmm2
addpd  %xmm13,%xmm2
movupd %xmm2,0x8(%rbp)
mulsd  0x30(%rsp),%xmm15
movsd  %xmm15,0x28(%rbp)
add    $0x228,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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