#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
double sqrt(int);
void imgproj_motstr(double *rt, double *xyz, double *xij, double **adata) {
  double *cal = adata[0];
  double a1, a2, a3, a4, a5;
  double qr1, qr2, qr3, qr4, t1, t2, t3;
  double X, Y, Z;
  a1 = cal[0];
  a2 = cal[1];
  a3 = cal[2];
  a4 = cal[3];
  a5 = cal[4];
  qr2 = rt[0];
  qr3 = rt[1];
  qr4 = rt[2];
  t1 = rt[3];
  t2 = rt[4];
  t3 = rt[5];
  X = xyz[0];
  Y = xyz[1];
  Z = xyz[2];
  qr1 = sqrt(1 - (qr2 * qr2 + qr3 * qr3 + qr4 * qr4));
  xij[0] = -((t3 + Z + (-2 * qr1 * X + 2 * qr4 * Y - 2 * qr3 * Z) * qr3 +
              (2 * qr1 * Y + 2 * qr4 * X - 2 * qr2 * Z) * qr2) *
                 a3 +
             (t2 + Y + (2 * qr1 * X - 2 * qr4 * Y) * qr4 + 2 * qr3 * qr4 * Z +
              (2 * qr3 * X - 2 * qr1 * Z - 2 * qr2 * Y) * qr2) *
                 a2 +
             (X + t1 + (-2 * qr4 * X - 2 * qr1 * Y) * qr4 +
              (-2 * qr3 * X + 2 * qr1 * Z) * qr3 +
              (2 * qr3 * Y + 2 * qr4 * Z) * qr2) *
                 a1) /
           (-Z - t3 + (2 * qr1 * X - 2 * qr4 * Y + 2 * qr3 * Z) * qr3 +
            (-2 * qr4 * X - 2 * qr1 * Y + 2 * qr2 * Z) * qr2);
  xij[1] = ((-Z - t3) * a5 +
            (-2 * a5 * qr4 * Y + 2 * a5 * qr1 * X + 2 * a5 * Z * qr3) * qr3 +
            (-2 * a5 * qr1 * Y - 2 * a5 * qr4 * X + 2 * a5 * Z * qr2) * qr2 +
            (-t2 - Y + (-2 * qr1 * X + 2 * qr4 * Y) * qr4 - 2 * qr3 * qr4 * Z +
             (-2 * qr3 * X + 2 * qr1 * Z + 2 * qr2 * Y) * qr2) *
                a4) /
           (-Z - t3 + (2 * qr1 * X - 2 * qr4 * Y + 2 * qr3 * Z) * qr3 +
            (-2 * qr4 * X - 2 * qr1 * Y + 2 * qr2 * Z) * qr2);
}


x86 assembly (clang, -O0):
<imgproj_motstr>:
push   %rbp
mov    %rsp,%rbp
sub    $0xa0,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    -0x20(%rbp),%rax
mov    (%rax),%rax
mov    %rax,-0x28(%rbp)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x68(%rbp),%xmm1
mulsd  -0x68(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x70(%rbp),%xmm1
movsd  -0x70(%rbp),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0xdd7(%rip),%xmm0
subsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sqrt@plt>
movsd  %xmm0,-0x58(%rbp)
movsd  -0x88(%rbp),%xmm1
ff
addsd  -0xa0(%rbp),%xmm1
ff
movsd  0xda5(%rip),%xmm2
mulsd  -0x58(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm3
ff
movsd  0xd88(%rip),%xmm0
mulsd  -0x70(%rbp),%xmm0
mulsd  -0x98(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm2
addsd  %xmm0,%xmm2
movsd  0xd6b(%rip),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm3
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movsd  -0x68(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xd2a(%rip),%xmm2
mulsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm3
ff
movsd  0xd15(%rip),%xmm1
mulsd  -0x70(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0xcf8(%rip),%xmm1
mulsd  -0x60(%rbp),%xmm1
movsd  -0xa0(%rbp),%xmm3
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  -0x60(%rbp),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x40(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm3
addsd  -0x98(%rbp),%xmm3
ff
movsd  0xca5(%rip),%xmm0
mulsd  -0x58(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm5
ff
movsd  0xc90(%rip),%xmm4
mulsd  -0x70(%rbp),%xmm4
mulsd  -0x98(%rbp),%xmm4
ff
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm0
addsd  %xmm4,%xmm0
movsd  -0x70(%rbp),%xmm4
mulsd  %xmm4,%xmm0
addsd  %xmm3,%xmm0
movsd  0xc4f(%rip),%xmm3
mulsd  -0x68(%rbp),%xmm3
mulsd  -0x70(%rbp),%xmm3
movsd  -0xa0(%rbp),%xmm4
ff
mulsd  %xmm4,%xmm3
addsd  %xmm0,%xmm3
movsd  0xc2d(%rip),%xmm4
mulsd  -0x68(%rbp),%xmm4
movsd  -0x90(%rbp),%xmm5
ff
movsd  0xc18(%rip),%xmm0
mulsd  -0x58(%rbp),%xmm0
mulsd  -0xa0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm5,%xmm4
addsd  %xmm0,%xmm4
movsd  0xbe4(%rip),%xmm0
mulsd  -0x60(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm5
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm4,%xmm0
movsd  -0x60(%rbp),%xmm4
mulsd  %xmm4,%xmm0
addsd  %xmm3,%xmm0
mulsd  -0x38(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x90(%rbp),%xmm2
ff
addsd  -0x78(%rbp),%xmm2
movsd  0xb91(%rip),%xmm0
mulsd  -0x70(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm4
ff
movsd  0xb74(%rip),%xmm3
mulsd  -0x58(%rbp),%xmm3
mulsd  -0x98(%rbp),%xmm3
ff
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm0
addsd  %xmm3,%xmm0
movsd  -0x70(%rbp),%xmm3
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movsd  0xb3b(%rip),%xmm2
mulsd  -0x68(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm4
ff
movsd  0xb1e(%rip),%xmm3
mulsd  -0x58(%rbp),%xmm3
mulsd  -0xa0(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movsd  -0x68(%rbp),%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm0,%xmm2
movsd  0xaf4(%rip),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm4
ff
movsd  0xadf(%rip),%xmm3
mulsd  -0x70(%rbp),%xmm3
mulsd  -0xa0(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm0
addsd  %xmm3,%xmm0
movsd  -0x60(%rbp),%xmm3
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movsd  -0x30(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
subsd  -0x88(%rbp),%xmm1
ff
movsd  0xa6a(%rip),%xmm3
mulsd  -0x58(%rbp),%xmm3
movsd  -0x90(%rbp),%xmm4
ff
movsd  0xa55(%rip),%xmm2
mulsd  -0x70(%rbp),%xmm2
mulsd  -0x98(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm4,%xmm3
addsd  %xmm2,%xmm3
movsd  0xa21(%rip),%xmm2
mulsd  -0x68(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm4
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movsd  -0x68(%rbp),%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0x9ff(%rip),%xmm3
mulsd  -0x70(%rbp),%xmm3
movsd  -0x90(%rbp),%xmm4
ff
movsd  0x9e2(%rip),%xmm1
mulsd  -0x58(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm4,%xmm3
addsd  %xmm1,%xmm3
movsd  0x9ae(%rip),%xmm1
mulsd  -0x60(%rbp),%xmm1
movsd  -0xa0(%rbp),%xmm4
ff
mulsd  %xmm4,%xmm1
addsd  %xmm3,%xmm1
movsd  -0x60(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xa0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
subsd  -0x88(%rbp),%xmm0
ff
movsd  -0x50(%rbp),%xmm2
movsd  0x954(%rip),%xmm3
mulsd  -0x50(%rbp),%xmm3
mulsd  -0x70(%rbp),%xmm3
movsd  -0x98(%rbp),%xmm4
ff
movsd  0x932(%rip),%xmm1
mulsd  -0x50(%rbp),%xmm1
mulsd  -0x58(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm4,%xmm3
addsd  %xmm1,%xmm3
movsd  0x910(%rip),%xmm1
mulsd  -0x50(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movsd  -0x68(%rbp),%xmm4
mulsd  %xmm4,%xmm1
addsd  %xmm3,%xmm1
mulsd  -0x68(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x8e9(%rip),%xmm2
mulsd  -0x50(%rbp),%xmm2
mulsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm3
ff
movsd  0x8c7(%rip),%xmm1
mulsd  -0x50(%rbp),%xmm1
mulsd  -0x70(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0x88e(%rip),%xmm1
mulsd  -0x50(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movsd  -0x60(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  -0x60(%rbp),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x80(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
subsd  -0x98(%rbp),%xmm2
ff
movsd  0x843(%rip),%xmm0
mulsd  -0x58(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm4
ff
movsd  0x826(%rip),%xmm3
mulsd  -0x70(%rbp),%xmm3
mulsd  -0x98(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm0
addsd  %xmm3,%xmm0
movsd  -0x70(%rbp),%xmm3
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movsd  0x7fc(%rip),%xmm2
mulsd  -0x68(%rbp),%xmm2
mulsd  -0x70(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm3
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm0,%xmm2
movsd  0x7cb(%rip),%xmm3
mulsd  -0x68(%rbp),%xmm3
movsd  -0x90(%rbp),%xmm4
ff
movsd  0x7ae(%rip),%xmm0
mulsd  -0x58(%rbp),%xmm0
mulsd  -0xa0(%rbp),%xmm0
ff
mulsd  %xmm4,%xmm3
addsd  %xmm0,%xmm3
movsd  0x791(%rip),%xmm0
mulsd  -0x60(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm4
ff
mulsd  %xmm4,%xmm0
addsd  %xmm3,%xmm0
movsd  -0x60(%rbp),%xmm3
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
subsd  -0x88(%rbp),%xmm1
ff
movsd  0x733(%rip),%xmm3
mulsd  -0x58(%rbp),%xmm3
movsd  -0x90(%rbp),%xmm4
ff
movsd  0x71e(%rip),%xmm2
mulsd  -0x70(%rbp),%xmm2
mulsd  -0x98(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm4,%xmm3
addsd  %xmm2,%xmm3
movsd  0x6ea(%rip),%xmm2
mulsd  -0x68(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm4
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movsd  -0x68(%rbp),%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0x6c8(%rip),%xmm3
mulsd  -0x70(%rbp),%xmm3
movsd  -0x90(%rbp),%xmm4
ff
movsd  0x6ab(%rip),%xmm1
mulsd  -0x58(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm4,%xmm3
addsd  %xmm1,%xmm3
movsd  0x677(%rip),%xmm1
mulsd  -0x60(%rbp),%xmm1
movsd  -0xa0(%rbp),%xmm4
ff
mulsd  %xmm4,%xmm1
addsd  %xmm3,%xmm1
movsd  -0x60(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x8(%rax)
add    $0xa0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<imgproj_motstr>:
push   %rbx
sub    $0xa0,%rsp
mov    %rdx,%rbx
mov    (%rcx),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,0x68(%rsp)
movsd  0x8(%rax),%xmm0
movsd  %xmm0,0x58(%rsp)
movsd  0x10(%rax),%xmm0
movsd  %xmm0,(%rsp)
movsd  0x18(%rax),%xmm0
movsd  %xmm0,0x78(%rsp)
movsd  0x20(%rax),%xmm0
movsd  %xmm0,0x70(%rsp)
movsd  (%rdi),%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0x8(%rdi),%xmm3
movsd  %xmm3,0x30(%rsp)
movsd  0x10(%rdi),%xmm2
movsd  %xmm2,0x28(%rsp)
movsd  0x20(%rdi),%xmm0
movaps %xmm0,0x80(%rsp)
movsd  0x28(%rdi),%xmm0
movsd  %xmm0,0x38(%rsp)
movsd  (%rsi),%xmm4
movsd  %xmm4,0x10(%rsp)
movsd  0x8(%rsi),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x10(%rsi),%xmm0
movaps %xmm0,0x90(%rsp)
movapd %xmm3,%xmm0
mulsd  %xmm3,%xmm0
mulsd  %xmm1,%xmm1
addsd  %xmm0,%xmm1
movapd %xmm2,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xe2f(%rip),%xmm1
subsd  %xmm0,%xmm1
cvttsd2si %xmm1,%eax
movsd  0x18(%rdi),%xmm0
addsd  %xmm4,%xmm0
movsd  %xmm0,0x48(%rsp)
mov    %eax,%edi
call   1030 <sqrt@plt>
movsd  0x38(%rsp),%xmm4
movapd 0x90(%rsp),%xmm10
addsd  %xmm10,%xmm4
movsd  0xdfb(%rip),%xmm15
movapd %xmm0,%xmm14
movapd %xmm0,%xmm3
movsd  %xmm0,0x60(%rsp)
mulsd  %xmm15,%xmm14
movsd  0x28(%rsp),%xmm12
addsd  %xmm12,%xmm12
movapd %xmm12,%xmm11
movsd  0x20(%rsp),%xmm9
mulsd  %xmm9,%xmm11
movsd  0x10(%rsp),%xmm1
mulsd  %xmm1,%xmm14
addsd  %xmm11,%xmm14
movsd  0x30(%rsp),%xmm0
movapd %xmm0,%xmm8
addsd  %xmm0,%xmm8
movapd %xmm8,%xmm6
mulsd  %xmm10,%xmm6
movsd  %xmm6,0x50(%rsp)
movapd %xmm14,%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm4,%xmm2
movapd %xmm3,%xmm4
addsd  %xmm3,%xmm4
movapd %xmm12,%xmm6
mulsd  %xmm1,%xmm6
movapd %xmm4,%xmm7
mulsd  %xmm9,%xmm7
addsd  %xmm7,%xmm6
movsd  0x8(%rsp),%xmm3
movapd %xmm3,%xmm0
addsd  %xmm3,%xmm0
movsd  %xmm0,0x18(%rsp)
movapd %xmm0,%xmm1
mulsd  %xmm10,%xmm1
movsd  %xmm1,0x40(%rsp)
subsd  %xmm1,%xmm6
mulsd  %xmm3,%xmm6
addsd  %xmm2,%xmm6
mulsd  (%rsp),%xmm6
movapd %xmm10,%xmm13
mulsd  %xmm4,%xmm13
movsd  0x10(%rsp),%xmm3
mulsd  %xmm3,%xmm4
subsd  %xmm11,%xmm4
movapd 0x80(%rsp),%xmm1
addsd  %xmm9,%xmm1
movapd %xmm9,%xmm5
movapd %xmm4,%xmm2
movsd  0x28(%rsp),%xmm9
mulsd  %xmm9,%xmm2
addsd  %xmm1,%xmm2
movapd %xmm8,%xmm0
mulsd  %xmm9,%xmm0
mulsd  %xmm10,%xmm0
movsd  %xmm0,(%rsp)
addsd  %xmm0,%xmm2
movapd %xmm8,%xmm1
mulsd  %xmm3,%xmm1
subsd  %xmm13,%xmm1
movsd  0x18(%rsp),%xmm0
mulsd  %xmm5,%xmm0
movsd  %xmm0,0x18(%rsp)
subsd  %xmm0,%xmm1
movsd  0x8(%rsp),%xmm11
mulsd  %xmm11,%xmm1
addsd  %xmm2,%xmm1
mulsd  0x58(%rsp),%xmm1
addsd  %xmm6,%xmm1
movapd %xmm9,%xmm6
mulsd  %xmm15,%xmm6
mulsd  %xmm3,%xmm6
movapd %xmm3,%xmm5
subsd  %xmm7,%xmm6
movapd %xmm6,%xmm2
mulsd  %xmm9,%xmm2
addsd  0x48(%rsp),%xmm2
movsd  0x30(%rsp),%xmm0
movapd %xmm0,%xmm3
mulsd  %xmm15,%xmm3
mulsd  %xmm5,%xmm3
addsd  %xmm13,%xmm3
movapd %xmm3,%xmm7
mulsd  %xmm0,%xmm7
movapd %xmm0,%xmm13
addsd  %xmm2,%xmm7
movapd %xmm10,%xmm0
mulsd  %xmm10,%xmm12
movsd  0x20(%rsp),%xmm10
mulsd  %xmm10,%xmm8
addsd  %xmm12,%xmm8
movapd %xmm11,%xmm2
mulsd  %xmm11,%xmm8
addsd  %xmm7,%xmm8
mulsd  0x68(%rsp),%xmm8
addsd  %xmm1,%xmm8
movapd %xmm0,%xmm1
movapd %xmm0,%xmm11
xorpd  0xc16(%rip),%xmm1
subsd  0x38(%rsp),%xmm1
addsd  0x50(%rsp),%xmm4
addsd  0x40(%rsp),%xmm6
mulsd  %xmm13,%xmm4
addsd  %xmm1,%xmm4
mulsd  %xmm2,%xmm6
addsd  %xmm4,%xmm6
movsd  0x70(%rsp),%xmm5
mulsd  %xmm5,%xmm15
movapd %xmm15,%xmm2
mulsd  %xmm9,%xmm2
mulsd  %xmm5,%xmm1
addsd  %xmm5,%xmm5
movapd %xmm5,%xmm4
movsd  0x60(%rsp),%xmm7
mulsd  %xmm7,%xmm4
movsd  0x10(%rsp),%xmm12
mulsd  %xmm12,%xmm4
mulsd  %xmm10,%xmm2
addsd  %xmm4,%xmm2
mulsd  %xmm5,%xmm11
movapd %xmm11,%xmm4
mulsd  %xmm13,%xmm4
addsd  %xmm2,%xmm4
mulsd  %xmm13,%xmm4
addsd  %xmm1,%xmm4
mulsd  %xmm7,%xmm15
mulsd  %xmm9,%xmm5
mulsd  %xmm12,%xmm5
mulsd  %xmm10,%xmm15
subsd  %xmm5,%xmm15
movsd  0x8(%rsp),%xmm0
mulsd  %xmm0,%xmm11
addsd  %xmm15,%xmm11
mulsd  %xmm0,%xmm11
addsd  %xmm4,%xmm11
movapd 0xb5c(%rip),%xmm4
xorpd  %xmm4,%xmm8
movapd 0x80(%rsp),%xmm2
xorpd  %xmm4,%xmm2
subsd  %xmm10,%xmm2
mulsd  %xmm9,%xmm14
addsd  %xmm2,%xmm14
subsd  (%rsp),%xmm14
addsd  0x18(%rsp),%xmm3
mulsd  %xmm0,%xmm3
addsd  %xmm14,%xmm3
mulsd  0x78(%rsp),%xmm3
addsd  %xmm11,%xmm3
unpcklpd %xmm3,%xmm8
unpcklpd %xmm6,%xmm6
divpd  %xmm6,%xmm8
movupd %xmm8,(%rbx)
add    $0xa0,%rsp
pop    %rbx
ret

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

LLVM IR (-O2):
define void @imgproj_motstr(double* nocapture %0, double* nocapture %1, double* nocapture writeonly %2, double** nocapture %3) {
%5 = load double*, double** %3
%6 = load double, double* %5
%7 = getelementptr inbounds double, double* %5, i64 1
%8 = load double, double* %7
%9 = getelementptr inbounds double, double* %5, i64 2
%10 = load double, double* %9
%11 = getelementptr inbounds double, double* %5, i64 3
%12 = load double, double* %11
%13 = getelementptr inbounds double, double* %5, i64 4
%14 = load double, double* %13
%15 = load double, double* %0
%16 = getelementptr inbounds double, double* %0, i64 1
%17 = load double, double* %16
%18 = getelementptr inbounds double, double* %0, i64 2
%19 = load double, double* %18
%20 = getelementptr inbounds double, double* %0, i64 3
%21 = load double, double* %20
%22 = getelementptr inbounds double, double* %0, i64 4
%23 = load double, double* %22
%24 = getelementptr inbounds double, double* %0, i64 5
%25 = load double, double* %24
%26 = load double, double* %1
%27 = getelementptr inbounds double, double* %1, i64 1
%28 = load double, double* %27
%29 = getelementptr inbounds double, double* %1, i64 2
%30 = load double, double* %29
%31 = fmul double %17, %17
%32 = tail call double @llvm.fmuladd.f64(double %15, double %15, double %31)
%33 = tail call double @llvm.fmuladd.f64(double %19, double %19, double %32)
%34 = fsub double 1.000000e+00, %33
%35 = fptosi double %34 to i32
%36 = tail call double @sqrt(i32 %35)
%37 = fadd double %25, %30
%38 = fmul double %36, -2.000000e+00
%39 = fmul double %19, 2.000000e+00
%40 = fmul double %39, %28
%41 = tail call double @llvm.fmuladd.f64(double %38, double %26, double %40)
%42 = fmul double %17, 2.000000e+00
%43 = fneg double %42
%44 = tail call double @llvm.fmuladd.f64(double %43, double %30, double %41)
%45 = tail call double @llvm.fmuladd.f64(double %44, double %17, double %37)
%46 = fmul double %36, 2.000000e+00
%47 = fmul double %39, %26
%48 = tail call double @llvm.fmuladd.f64(double %46, double %28, double %47)
%49 = fmul double %15, 2.000000e+00
%50 = fneg double %49
%51 = tail call double @llvm.fmuladd.f64(double %50, double %30, double %48)
%52 = tail call double @llvm.fmuladd.f64(double %51, double %15, double %45)
%53 = fadd double %23, %28
%54 = fneg double %40
%55 = tail call double @llvm.fmuladd.f64(double %46, double %26, double %54)
%56 = tail call double @llvm.fmuladd.f64(double %55, double %19, double %53)
%57 = fmul double %42, %19
%58 = tail call double @llvm.fmuladd.f64(double %57, double %30, double %56)
%59 = fmul double %30, %46
%60 = fneg double %59
%61 = tail call double @llvm.fmuladd.f64(double %42, double %26, double %60)
%62 = tail call double @llvm.fmuladd.f64(double %50, double %28, double %61)
%63 = tail call double @llvm.fmuladd.f64(double %62, double %15, double %58)
%64 = fmul double %8, %63
%65 = tail call double @llvm.fmuladd.f64(double %52, double %10, double %64)
%66 = fadd double %21, %26
%67 = fmul double %19, -2.000000e+00
%68 = fneg double %46
%69 = fmul double %28, %68
%70 = tail call double @llvm.fmuladd.f64(double %67, double %26, double %69)
%71 = tail call double @llvm.fmuladd.f64(double %70, double %19, double %66)
%72 = fmul double %17, -2.000000e+00
%73 = tail call double @llvm.fmuladd.f64(double %72, double %26, double %59)
%74 = tail call double @llvm.fmuladd.f64(double %73, double %17, double %71)
%75 = fmul double %39, %30
%76 = tail call double @llvm.fmuladd.f64(double %42, double %28, double %75)
%77 = tail call double @llvm.fmuladd.f64(double %76, double %15, double %74)
%78 = tail call double @llvm.fmuladd.f64(double %77, double %6, double %65)
%79 = fneg double %78
%80 = fneg double %30
%81 = fsub double %80, %25
%82 = tail call double @llvm.fmuladd.f64(double %42, double %30, double %55)
%83 = tail call double @llvm.fmuladd.f64(double %82, double %17, double %81)
%84 = tail call double @llvm.fmuladd.f64(double %49, double %30, double %70)
%85 = tail call double @llvm.fmuladd.f64(double %84, double %15, double %83)
%86 = fmul double %14, -2.000000e+00
%87 = fmul double %86, %19
%88 = fmul double %14, 2.000000e+00
%89 = fmul double %88, %36
%90 = fmul double %26, %89
%91 = tail call double @llvm.fmuladd.f64(double %87, double %28, double %90)
%92 = fmul double %88, %30
%93 = tail call double @llvm.fmuladd.f64(double %92, double %17, double %91)
%94 = fmul double %17, %93
%95 = tail call double @llvm.fmuladd.f64(double %81, double %14, double %94)
%96 = fmul double %86, %36
%97 = fneg double %88
%98 = fmul double %19, %97
%99 = fmul double %98, %26
%100 = tail call double @llvm.fmuladd.f64(double %96, double %28, double %99)
%101 = tail call double @llvm.fmuladd.f64(double %92, double %15, double %100)
%102 = tail call double @llvm.fmuladd.f64(double %101, double %15, double %95)
%103 = fneg double %23
%104 = fsub double %103, %28
%105 = tail call double @llvm.fmuladd.f64(double %41, double %19, double %104)
%106 = fneg double %57
%107 = tail call double @llvm.fmuladd.f64(double %106, double %30, double %105)
%108 = tail call double @llvm.fmuladd.f64(double %49, double %28, double %73)
%109 = tail call double @llvm.fmuladd.f64(double %108, double %15, double %107)
%110 = tail call double @llvm.fmuladd.f64(double %109, double %12, double %102)
%111 = insertelement <2 x double> poison, double %79, i64 0
%112 = insertelement <2 x double> %111, double %110, i64 1
%113 = insertelement <2 x double> poison, double %85, i64 0
%114 = shufflevector <2 x double> %113, <2 x double> poison, <2 x i32> zeroinitializer
%115 = fdiv <2 x double> %112, %114
%116 = bitcast double* %2 to <2 x double>*
store <2 x double> %115, <2 x double>* %116
ret void
}