void calcDistImgProj(double a[5], double kc[5], double qr0[4], double v[3],
                     double t[3], double M[3], double n[2]) {
  double t1;
  double t10;
  double t113;
  double t12;
  double t14;
  double t16;
  double t18;
  double t19;
  double t2;
  double t25;
  double t26;
  double t3;
  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 t62;
  double t68;
  double t69;
  double t7;
  double t70;
  double t71;
  double t77;
  double t78;
  double t79;
  double t80;
  double t89;
  double t9;
  double t91;
  double t93;
  double t95;
  double t98;
  {
    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 + t6 * t10 - t2 * t14;
    t26 = M[1];
    t32 = t9 * t14 + t12 * t6 + t2 * t16 - t4 * t10;
    t33 = M[2];
    t35 = -t18 * t19 - t25 * t26 - t33 * t32;
    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 + t18 * t26 - t25 * t19;
    t58 = -t25;
    t61 = t35 * t36 + t42 * t46 + t52 * t51 - t57 * t58 + t[0];
    t62 = t61 * t61;
    t68 = t52 * t35 + t42 * t57 + t46 * t58 - t51 * t36 + t[2];
    t69 = t68 * t68;
    t70 = 1 / t69;
    t71 = t62 * t70;
    t77 = t35 * t58 + t42 * t51 + t57 * t36 - t52 * t46 + t[1];
    t78 = t77 * t77;
    t79 = t78 * t70;
    t80 = t71 + t79;
    t89 = 1.0 + t80 * (kc[0] + t80 * (kc[1] + t80 * kc[4]));
    t91 = 1 / t68;
    t93 = kc[2];
    t95 = t70 * t77;
    t98 = kc[3];
    t113 = t89 * t77 * t91 + t93 * (t71 + 3.0 * t79) + 2.0 * t98 * t61 * t95;
    n[0] = t1 * (t89 * t61 * t91 + 2.0 * t93 * t61 * t95 +
                 t98 * (3.0 * t71 + t79)) +
           a[4] * t113 + a[1];
    n[1] = t1 * a[3] * t113 + a[2];
    return;
  }
}


x86 assembly (clang, -O0):
<calcDistImgProj>:
push   %rbp
mov    %rsp,%rbp
sub    $0x180,%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,-0x78(%rbp)
movsd  -0x78(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0xf8(%rbp),%xmm0
ff
mulsd  -0xf8(%rbp),%xmm0
ff
movsd  %xmm0,-0x120(%rbp)
ff
movsd  0xe53(%rip),%xmm0
subsd  -0x90(%rbp),%xmm0
ff
subsd  -0xd0(%rbp),%xmm0
ff
subsd  -0x120(%rbp),%xmm0
ff
call   1030 <sqrt@plt>
movsd  %xmm0,-0x160(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x160(%rbp),%xmm0
ff
movsd  -0x40(%rbp),%xmm2
movsd  -0x50(%rbp),%xmm1
mulsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0xb8(%rbp),%xmm1
ff
movsd  -0x58(%rbp),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xf8(%rbp),%xmm0
ff
movsd  -0x60(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x160(%rbp),%xmm0
ff
movsd  -0x60(%rbp),%xmm2
movsd  -0x50(%rbp),%xmm1
mulsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0xf8(%rbp),%xmm1
ff
movsd  -0x40(%rbp),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x78(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x88(%rbp)
movsd  -0x160(%rbp),%xmm0
ff
movsd  -0x58(%rbp),%xmm2
movsd  -0x50(%rbp),%xmm1
mulsd  -0xf8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x78(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xb8(%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,-0x98(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x68(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0x70(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm0
mulsd  -0x88(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0x98(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x68(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x160(%rbp),%xmm0
ff
movsd  -0x50(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  -0x40(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0xb8(%rbp),%xmm1
ff
movsd  -0x60(%rbp),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xf8(%rbp),%xmm0
ff
movsd  -0x58(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0xc0(%rbp),%xmm1
ff
movsd  -0x70(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm0
mulsd  -0xa0(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm1
ff
movsd  -0x88(%rbp),%xmm2
ff
movsd  -0x98(%rbp),%xmm0
ff
mulsd  -0x70(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x68(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xc0(%rbp),%xmm1
ff
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x68(%rbp),%xmm0
mulsd  -0x88(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x80(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0xe0(%rbp),%xmm1
ff
movsd  -0xd8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xe8(%rbp),%xmm0
ff
movsd  -0xf0(%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,-0x100(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0xc8(%rbp),%xmm1
ff
movsd  -0xf0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xd8(%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
mov    -0x28(%rbp),%rax
addsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
mulsd  -0x110(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
movsd  0x8ce(%rip),%xmm0
divsd  -0x118(%rbp),%xmm0
ff
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x108(%rbp),%xmm0
ff
mulsd  -0x128(%rbp),%xmm0
ff
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0xf0(%rbp),%xmm2
ff
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0xe8(%rbp),%xmm1
ff
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xe0(%rbp),%xmm0
ff
movsd  -0xc8(%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,-0x138(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
mulsd  -0x138(%rbp),%xmm0
ff
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x140(%rbp),%xmm0
ff
mulsd  -0x128(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x130(%rbp),%xmm0
ff
addsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
movsd  -0x150(%rbp),%xmm1
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm4
movsd  -0x150(%rbp),%xmm3
ff
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm5
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  0x790(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  0x77c(%rip),%xmm0
divsd  -0x110(%rbp),%xmm0
ff
movsd  %xmm0,-0x168(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x170(%rbp)
ff
movsd  -0x128(%rbp),%xmm0
ff
mulsd  -0x138(%rbp),%xmm0
ff
movsd  %xmm0,-0x178(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x180(%rbp)
ff
movsd  -0x158(%rbp),%xmm1
ff
mulsd  -0x138(%rbp),%xmm1
ff
movsd  -0x168(%rbp),%xmm2
ff
movsd  -0x170(%rbp),%xmm0
ff
movsd  -0x130(%rbp),%xmm4
ff
movsd  -0x148(%rbp),%xmm3
ff
movsd  0x6ea(%rip),%xmm5
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x6d6(%rip),%xmm0
mulsd  -0x180(%rbp),%xmm0
ff
mulsd  -0x100(%rbp),%xmm0
ff
movsd  -0x178(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x158(%rbp),%xmm1
ff
mulsd  -0x100(%rbp),%xmm1
ff
movsd  -0x168(%rbp),%xmm3
ff
movsd  0x68c(%rip),%xmm2
mulsd  -0x170(%rbp),%xmm2
ff
mulsd  -0x100(%rbp),%xmm2
ff
mulsd  -0x178(%rbp),%xmm2
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  -0x180(%rbp),%xmm2
ff
movsd  -0x130(%rbp),%xmm3
ff
movsd  -0x148(%rbp),%xmm4
ff
movsd  0x644(%rip),%xmm5
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
mov    -0x8(%rbp),%rax
movsd  0x20(%rax),%xmm1
mulsd  -0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
addsd  0x8(%rax),%xmm0
mov    0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mulsd  0x18(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
add    $0x180,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<calcDistImgProj>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x28,%rsp
mov    %r9,%r13
mov    %r8,%r15
mov    %rdx,%rbx
mov    %rsi,%r12
mov    %rdi,%r14
mov    0x60(%rsp),%rbp
movsd  (%rdi),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  (%rcx),%xmm1
movsd  0x8(%rcx),%xmm7
movsd  %xmm1,0x10(%rsp)
mulsd  %xmm1,%xmm1
movapd %xmm7,%xmm2
mulsd  %xmm7,%xmm2
movsd  0x10(%rcx),%xmm3
movsd  %xmm3,0x18(%rsp)
mulsd  %xmm3,%xmm3
movsd  0xe92(%rip),%xmm0
subsd  %xmm1,%xmm0
subsd  %xmm2,%xmm0
subsd  %xmm3,%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     118a <calcDistImgProj+0x7a>
sqrtsd %xmm0,%xmm0
jmp    119b <calcDistImgProj+0x8b>
movsd  %xmm7,0x8(%rsp)
call   1030 <sqrt@plt>
movsd  0x8(%rsp),%xmm7
movsd  (%rbx),%xmm15
movsd  0x8(%rbx),%xmm2
movsd  0x18(%rbx),%xmm9
movsd  0x10(%rbx),%xmm10
movsd  0x10(%rsp),%xmm13
movapd %xmm13,%xmm1
mulsd  %xmm15,%xmm1
movapd %xmm0,%xmm3
mulsd  %xmm2,%xmm3
addsd  %xmm1,%xmm3
movapd %xmm7,%xmm8
mulsd  %xmm9,%xmm8
addsd  %xmm3,%xmm8
movsd  0x18(%rsp),%xmm11
movapd %xmm11,%xmm1
mulsd  %xmm10,%xmm1
subsd  %xmm1,%xmm8
movapd %xmm7,%xmm1
mulsd  %xmm15,%xmm1
movapd %xmm0,%xmm3
mulsd  %xmm10,%xmm3
addsd  %xmm1,%xmm3
movapd %xmm11,%xmm14
mulsd  %xmm2,%xmm14
addsd  %xmm3,%xmm14
movapd %xmm13,%xmm1
mulsd  %xmm9,%xmm1
subsd  %xmm1,%xmm14
movsd  0x8(%r13),%xmm1
movapd %xmm11,%xmm3
mulsd  %xmm15,%xmm3
movapd %xmm0,%xmm4
mulsd  %xmm9,%xmm4
addsd  %xmm3,%xmm4
movapd %xmm13,%xmm5
mulsd  %xmm10,%xmm5
addsd  %xmm4,%xmm5
movapd %xmm7,%xmm3
mulsd  %xmm2,%xmm3
subsd  %xmm3,%xmm5
movapd 0xda9(%rip),%xmm12
xorpd  %xmm8,%xmm12
movapd %xmm1,%xmm6
mulsd  %xmm14,%xmm6
movsd  0x0(%r13),%xmm3
mulsd  %xmm3,%xmm12
subsd  %xmm6,%xmm12
movsd  0x10(%r13),%xmm4
movapd %xmm4,%xmm6
mulsd  %xmm5,%xmm6
subsd  %xmm6,%xmm12
mulsd  %xmm13,%xmm2
mulsd  %xmm15,%xmm0
subsd  %xmm2,%xmm0
mulsd  %xmm10,%xmm7
subsd  %xmm7,%xmm0
mulsd  %xmm9,%xmm11
subsd  %xmm11,%xmm0
movapd %xmm14,%xmm6
mulsd  %xmm4,%xmm6
movapd %xmm0,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm6,%xmm2
movapd %xmm5,%xmm6
mulsd  %xmm1,%xmm6
subsd  %xmm6,%xmm2
movapd %xmm14,%xmm6
mulsd  %xmm3,%xmm6
mulsd  %xmm5,%xmm3
movapd %xmm0,%xmm7
mulsd  %xmm1,%xmm7
addsd  %xmm3,%xmm7
movapd %xmm8,%xmm3
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm7
mulsd  %xmm8,%xmm1
mulsd  %xmm0,%xmm4
addsd  %xmm1,%xmm4
subsd  %xmm6,%xmm4
movapd %xmm0,%xmm3
mulsd  %xmm2,%xmm3
movapd %xmm12,%xmm1
mulsd  %xmm8,%xmm1
subsd  %xmm1,%xmm3
movapd %xmm5,%xmm9
movapd %xmm2,%xmm10
mulsd  %xmm5,%xmm2
mulsd  %xmm7,%xmm5
subsd  %xmm5,%xmm3
movapd %xmm4,%xmm1
mulsd  %xmm14,%xmm1
addsd  %xmm3,%xmm1
movapd %xmm0,%xmm3
mulsd  %xmm4,%xmm3
mulsd  %xmm12,%xmm9
subsd  %xmm9,%xmm3
mulsd  %xmm14,%xmm10
subsd  %xmm10,%xmm3
mulsd  %xmm7,%xmm0
mulsd  %xmm8,%xmm7
addsd  %xmm3,%xmm7
addsd  0x10(%r15),%xmm7
movapd %xmm7,%xmm3
mulsd  %xmm7,%xmm3
movsd  0xc76(%rip),%xmm10
movapd %xmm10,%xmm9
divsd  %xmm3,%xmm9
addsd  (%r15),%xmm1
mulsd  %xmm14,%xmm12
movapd %xmm1,%xmm3
mulsd  %xmm1,%xmm3
subsd  %xmm12,%xmm0
mulsd  %xmm8,%xmm4
subsd  %xmm4,%xmm0
addsd  %xmm0,%xmm2
addsd  0x8(%r15),%xmm2
mulsd  %xmm9,%xmm3
movapd %xmm2,%xmm5
mulsd  %xmm2,%xmm5
mulsd  %xmm9,%xmm5
movapd %xmm3,%xmm6
addsd  %xmm5,%xmm6
movsd  0x20(%r12),%xmm0
mulsd  %xmm6,%xmm0
addsd  0x8(%r12),%xmm0
mulsd  %xmm6,%xmm0
addsd  (%r12),%xmm0
mulsd  %xmm6,%xmm0
addsd  %xmm10,%xmm0
divsd  %xmm7,%xmm10
mulsd  %xmm2,%xmm9
movsd  0x10(%r12),%xmm6
mulsd  %xmm0,%xmm2
movsd  0xbee(%rip),%xmm7
movapd %xmm5,%xmm4
mulsd  %xmm7,%xmm4
addsd  %xmm3,%xmm4
mulsd  %xmm6,%xmm4
mulsd  %xmm10,%xmm2
addsd  %xmm4,%xmm2
mulsd  %xmm7,%xmm3
addsd  %xmm5,%xmm3
movsd  0x18(%r12),%xmm4
mulsd  %xmm4,%xmm3
addsd  %xmm4,%xmm4
mulsd  %xmm1,%xmm4
mulsd  %xmm9,%xmm4
addsd  %xmm2,%xmm4
mulsd  %xmm1,%xmm0
addsd  %xmm6,%xmm6
mulsd  %xmm1,%xmm6
mulsd  %xmm9,%xmm6
mulsd  %xmm10,%xmm0
addsd  %xmm6,%xmm0
addsd  %xmm0,%xmm3
movsd  0x20(%r14),%xmm0
mulsd  %xmm4,%xmm0
movsd  0x20(%rsp),%xmm1
mulsd  %xmm1,%xmm3
addsd  %xmm0,%xmm3
addsd  0x8(%r14),%xmm3
movsd  %xmm3,0x0(%rbp)
mulsd  0x18(%r14),%xmm1
mulsd  %xmm4,%xmm1
addsd  0x10(%r14),%xmm1
movsd  %xmm1,0x8(%rbp)
add    $0x28,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
define void @calcDistImgProj(double* nocapture %0, double* nocapture %1, double* nocapture %2, double* nocapture %3, double* nocapture %4, double* nocapture %5, 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 = getelementptr inbounds double, double* %2, i64 1
%22 = load double, double* %21
%23 = load double, double* %2
%24 = getelementptr inbounds double, double* %2, i64 3
%25 = load double, double* %24
%26 = getelementptr inbounds double, double* %2, i64 2
%27 = load double, double* %26
%28 = fmul double %9, %23
%29 = tail call double @llvm.fmuladd.f64(double %20, double %22, double %28)
%30 = tail call double @llvm.fmuladd.f64(double %12, double %25, double %29)
%31 = fneg double %15
%32 = tail call double @llvm.fmuladd.f64(double %31, double %27, double %30)
%33 = load double, double* %5
%34 = fmul double %12, %23
%35 = tail call double @llvm.fmuladd.f64(double %20, double %27, double %34)
%36 = tail call double @llvm.fmuladd.f64(double %15, double %22, double %35)
%37 = fneg double %9
%38 = tail call double @llvm.fmuladd.f64(double %37, double %25, double %36)
%39 = getelementptr inbounds double, double* %5, i64 1
%40 = load double, double* %39
%41 = fmul double %15, %23
%42 = tail call double @llvm.fmuladd.f64(double %20, double %25, double %41)
%43 = tail call double @llvm.fmuladd.f64(double %9, double %27, double %42)
%44 = fneg double %12
%45 = tail call double @llvm.fmuladd.f64(double %44, double %22, double %43)
%46 = getelementptr inbounds double, double* %5, i64 2
%47 = load double, double* %46
%48 = fneg double %32
%49 = fneg double %38
%50 = fmul double %40, %49
%51 = tail call double @llvm.fmuladd.f64(double %48, double %33, double %50)
%52 = fneg double %47
%53 = tail call double @llvm.fmuladd.f64(double %52, double %45, double %51)
%54 = fmul double %22, %37
%55 = tail call double @llvm.fmuladd.f64(double %20, double %23, double %54)
%56 = tail call double @llvm.fmuladd.f64(double %44, double %27, double %55)
%57 = tail call double @llvm.fmuladd.f64(double %31, double %25, double %56)
%58 = fmul double %38, %47
%59 = tail call double @llvm.fmuladd.f64(double %57, double %33, double %58)
%60 = fneg double %45
%61 = tail call double @llvm.fmuladd.f64(double %60, double %40, double %59)
%62 = fmul double %33, %45
%63 = tail call double @llvm.fmuladd.f64(double %57, double %40, double %62)
%64 = tail call double @llvm.fmuladd.f64(double %48, double %47, double %63)
%65 = fmul double %32, %40
%66 = tail call double @llvm.fmuladd.f64(double %57, double %47, double %65)
%67 = tail call double @llvm.fmuladd.f64(double %49, double %33, double %66)
%68 = fmul double %57, %61
%69 = tail call double @llvm.fmuladd.f64(double %53, double %48, double %68)
%70 = tail call double @llvm.fmuladd.f64(double %60, double %64, double %69)
%71 = tail call double @llvm.fmuladd.f64(double %67, double %38, double %70)
%72 = load double, double* %4
%73 = fadd double %72, %71
%74 = fmul double %73, %73
%75 = fmul double %57, %67
%76 = tail call double @llvm.fmuladd.f64(double %60, double %53, double %75)
%77 = tail call double @llvm.fmuladd.f64(double %61, double %49, double %76)
%78 = tail call double @llvm.fmuladd.f64(double %64, double %32, double %77)
%79 = getelementptr inbounds double, double* %4, i64 2
%80 = load double, double* %79
%81 = fadd double %80, %78
%82 = fmul double %81, %81
%83 = fdiv double 1.000000e+00, %82
%84 = fmul double %74, %83
%85 = fmul double %57, %64
%86 = tail call double @llvm.fmuladd.f64(double %53, double %49, double %85)
%87 = tail call double @llvm.fmuladd.f64(double %67, double %48, double %86)
%88 = tail call double @llvm.fmuladd.f64(double %45, double %61, double %87)
%89 = getelementptr inbounds double, double* %4, i64 1
%90 = load double, double* %89
%91 = fadd double %90, %88
%92 = fmul double %91, %91
%93 = fmul double %92, %83
%94 = fadd double %84, %93
%95 = load double, double* %1
%96 = getelementptr inbounds double, double* %1, i64 1
%97 = load double, double* %96
%98 = getelementptr inbounds double, double* %1, i64 4
%99 = load double, double* %98
%100 = tail call double @llvm.fmuladd.f64(double %94, double %99, double %97)
%101 = tail call double @llvm.fmuladd.f64(double %94, double %100, double %95)
%102 = tail call double @llvm.fmuladd.f64(double %94, double %101, double 1.000000e+00)
%103 = fdiv double 1.000000e+00, %81
%104 = getelementptr inbounds double, double* %1, i64 2
%105 = load double, double* %104
%106 = fmul double %91, %83
%107 = getelementptr inbounds double, double* %1, i64 3
%108 = load double, double* %107
%109 = fmul double %91, %102
%110 = tail call double @llvm.fmuladd.f64(double %93, double 3.000000e+00, double %84)
%111 = fmul double %105, %110
%112 = tail call double @llvm.fmuladd.f64(double %109, double %103, double %111)
%113 = fmul double %108, 2.000000e+00
%114 = fmul double %73, %113
%115 = tail call double @llvm.fmuladd.f64(double %114, double %106, double %112)
%116 = fmul double %73, %102
%117 = fmul double %105, 2.000000e+00
%118 = fmul double %117, %73
%119 = fmul double %118, %106
%120 = tail call double @llvm.fmuladd.f64(double %116, double %103, double %119)
%121 = tail call double @llvm.fmuladd.f64(double %84, double 3.000000e+00, double %93)
%122 = tail call double @llvm.fmuladd.f64(double %108, double %121, double %120)
%123 = getelementptr inbounds double, double* %0, i64 4
%124 = load double, double* %123
%125 = fmul double %124, %115
%126 = tail call double @llvm.fmuladd.f64(double %8, double %122, double %125)
%127 = getelementptr inbounds double, double* %0, i64 1
%128 = load double, double* %127
%129 = fadd double %128, %126
store double %129, double* %6
%130 = getelementptr inbounds double, double* %0, i64 3
%131 = load double, double* %130
%132 = fmul double %8, %131
%133 = getelementptr inbounds double, double* %0, i64 2
%134 = load double, double* %133
%135 = tail call double @llvm.fmuladd.f64(double %132, double %115, double %134)
%136 = getelementptr inbounds double, double* %6, i64 1
store double %135, double* %136
ret void
}