int inv4(const double *a, double *b) {
  double det =
      (((a[4 * 1 + 0] * -((a[4 * 2 + 1] * -(a[4 * 0 + 2] * a[4 * 3 + 3] -
                                            a[4 * 0 + 3] * a[4 * 3 + 2]) +
                           a[4 * 2 + 2] * (a[4 * 0 + 1] * a[4 * 3 + 3] -
                                           a[4 * 0 + 3] * a[4 * 3 + 1])) +
                          a[4 * 2 + 3] * -(a[4 * 0 + 1] * a[4 * 3 + 2] -
                                           a[4 * 0 + 2] * a[4 * 3 + 1])) +
         a[4 * 1 + 1] * ((a[4 * 2 + 0] * -(a[4 * 0 + 2] * a[4 * 3 + 3] -
                                           a[4 * 0 + 3] * a[4 * 3 + 2]) +
                          a[4 * 2 + 2] * (a[4 * 0 + 0] * a[4 * 3 + 3] -
                                          a[4 * 0 + 3] * a[4 * 3 + 0])) +
                         a[4 * 2 + 3] * -(a[4 * 0 + 0] * a[4 * 3 + 2] -
                                          a[4 * 0 + 2] * a[4 * 3 + 0]))) +
        a[4 * 1 + 2] * -((a[4 * 2 + 0] * -(a[4 * 0 + 1] * a[4 * 3 + 3] -
                                           a[4 * 0 + 3] * a[4 * 3 + 1]) +
                          a[4 * 2 + 1] * (a[4 * 0 + 0] * a[4 * 3 + 3] -
                                          a[4 * 0 + 3] * a[4 * 3 + 0])) +
                         a[4 * 2 + 3] * -(a[4 * 0 + 0] * a[4 * 3 + 1] -
                                          a[4 * 0 + 1] * a[4 * 3 + 0]))) +
       a[4 * 1 + 3] * ((a[4 * 2 + 0] * -(a[4 * 0 + 1] * a[4 * 3 + 2] -
                                         a[4 * 0 + 2] * a[4 * 3 + 1]) +
                        a[4 * 2 + 1] * (a[4 * 0 + 0] * a[4 * 3 + 2] -
                                        a[4 * 0 + 2] * a[4 * 3 + 0])) +
                       a[4 * 2 + 2] * -(a[4 * 0 + 0] * a[4 * 3 + 1] -
                                        a[4 * 0 + 1] * a[4 * 3 + 0])));
  if (fabs(det) < (1e-60))
    return -1;
  b[4 * 0 + 0] =
      ((a[4 * 2 + 1] *
            -(a[4 * 1 + 2] * a[4 * 3 + 3] - a[4 * 1 + 3] * a[4 * 3 + 2]) +
        a[4 * 2 + 2] *
            (a[4 * 1 + 1] * a[4 * 3 + 3] - a[4 * 1 + 3] * a[4 * 3 + 1])) +
       a[4 * 2 + 3] *
           -(a[4 * 1 + 1] * a[4 * 3 + 2] - a[4 * 1 + 2] * a[4 * 3 + 1])) /
      det;
  b[4 * 1 + 0] =
      -((a[4 * 2 + 0] *
             -(a[4 * 1 + 2] * a[4 * 3 + 3] - a[4 * 1 + 3] * a[4 * 3 + 2]) +
         a[4 * 2 + 2] *
             (a[4 * 1 + 0] * a[4 * 3 + 3] - a[4 * 1 + 3] * a[4 * 3 + 0])) +
        a[4 * 2 + 3] *
            -(a[4 * 1 + 0] * a[4 * 3 + 2] - a[4 * 1 + 2] * a[4 * 3 + 0])) /
      det;
  b[4 * 2 + 0] =
      ((a[4 * 2 + 0] *
            -(a[4 * 1 + 1] * a[4 * 3 + 3] - a[4 * 1 + 3] * a[4 * 3 + 1]) +
        a[4 * 2 + 1] *
            (a[4 * 1 + 0] * a[4 * 3 + 3] - a[4 * 1 + 3] * a[4 * 3 + 0])) +
       a[4 * 2 + 3] *
           -(a[4 * 1 + 0] * a[4 * 3 + 1] - a[4 * 1 + 1] * a[4 * 3 + 0])) /
      det;
  b[4 * 3 + 0] =
      -((a[4 * 2 + 0] *
             -(a[4 * 1 + 1] * a[4 * 3 + 2] - a[4 * 1 + 2] * a[4 * 3 + 1]) +
         a[4 * 2 + 1] *
             (a[4 * 1 + 0] * a[4 * 3 + 2] - a[4 * 1 + 2] * a[4 * 3 + 0])) +
        a[4 * 2 + 2] *
            -(a[4 * 1 + 0] * a[4 * 3 + 1] - a[4 * 1 + 1] * a[4 * 3 + 0])) /
      det;
  b[4 * 0 + 1] =
      -((a[4 * 2 + 1] *
             -(a[4 * 0 + 2] * a[4 * 3 + 3] - a[4 * 0 + 3] * a[4 * 3 + 2]) +
         a[4 * 2 + 2] *
             (a[4 * 0 + 1] * a[4 * 3 + 3] - a[4 * 0 + 3] * a[4 * 3 + 1])) +
        a[4 * 2 + 3] *
            -(a[4 * 0 + 1] * a[4 * 3 + 2] - a[4 * 0 + 2] * a[4 * 3 + 1])) /
      det;
  b[4 * 1 + 1] =
      ((a[4 * 2 + 0] *
            -(a[4 * 0 + 2] * a[4 * 3 + 3] - a[4 * 0 + 3] * a[4 * 3 + 2]) +
        a[4 * 2 + 2] *
            (a[4 * 0 + 0] * a[4 * 3 + 3] - a[4 * 0 + 3] * a[4 * 3 + 0])) +
       a[4 * 2 + 3] *
           -(a[4 * 0 + 0] * a[4 * 3 + 2] - a[4 * 0 + 2] * a[4 * 3 + 0])) /
      det;
  b[4 * 2 + 1] =
      -((a[4 * 2 + 0] *
             -(a[4 * 0 + 1] * a[4 * 3 + 3] - a[4 * 0 + 3] * a[4 * 3 + 1]) +
         a[4 * 2 + 1] *
             (a[4 * 0 + 0] * a[4 * 3 + 3] - a[4 * 0 + 3] * a[4 * 3 + 0])) +
        a[4 * 2 + 3] *
            -(a[4 * 0 + 0] * a[4 * 3 + 1] - a[4 * 0 + 1] * a[4 * 3 + 0])) /
      det;
  b[4 * 3 + 1] =
      ((a[4 * 2 + 0] *
            -(a[4 * 0 + 1] * a[4 * 3 + 2] - a[4 * 0 + 2] * a[4 * 3 + 1]) +
        a[4 * 2 + 1] *
            (a[4 * 0 + 0] * a[4 * 3 + 2] - a[4 * 0 + 2] * a[4 * 3 + 0])) +
       a[4 * 2 + 2] *
           -(a[4 * 0 + 0] * a[4 * 3 + 1] - a[4 * 0 + 1] * a[4 * 3 + 0])) /
      det;
  b[4 * 0 + 2] =
      ((a[4 * 1 + 1] *
            -(a[4 * 0 + 2] * a[4 * 3 + 3] - a[4 * 0 + 3] * a[4 * 3 + 2]) +
        a[4 * 1 + 2] *
            (a[4 * 0 + 1] * a[4 * 3 + 3] - a[4 * 0 + 3] * a[4 * 3 + 1])) +
       a[4 * 1 + 3] *
           -(a[4 * 0 + 1] * a[4 * 3 + 2] - a[4 * 0 + 2] * a[4 * 3 + 1])) /
      det;
  b[4 * 1 + 2] =
      -((a[4 * 1 + 0] *
             -(a[4 * 0 + 2] * a[4 * 3 + 3] - a[4 * 0 + 3] * a[4 * 3 + 2]) +
         a[4 * 1 + 2] *
             (a[4 * 0 + 0] * a[4 * 3 + 3] - a[4 * 0 + 3] * a[4 * 3 + 0])) +
        a[4 * 1 + 3] *
            -(a[4 * 0 + 0] * a[4 * 3 + 2] - a[4 * 0 + 2] * a[4 * 3 + 0])) /
      det;
  b[4 * 2 + 2] =
      ((a[4 * 1 + 0] *
            -(a[4 * 0 + 1] * a[4 * 3 + 3] - a[4 * 0 + 3] * a[4 * 3 + 1]) +
        a[4 * 1 + 1] *
            (a[4 * 0 + 0] * a[4 * 3 + 3] - a[4 * 0 + 3] * a[4 * 3 + 0])) +
       a[4 * 1 + 3] *
           -(a[4 * 0 + 0] * a[4 * 3 + 1] - a[4 * 0 + 1] * a[4 * 3 + 0])) /
      det;
  b[4 * 3 + 2] =
      -((a[4 * 1 + 0] *
             -(a[4 * 0 + 1] * a[4 * 3 + 2] - a[4 * 0 + 2] * a[4 * 3 + 1]) +
         a[4 * 1 + 1] *
             (a[4 * 0 + 0] * a[4 * 3 + 2] - a[4 * 0 + 2] * a[4 * 3 + 0])) +
        a[4 * 1 + 2] *
            -(a[4 * 0 + 0] * a[4 * 3 + 1] - a[4 * 0 + 1] * a[4 * 3 + 0])) /
      det;
  b[4 * 0 + 3] =
      -((a[4 * 1 + 1] *
             -(a[4 * 0 + 2] * a[4 * 2 + 3] - a[4 * 0 + 3] * a[4 * 2 + 2]) +
         a[4 * 1 + 2] *
             (a[4 * 0 + 1] * a[4 * 2 + 3] - a[4 * 0 + 3] * a[4 * 2 + 1])) +
        a[4 * 1 + 3] *
            -(a[4 * 0 + 1] * a[4 * 2 + 2] - a[4 * 0 + 2] * a[4 * 2 + 1])) /
      det;
  b[4 * 1 + 3] =
      ((a[4 * 1 + 0] *
            -(a[4 * 0 + 2] * a[4 * 2 + 3] - a[4 * 0 + 3] * a[4 * 2 + 2]) +
        a[4 * 1 + 2] *
            (a[4 * 0 + 0] * a[4 * 2 + 3] - a[4 * 0 + 3] * a[4 * 2 + 0])) +
       a[4 * 1 + 3] *
           -(a[4 * 0 + 0] * a[4 * 2 + 2] - a[4 * 0 + 2] * a[4 * 2 + 0])) /
      det;
  b[4 * 2 + 3] =
      -((a[4 * 1 + 0] *
             -(a[4 * 0 + 1] * a[4 * 2 + 3] - a[4 * 0 + 3] * a[4 * 2 + 1]) +
         a[4 * 1 + 1] *
             (a[4 * 0 + 0] * a[4 * 2 + 3] - a[4 * 0 + 3] * a[4 * 2 + 0])) +
        a[4 * 1 + 3] *
            -(a[4 * 0 + 0] * a[4 * 2 + 1] - a[4 * 0 + 1] * a[4 * 2 + 0])) /
      det;
  b[4 * 3 + 3] =
      ((a[4 * 1 + 0] *
            -(a[4 * 0 + 1] * a[4 * 2 + 2] - a[4 * 0 + 2] * a[4 * 2 + 1]) +
        a[4 * 1 + 1] *
            (a[4 * 0 + 0] * a[4 * 2 + 2] - a[4 * 0 + 2] * a[4 * 2 + 0])) +
       a[4 * 1 + 2] *
           -(a[4 * 0 + 0] * a[4 * 2 + 1] - a[4 * 0 + 1] * a[4 * 2 + 0])) /
      det;
  return 0;
}


x86 assembly (clang, -O0):
<inv4>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x70(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm1
addsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm6
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm5
mov    -0x10(%rbp),%rax
mulsd  0x68(%rax),%xmm5
movq   %xmm5,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm5
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm1
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x68(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm6
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm5
mov    -0x10(%rbp),%rax
mulsd  0x70(%rax),%xmm5
movq   %xmm5,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm5
mulsd  %xmm6,%xmm3
addsd  %xmm5,%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm5
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm6
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm8
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm7
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm7
movq   %xmm7,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm7
mulsd  %xmm8,%xmm6
addsd  %xmm7,%xmm6
mulsd  %xmm6,%xmm3
mulsd  %xmm5,%xmm4
addsd  %xmm3,%xmm4
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm7
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm6
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm6
movq   %xmm6,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm6
mulsd  %xmm7,%xmm5
addsd  %xmm6,%xmm5
movq   %xmm5,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm5
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x68(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm2
addsd  %xmm4,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm7
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm6
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm6
movq   %xmm6,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm6
mulsd  %xmm7,%xmm5
addsd  %xmm6,%xmm5
mulsd  %xmm5,%xmm2
mulsd  %xmm4,%xmm3
addsd  %xmm2,%xmm3
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm6
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm5
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm5
movq   %xmm5,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm5
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x68(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm2
addsd  %xmm4,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm7
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm6
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm6
movq   %xmm6,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm6
mulsd  %xmm7,%xmm5
addsd  %xmm6,%xmm5
mulsd  %xmm5,%xmm2
mulsd  %xmm4,%xmm3
addsd  %xmm2,%xmm3
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm6
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm5
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm5
movq   %xmm5,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm5
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  -0x20(%rbp),%xmm1
movaps 0x19f1(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  0x19d5(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    1641 <inv4+0x541>
movl   $0xffffffff,-0x4(%rbp)
jmp    2a2d <inv4+0x192d>
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm2
mov    -0x10(%rbp),%rax
mulsd  0x70(%rax),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x68(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x68(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm2
mov    -0x10(%rbp),%rax
mulsd  0x70(%rax),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
divsd  -0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x20(%rax)
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm2
mov    -0x10(%rbp),%rax
mulsd  0x68(%rax),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x40(%rax)
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm2
mov    -0x10(%rbp),%rax
mulsd  0x68(%rax),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
divsd  -0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x60(%rax)
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm2
mov    -0x10(%rbp),%rax
mulsd  0x70(%rax),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x68(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x68(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
divsd  -0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm2
mov    -0x10(%rbp),%rax
mulsd  0x70(%rax),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x28(%rax)
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm2
mov    -0x10(%rbp),%rax
mulsd  0x68(%rax),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
divsd  -0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x48(%rax)
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm2
mov    -0x10(%rbp),%rax
mulsd  0x68(%rax),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x68(%rax)
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm2
mov    -0x10(%rbp),%rax
mulsd  0x70(%rax),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x68(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x68(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm2
mov    -0x10(%rbp),%rax
mulsd  0x70(%rax),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
divsd  -0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x30(%rax)
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm2
mov    -0x10(%rbp),%rax
mulsd  0x68(%rax),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x50(%rax)
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm2
mov    -0x10(%rbp),%rax
mulsd  0x68(%rax),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x60(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
divsd  -0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x70(%rax)
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm2
mov    -0x10(%rbp),%rax
mulsd  0x50(%rax),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x48(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x48(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
divsd  -0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm2
mov    -0x10(%rbp),%rax
mulsd  0x50(%rax),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x40(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x40(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x38(%rax)
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm2
mov    -0x10(%rbp),%rax
mulsd  0x48(%rax),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x40(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x40(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
divsd  -0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x58(%rax)
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm2
mov    -0x10(%rbp),%rax
mulsd  0x48(%rax),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm5
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm4
mov    -0x10(%rbp),%rax
mulsd  0x40(%rax),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm4
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm3
mov    -0x10(%rbp),%rax
mulsd  0x40(%rax),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x78(%rax)
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<inv4>:
movsd  0x48(%rdi),%xmm10
movsd  0x10(%rdi),%xmm15
movsd  0x78(%rdi),%xmm12
movsd  0x18(%rdi),%xmm2
movsd  0x70(%rdi),%xmm9
movapd %xmm9,%xmm1
mulsd  %xmm2,%xmm1
movapd %xmm15,%xmm7
mulsd  %xmm12,%xmm7
subsd  %xmm1,%xmm7
movsd  0x50(%rdi),%xmm14
movsd  (%rdi),%xmm6
movsd  0x8(%rdi),%xmm11
movsd  0x68(%rdi),%xmm0
movapd %xmm0,%xmm5
movapd %xmm0,%xmm13
movsd  %xmm0,-0x8(%rsp)
mulsd  %xmm2,%xmm5
mulsd  %xmm15,%xmm13
movapd %xmm11,%xmm3
movsd  0x60(%rdi),%xmm4
mulsd  %xmm4,%xmm2
mulsd  %xmm4,%xmm15
mulsd  %xmm11,%xmm4
mulsd  %xmm12,%xmm11
subsd  %xmm5,%xmm11
movapd %xmm14,%xmm1
mulsd  %xmm11,%xmm1
movapd %xmm10,%xmm5
mulsd  %xmm7,%xmm5
subsd  %xmm5,%xmm1
movsd  0x58(%rdi),%xmm8
mulsd  %xmm9,%xmm3
subsd  %xmm13,%xmm3
movapd %xmm8,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm5,%xmm1
movsd  0x40(%rdi),%xmm5
movapd %xmm6,%xmm0
mulsd  %xmm12,%xmm0
subsd  %xmm2,%xmm0
movapd %xmm14,%xmm2
mulsd  %xmm0,%xmm2
mulsd  %xmm5,%xmm7
subsd  %xmm7,%xmm2
movapd %xmm6,%xmm13
movsd  %xmm9,-0x10(%rsp)
mulsd  %xmm9,%xmm13
movsd  -0x8(%rsp),%xmm9
subsd  %xmm15,%xmm13
movapd %xmm8,%xmm7
mulsd  %xmm13,%xmm7
subsd  %xmm7,%xmm2
movsd  0x28(%rdi),%xmm7
mulsd  %xmm7,%xmm2
mulsd  0x20(%rdi),%xmm1
subsd  %xmm1,%xmm2
mulsd  %xmm10,%xmm0
mulsd  %xmm5,%xmm11
subsd  %xmm11,%xmm0
mulsd  %xmm9,%xmm6
subsd  %xmm4,%xmm6
movapd %xmm8,%xmm1
mulsd  %xmm6,%xmm1
subsd  %xmm1,%xmm0
movsd  0x30(%rdi),%xmm4
mulsd  %xmm4,%xmm0
subsd  %xmm0,%xmm2
mulsd  %xmm5,%xmm3
mulsd  %xmm10,%xmm13
subsd  %xmm3,%xmm13
movsd  0x38(%rdi),%xmm3
mulsd  %xmm14,%xmm6
subsd  %xmm6,%xmm13
mulsd  %xmm3,%xmm13
addsd  %xmm2,%xmm13
movapd 0xd88(%rip),%xmm0
andpd  %xmm13,%xmm0
movsd  0xd9b(%rip),%xmm1
ucomisd %xmm0,%xmm1
mov    $0xffffffff,%eax
ja     1925 <inv4+0x825>
movsd  -0x10(%rsp),%xmm2
movapd %xmm2,%xmm0
mulsd  %xmm3,%xmm0
movapd %xmm4,%xmm1
mulsd  %xmm12,%xmm1
subsd  %xmm0,%xmm1
mulsd  %xmm9,%xmm3
mulsd  %xmm7,%xmm12
subsd  %xmm3,%xmm12
mulsd  %xmm12,%xmm14
mulsd  %xmm1,%xmm10
subsd  %xmm10,%xmm14
mulsd  %xmm4,%xmm9
mulsd  %xmm2,%xmm7
subsd  %xmm9,%xmm7
mulsd  %xmm7,%xmm8
subsd  %xmm8,%xmm14
divsd  %xmm13,%xmm14
movsd  %xmm14,(%rsi)
movsd  0x20(%rdi),%xmm1
movsd  0x30(%rdi),%xmm0
movsd  0x78(%rdi),%xmm2
movsd  0x38(%rdi),%xmm3
movsd  0x70(%rdi),%xmm4
movapd %xmm0,%xmm5
mulsd  %xmm2,%xmm5
mulsd  %xmm1,%xmm2
mulsd  %xmm4,%xmm1
mulsd  %xmm3,%xmm4
subsd  %xmm4,%xmm5
movsd  0x60(%rdi),%xmm4
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm2
mulsd  0x50(%rdi),%xmm2
mulsd  0x40(%rdi),%xmm5
mulsd  %xmm0,%xmm4
subsd  %xmm4,%xmm1
mulsd  0x58(%rdi),%xmm1
subsd  %xmm5,%xmm2
subsd  %xmm1,%xmm2
movapd 0xcbc(%rip),%xmm1
xorpd  %xmm1,%xmm2
divsd  %xmm13,%xmm2
movsd  %xmm2,0x20(%rsi)
movsd  0x20(%rdi),%xmm2
movsd  0x28(%rdi),%xmm0
movsd  0x78(%rdi),%xmm3
movsd  0x38(%rdi),%xmm4
movsd  0x68(%rdi),%xmm5
movapd %xmm0,%xmm6
mulsd  %xmm3,%xmm6
mulsd  %xmm2,%xmm3
mulsd  %xmm5,%xmm2
mulsd  %xmm4,%xmm5
movsd  0x60(%rdi),%xmm7
mulsd  %xmm7,%xmm4
subsd  %xmm4,%xmm3
mulsd  0x48(%rdi),%xmm3
subsd  %xmm5,%xmm6
mulsd  0x40(%rdi),%xmm6
subsd  %xmm6,%xmm3
mulsd  %xmm0,%xmm7
subsd  %xmm7,%xmm2
mulsd  0x58(%rdi),%xmm2
subsd  %xmm2,%xmm3
divsd  %xmm13,%xmm3
movsd  %xmm3,0x40(%rsi)
movsd  0x20(%rdi),%xmm3
movsd  0x28(%rdi),%xmm0
movsd  0x70(%rdi),%xmm2
movsd  0x30(%rdi),%xmm4
movsd  0x68(%rdi),%xmm5
movapd %xmm0,%xmm6
mulsd  %xmm2,%xmm6
mulsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm3
mulsd  %xmm4,%xmm5
subsd  %xmm5,%xmm6
movsd  0x60(%rdi),%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm2
mulsd  0x48(%rdi),%xmm2
mulsd  0x40(%rdi),%xmm6
mulsd  %xmm0,%xmm5
subsd  %xmm5,%xmm3
mulsd  0x50(%rdi),%xmm3
subsd  %xmm6,%xmm2
subsd  %xmm3,%xmm2
xorpd  %xmm1,%xmm2
divsd  %xmm13,%xmm2
movsd  %xmm2,0x60(%rsi)
movsd  0x8(%rdi),%xmm3
movsd  0x10(%rdi),%xmm0
movsd  0x78(%rdi),%xmm2
movsd  0x18(%rdi),%xmm4
movsd  0x70(%rdi),%xmm5
movapd %xmm0,%xmm6
mulsd  %xmm2,%xmm6
mulsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm3
mulsd  %xmm4,%xmm5
subsd  %xmm5,%xmm6
movsd  0x68(%rdi),%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm2
mulsd  0x50(%rdi),%xmm2
mulsd  0x48(%rdi),%xmm6
subsd  %xmm6,%xmm2
mulsd  %xmm0,%xmm5
subsd  %xmm5,%xmm3
mulsd  0x58(%rdi),%xmm3
subsd  %xmm3,%xmm2
xorpd  %xmm1,%xmm2
divsd  %xmm13,%xmm2
movsd  %xmm2,0x8(%rsi)
movsd  (%rdi),%xmm2
movsd  0x10(%rdi),%xmm0
movsd  0x78(%rdi),%xmm3
movsd  0x18(%rdi),%xmm4
movsd  0x70(%rdi),%xmm5
movapd %xmm0,%xmm6
mulsd  %xmm3,%xmm6
mulsd  %xmm2,%xmm3
mulsd  %xmm5,%xmm2
mulsd  %xmm4,%xmm5
subsd  %xmm5,%xmm6
movsd  0x60(%rdi),%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm3
mulsd  0x50(%rdi),%xmm3
mulsd  0x40(%rdi),%xmm6
mulsd  %xmm0,%xmm5
subsd  %xmm5,%xmm2
mulsd  0x58(%rdi),%xmm2
subsd  %xmm6,%xmm3
subsd  %xmm2,%xmm3
divsd  %xmm13,%xmm3
movsd  %xmm3,0x28(%rsi)
movsd  (%rdi),%xmm3
movsd  0x8(%rdi),%xmm0
movsd  0x78(%rdi),%xmm2
movsd  0x18(%rdi),%xmm4
movsd  0x68(%rdi),%xmm5
movapd %xmm5,%xmm6
mulsd  %xmm4,%xmm6
movapd %xmm0,%xmm7
mulsd  %xmm2,%xmm7
subsd  %xmm6,%xmm7
movsd  0x60(%rdi),%xmm6
mulsd  %xmm6,%xmm4
mulsd  %xmm3,%xmm2
subsd  %xmm4,%xmm2
mulsd  0x48(%rdi),%xmm2
mulsd  0x40(%rdi),%xmm7
mulsd  %xmm5,%xmm3
subsd  %xmm7,%xmm2
mulsd  %xmm0,%xmm6
subsd  %xmm6,%xmm3
mulsd  0x58(%rdi),%xmm3
subsd  %xmm3,%xmm2
xorpd  %xmm1,%xmm2
divsd  %xmm13,%xmm2
movsd  %xmm2,0x48(%rsi)
movsd  (%rdi),%xmm2
movsd  0x8(%rdi),%xmm0
movsd  0x70(%rdi),%xmm3
movsd  0x10(%rdi),%xmm4
movsd  0x68(%rdi),%xmm5
movapd %xmm0,%xmm6
mulsd  %xmm3,%xmm6
mulsd  %xmm2,%xmm3
mulsd  %xmm5,%xmm2
mulsd  %xmm4,%xmm5
movsd  0x60(%rdi),%xmm7
mulsd  %xmm7,%xmm4
subsd  %xmm4,%xmm3
mulsd  0x48(%rdi),%xmm3
subsd  %xmm5,%xmm6
mulsd  0x40(%rdi),%xmm6
subsd  %xmm6,%xmm3
mulsd  %xmm0,%xmm7
subsd  %xmm7,%xmm2
mulsd  0x50(%rdi),%xmm2
subsd  %xmm2,%xmm3
divsd  %xmm13,%xmm3
movsd  %xmm3,0x68(%rsi)
movsd  0x8(%rdi),%xmm2
movsd  0x10(%rdi),%xmm0
movsd  0x78(%rdi),%xmm3
movsd  0x18(%rdi),%xmm4
movsd  0x70(%rdi),%xmm5
movapd %xmm0,%xmm6
mulsd  %xmm3,%xmm6
mulsd  %xmm2,%xmm3
mulsd  %xmm5,%xmm2
mulsd  %xmm4,%xmm5
subsd  %xmm5,%xmm6
movsd  0x68(%rdi),%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm3
mulsd  0x30(%rdi),%xmm3
mulsd  0x28(%rdi),%xmm6
mulsd  %xmm0,%xmm5
subsd  %xmm5,%xmm2
mulsd  0x38(%rdi),%xmm2
subsd  %xmm6,%xmm3
subsd  %xmm2,%xmm3
divsd  %xmm13,%xmm3
movsd  %xmm3,0x10(%rsi)
movsd  (%rdi),%xmm3
movsd  0x10(%rdi),%xmm0
movsd  0x78(%rdi),%xmm2
movsd  0x18(%rdi),%xmm4
movsd  0x70(%rdi),%xmm5
movapd %xmm5,%xmm6
mulsd  %xmm4,%xmm6
movapd %xmm0,%xmm7
mulsd  %xmm2,%xmm7
subsd  %xmm6,%xmm7
movsd  0x60(%rdi),%xmm6
mulsd  %xmm6,%xmm4
mulsd  %xmm3,%xmm2
subsd  %xmm4,%xmm2
mulsd  0x30(%rdi),%xmm2
mulsd  0x20(%rdi),%xmm7
mulsd  %xmm5,%xmm3
subsd  %xmm7,%xmm2
mulsd  %xmm0,%xmm6
subsd  %xmm6,%xmm3
mulsd  0x38(%rdi),%xmm3
subsd  %xmm3,%xmm2
xorpd  %xmm1,%xmm2
divsd  %xmm13,%xmm2
movsd  %xmm2,0x30(%rsi)
movsd  (%rdi),%xmm2
movsd  0x8(%rdi),%xmm0
movsd  0x78(%rdi),%xmm3
movsd  0x18(%rdi),%xmm4
movsd  0x68(%rdi),%xmm5
movapd %xmm0,%xmm6
mulsd  %xmm3,%xmm6
mulsd  %xmm2,%xmm3
mulsd  %xmm5,%xmm2
mulsd  %xmm4,%xmm5
movsd  0x60(%rdi),%xmm7
mulsd  %xmm7,%xmm4
subsd  %xmm4,%xmm3
mulsd  0x28(%rdi),%xmm3
subsd  %xmm5,%xmm6
mulsd  0x20(%rdi),%xmm6
subsd  %xmm6,%xmm3
mulsd  %xmm0,%xmm7
subsd  %xmm7,%xmm2
mulsd  0x38(%rdi),%xmm2
subsd  %xmm2,%xmm3
divsd  %xmm13,%xmm3
movsd  %xmm3,0x50(%rsi)
movsd  (%rdi),%xmm3
movsd  0x8(%rdi),%xmm0
movsd  0x70(%rdi),%xmm2
movsd  0x10(%rdi),%xmm4
movsd  0x68(%rdi),%xmm5
movapd %xmm0,%xmm6
mulsd  %xmm2,%xmm6
mulsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm3
mulsd  %xmm4,%xmm5
subsd  %xmm5,%xmm6
movsd  0x60(%rdi),%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm2
mulsd  0x28(%rdi),%xmm2
mulsd  0x20(%rdi),%xmm6
mulsd  %xmm0,%xmm5
subsd  %xmm5,%xmm3
mulsd  0x30(%rdi),%xmm3
subsd  %xmm6,%xmm2
subsd  %xmm3,%xmm2
xorpd  %xmm1,%xmm2
divsd  %xmm13,%xmm2
movsd  %xmm2,0x70(%rsi)
movsd  0x8(%rdi),%xmm3
movsd  0x10(%rdi),%xmm0
movsd  0x58(%rdi),%xmm2
movsd  0x18(%rdi),%xmm4
movsd  0x50(%rdi),%xmm5
movapd %xmm0,%xmm6
mulsd  %xmm2,%xmm6
mulsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm3
mulsd  %xmm4,%xmm5
subsd  %xmm5,%xmm6
movsd  0x48(%rdi),%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm2
mulsd  0x30(%rdi),%xmm2
mulsd  0x28(%rdi),%xmm6
subsd  %xmm6,%xmm2
mulsd  %xmm0,%xmm5
subsd  %xmm5,%xmm3
mulsd  0x38(%rdi),%xmm3
subsd  %xmm3,%xmm2
xorpd  %xmm1,%xmm2
divsd  %xmm13,%xmm2
movsd  %xmm2,0x18(%rsi)
movsd  (%rdi),%xmm2
movsd  0x10(%rdi),%xmm0
movsd  0x58(%rdi),%xmm3
movsd  0x18(%rdi),%xmm4
movsd  0x50(%rdi),%xmm5
movapd %xmm0,%xmm6
mulsd  %xmm3,%xmm6
mulsd  %xmm2,%xmm3
mulsd  %xmm5,%xmm2
mulsd  %xmm4,%xmm5
subsd  %xmm5,%xmm6
movsd  0x40(%rdi),%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm3
mulsd  0x30(%rdi),%xmm3
mulsd  0x20(%rdi),%xmm6
mulsd  %xmm0,%xmm5
subsd  %xmm5,%xmm2
mulsd  0x38(%rdi),%xmm2
subsd  %xmm6,%xmm3
subsd  %xmm2,%xmm3
divsd  %xmm13,%xmm3
movsd  %xmm3,0x38(%rsi)
movsd  (%rdi),%xmm3
movsd  0x8(%rdi),%xmm0
movsd  0x58(%rdi),%xmm2
movsd  0x18(%rdi),%xmm4
movsd  0x48(%rdi),%xmm5
movapd %xmm5,%xmm6
mulsd  %xmm4,%xmm6
movapd %xmm0,%xmm7
mulsd  %xmm2,%xmm7
subsd  %xmm6,%xmm7
movsd  0x40(%rdi),%xmm6
mulsd  %xmm6,%xmm4
mulsd  %xmm3,%xmm2
subsd  %xmm4,%xmm2
mulsd  0x28(%rdi),%xmm2
mulsd  0x20(%rdi),%xmm7
mulsd  %xmm5,%xmm3
subsd  %xmm7,%xmm2
mulsd  %xmm0,%xmm6
subsd  %xmm6,%xmm3
mulsd  0x38(%rdi),%xmm3
subsd  %xmm3,%xmm2
xorpd  %xmm1,%xmm2
divsd  %xmm13,%xmm2
movsd  %xmm2,0x58(%rsi)
movsd  (%rdi),%xmm1
movsd  0x8(%rdi),%xmm0
movsd  0x50(%rdi),%xmm2
movsd  0x10(%rdi),%xmm3
movsd  0x48(%rdi),%xmm4
movapd %xmm0,%xmm5
mulsd  %xmm2,%xmm5
mulsd  %xmm1,%xmm2
mulsd  %xmm4,%xmm1
mulsd  %xmm3,%xmm4
movsd  0x40(%rdi),%xmm6
mulsd  %xmm6,%xmm3
subsd  %xmm3,%xmm2
mulsd  0x28(%rdi),%xmm2
subsd  %xmm4,%xmm5
mulsd  0x20(%rdi),%xmm5
subsd  %xmm5,%xmm2
mulsd  %xmm0,%xmm6
subsd  %xmm6,%xmm1
mulsd  0x30(%rdi),%xmm1
subsd  %xmm1,%xmm2
divsd  %xmm13,%xmm2
movsd  %xmm2,0x78(%rsi)
xor    %eax,%eax
ret

LLVM IR (-O0):
define i32 @inv4(double* %0, double* %1) {
%3 = alloca i32
%4 = alloca double*
%5 = alloca double*
%6 = alloca double
store double* %0, double** %4
store double* %1, double** %5
%7 = load double*, double** %4
%8 = getelementptr inbounds double, double* %7, i64 4
%9 = load double, double* %8
%10 = load double*, double** %4
%11 = getelementptr inbounds double, double* %10, i64 9
%12 = load double, double* %11
%13 = load double*, double** %4
%14 = getelementptr inbounds double, double* %13, i64 2
%15 = load double, double* %14
%16 = load double*, double** %4
%17 = getelementptr inbounds double, double* %16, i64 15
%18 = load double, double* %17
%19 = load double*, double** %4
%20 = getelementptr inbounds double, double* %19, i64 3
%21 = load double, double* %20
%22 = load double*, double** %4
%23 = getelementptr inbounds double, double* %22, i64 14
%24 = load double, double* %23
%25 = fmul double %21, %24
%26 = fneg double %25
%27 = call double @llvm.fmuladd.f64(double %15, double %18, double %26)
%28 = fneg double %27
%29 = load double*, double** %4
%30 = getelementptr inbounds double, double* %29, i64 10
%31 = load double, double* %30
%32 = load double*, double** %4
%33 = getelementptr inbounds double, double* %32, i64 1
%34 = load double, double* %33
%35 = load double*, double** %4
%36 = getelementptr inbounds double, double* %35, i64 15
%37 = load double, double* %36
%38 = load double*, double** %4
%39 = getelementptr inbounds double, double* %38, i64 3
%40 = load double, double* %39
%41 = load double*, double** %4
%42 = getelementptr inbounds double, double* %41, i64 13
%43 = load double, double* %42
%44 = fmul double %40, %43
%45 = fneg double %44
%46 = call double @llvm.fmuladd.f64(double %34, double %37, double %45)
%47 = fmul double %31, %46
%48 = call double @llvm.fmuladd.f64(double %12, double %28, double %47)
%49 = load double*, double** %4
%50 = getelementptr inbounds double, double* %49, i64 11
%51 = load double, double* %50
%52 = load double*, double** %4
%53 = getelementptr inbounds double, double* %52, i64 1
%54 = load double, double* %53
%55 = load double*, double** %4
%56 = getelementptr inbounds double, double* %55, i64 14
%57 = load double, double* %56
%58 = load double*, double** %4
%59 = getelementptr inbounds double, double* %58, i64 2
%60 = load double, double* %59
%61 = load double*, double** %4
%62 = getelementptr inbounds double, double* %61, i64 13
%63 = load double, double* %62
%64 = fmul double %60, %63
%65 = fneg double %64
%66 = call double @llvm.fmuladd.f64(double %54, double %57, double %65)
%67 = fneg double %66
%68 = call double @llvm.fmuladd.f64(double %51, double %67, double %48)
%69 = fneg double %68
%70 = load double*, double** %4
%71 = getelementptr inbounds double, double* %70, i64 5
%72 = load double, double* %71
%73 = load double*, double** %4
%74 = getelementptr inbounds double, double* %73, i64 8
%75 = load double, double* %74
%76 = load double*, double** %4
%77 = getelementptr inbounds double, double* %76, i64 2
%78 = load double, double* %77
%79 = load double*, double** %4
%80 = getelementptr inbounds double, double* %79, i64 15
%81 = load double, double* %80
%82 = load double*, double** %4
%83 = getelementptr inbounds double, double* %82, i64 3
%84 = load double, double* %83
%85 = load double*, double** %4
%86 = getelementptr inbounds double, double* %85, i64 14
%87 = load double, double* %86
%88 = fmul double %84, %87
%89 = fneg double %88
%90 = call double @llvm.fmuladd.f64(double %78, double %81, double %89)
%91 = fneg double %90
%92 = load double*, double** %4
%93 = getelementptr inbounds double, double* %92, i64 10
%94 = load double, double* %93
%95 = load double*, double** %4
%96 = getelementptr inbounds double, double* %95, i64 0
%97 = load double, double* %96
%98 = load double*, double** %4
%99 = getelementptr inbounds double, double* %98, i64 15
%100 = load double, double* %99
%101 = load double*, double** %4
%102 = getelementptr inbounds double, double* %101, i64 3
%103 = load double, double* %102
%104 = load double*, double** %4
%105 = getelementptr inbounds double, double* %104, i64 12
%106 = load double, double* %105
%107 = fmul double %103, %106
%108 = fneg double %107
%109 = call double @llvm.fmuladd.f64(double %97, double %100, double %108)
%110 = fmul double %94, %109
%111 = call double @llvm.fmuladd.f64(double %75, double %91, double %110)
%112 = load double*, double** %4
%113 = getelementptr inbounds double, double* %112, i64 11
%114 = load double, double* %113
%115 = load double*, double** %4
%116 = getelementptr inbounds double, double* %115, i64 0
%117 = load double, double* %116
%118 = load double*, double** %4
%119 = getelementptr inbounds double, double* %118, i64 14
%120 = load double, double* %119
%121 = load double*, double** %4
%122 = getelementptr inbounds double, double* %121, i64 2
%123 = load double, double* %122
%124 = load double*, double** %4
%125 = getelementptr inbounds double, double* %124, i64 12
%126 = load double, double* %125
%127 = fmul double %123, %126
%128 = fneg double %127
%129 = call double @llvm.fmuladd.f64(double %117, double %120, double %128)
%130 = fneg double %129
%131 = call double @llvm.fmuladd.f64(double %114, double %130, double %111)
%132 = fmul double %72, %131
%133 = call double @llvm.fmuladd.f64(double %9, double %69, double %132)
%134 = load double*, double** %4
%135 = getelementptr inbounds double, double* %134, i64 6
%136 = load double, double* %135
%137 = load double*, double** %4
%138 = getelementptr inbounds double, double* %137, i64 8
%139 = load double, double* %138
%140 = load double*, double** %4
%141 = getelementptr inbounds double, double* %140, i64 1
%142 = load double, double* %141
%143 = load double*, double** %4
%144 = getelementptr inbounds double, double* %143, i64 15
%145 = load double, double* %144
%146 = load double*, double** %4
%147 = getelementptr inbounds double, double* %146, i64 3
%148 = load double, double* %147
%149 = load double*, double** %4
%150 = getelementptr inbounds double, double* %149, i64 13
%151 = load double, double* %150
%152 = fmul double %148, %151
%153 = fneg double %152
%154 = call double @llvm.fmuladd.f64(double %142, double %145, double %153)
%155 = fneg double %154
%156 = load double*, double** %4
%157 = getelementptr inbounds double, double* %156, i64 9
%158 = load double, double* %157
%159 = load double*, double** %4
%160 = getelementptr inbounds double, double* %159, i64 0
%161 = load double, double* %160
%162 = load double*, double** %4
%163 = getelementptr inbounds double, double* %162, i64 15
%164 = load double, double* %163
%165 = load double*, double** %4
%166 = getelementptr inbounds double, double* %165, i64 3
%167 = load double, double* %166
%168 = load double*, double** %4
%169 = getelementptr inbounds double, double* %168, i64 12
%170 = load double, double* %169
%171 = fmul double %167, %170
%172 = fneg double %171
%173 = call double @llvm.fmuladd.f64(double %161, double %164, double %172)
%174 = fmul double %158, %173
%175 = call double @llvm.fmuladd.f64(double %139, double %155, double %174)
%176 = load double*, double** %4
%177 = getelementptr inbounds double, double* %176, i64 11
%178 = load double, double* %177
%179 = load double*, double** %4
%180 = getelementptr inbounds double, double* %179, i64 0
%181 = load double, double* %180
%182 = load double*, double** %4
%183 = getelementptr inbounds double, double* %182, i64 13
%184 = load double, double* %183
%185 = load double*, double** %4
%186 = getelementptr inbounds double, double* %185, i64 1
%187 = load double, double* %186
%188 = load double*, double** %4
%189 = getelementptr inbounds double, double* %188, i64 12
%190 = load double, double* %189
%191 = fmul double %187, %190
%192 = fneg double %191
%193 = call double @llvm.fmuladd.f64(double %181, double %184, double %192)
%194 = fneg double %193
%195 = call double @llvm.fmuladd.f64(double %178, double %194, double %175)
%196 = fneg double %195
%197 = call double @llvm.fmuladd.f64(double %136, double %196, double %133)
%198 = load double*, double** %4
%199 = getelementptr inbounds double, double* %198, i64 7
%200 = load double, double* %199
%201 = load double*, double** %4
%202 = getelementptr inbounds double, double* %201, i64 8
%203 = load double, double* %202
%204 = load double*, double** %4
%205 = getelementptr inbounds double, double* %204, i64 1
%206 = load double, double* %205
%207 = load double*, double** %4
%208 = getelementptr inbounds double, double* %207, i64 14
%209 = load double, double* %208
%210 = load double*, double** %4
%211 = getelementptr inbounds double, double* %210, i64 2
%212 = load double, double* %211
%213 = load double*, double** %4
%214 = getelementptr inbounds double, double* %213, i64 13
%215 = load double, double* %214
%216 = fmul double %212, %215
%217 = fneg double %216
%218 = call double @llvm.fmuladd.f64(double %206, double %209, double %217)
%219 = fneg double %218
%220 = load double*, double** %4
%221 = getelementptr inbounds double, double* %220, i64 9
%222 = load double, double* %221
%223 = load double*, double** %4
%224 = getelementptr inbounds double, double* %223, i64 0
%225 = load double, double* %224
%226 = load double*, double** %4
%227 = getelementptr inbounds double, double* %226, i64 14
%228 = load double, double* %227
%229 = load double*, double** %4
%230 = getelementptr inbounds double, double* %229, i64 2
%231 = load double, double* %230
%232 = load double*, double** %4
%233 = getelementptr inbounds double, double* %232, i64 12
%234 = load double, double* %233
%235 = fmul double %231, %234
%236 = fneg double %235
%237 = call double @llvm.fmuladd.f64(double %225, double %228, double %236)
%238 = fmul double %222, %237
%239 = call double @llvm.fmuladd.f64(double %203, double %219, double %238)
%240 = load double*, double** %4
%241 = getelementptr inbounds double, double* %240, i64 10
%242 = load double, double* %241
%243 = load double*, double** %4
%244 = getelementptr inbounds double, double* %243, i64 0
%245 = load double, double* %244
%246 = load double*, double** %4
%247 = getelementptr inbounds double, double* %246, i64 13
%248 = load double, double* %247
%249 = load double*, double** %4
%250 = getelementptr inbounds double, double* %249, i64 1
%251 = load double, double* %250
%252 = load double*, double** %4
%253 = getelementptr inbounds double, double* %252, i64 12
%254 = load double, double* %253
%255 = fmul double %251, %254
%256 = fneg double %255
%257 = call double @llvm.fmuladd.f64(double %245, double %248, double %256)
%258 = fneg double %257
%259 = call double @llvm.fmuladd.f64(double %242, double %258, double %239)
%260 = call double @llvm.fmuladd.f64(double %200, double %259, double %197)
store double %260, double* %6
%261 = load double, double* %6
%262 = call double @llvm.fabs.f64(double %261)
%263 = fcmp olt double %262, 0x3379B604AAACA626
br i1 %263, label %264, label %265
264: ; preds = %2
store i32 -1, i32* %3
br label %1282
265: ; preds = %2
%266 = load double*, double** %4
%267 = getelementptr inbounds double, double* %266, i64 9
%268 = load double, double* %267
%269 = load double*, double** %4
%270 = getelementptr inbounds double, double* %269, i64 6
%271 = load double, double* %270
%272 = load double*, double** %4
%273 = getelementptr inbounds double, double* %272, i64 15
%274 = load double, double* %273
%275 = load double*, double** %4
%276 = getelementptr inbounds double, double* %275, i64 7
%277 = load double, double* %276
%278 = load double*, double** %4
%279 = getelementptr inbounds double, double* %278, i64 14
%280 = load double, double* %279
%281 = fmul double %277, %280
%282 = fneg double %281
%283 = call double @llvm.fmuladd.f64(double %271, double %274, double %282)
%284 = fneg double %283
%285 = load double*, double** %4
%286 = getelementptr inbounds double, double* %285, i64 10
%287 = load double, double* %286
%288 = load double*, double** %4
%289 = getelementptr inbounds double, double* %288, i64 5
%290 = load double, double* %289
%291 = load double*, double** %4
%292 = getelementptr inbounds double, double* %291, i64 15
%293 = load double, double* %292
%294 = load double*, double** %4
%295 = getelementptr inbounds double, double* %294, i64 7
%296 = load double, double* %295
%297 = load double*, double** %4
%298 = getelementptr inbounds double, double* %297, i64 13
%299 = load double, double* %298
%300 = fmul double %296, %299
%301 = fneg double %300
%302 = call double @llvm.fmuladd.f64(double %290, double %293, double %301)
%303 = fmul double %287, %302
%304 = call double @llvm.fmuladd.f64(double %268, double %284, double %303)
%305 = load double*, double** %4
%306 = getelementptr inbounds double, double* %305, i64 11
%307 = load double, double* %306
%308 = load double*, double** %4
%309 = getelementptr inbounds double, double* %308, i64 5
%310 = load double, double* %309
%311 = load double*, double** %4
%312 = getelementptr inbounds double, double* %311, i64 14
%313 = load double, double* %312
%314 = load double*, double** %4
%315 = getelementptr inbounds double, double* %314, i64 6
%316 = load double, double* %315
%317 = load double*, double** %4
%318 = getelementptr inbounds double, double* %317, i64 13
%319 = load double, double* %318
%320 = fmul double %316, %319
%321 = fneg double %320
%322 = call double @llvm.fmuladd.f64(double %310, double %313, double %321)
%323 = fneg double %322
%324 = call double @llvm.fmuladd.f64(double %307, double %323, double %304)
%325 = load double, double* %6
%326 = fdiv double %324, %325
%327 = load double*, double** %5
%328 = getelementptr inbounds double, double* %327, i64 0
store double %326, double* %328
%329 = load double*, double** %4
%330 = getelementptr inbounds double, double* %329, i64 8
%331 = load double, double* %330
%332 = load double*, double** %4
%333 = getelementptr inbounds double, double* %332, i64 6
%334 = load double, double* %333
%335 = load double*, double** %4
%336 = getelementptr inbounds double, double* %335, i64 15
%337 = load double, double* %336
%338 = load double*, double** %4
%339 = getelementptr inbounds double, double* %338, i64 7
%340 = load double, double* %339
%341 = load double*, double** %4
%342 = getelementptr inbounds double, double* %341, i64 14
%343 = load double, double* %342
%344 = fmul double %340, %343
%345 = fneg double %344
%346 = call double @llvm.fmuladd.f64(double %334, double %337, double %345)
%347 = fneg double %346
%348 = load double*, double** %4
%349 = getelementptr inbounds double, double* %348, i64 10
%350 = load double, double* %349
%351 = load double*, double** %4
%352 = getelementptr inbounds double, double* %351, i64 4
%353 = load double, double* %352
%354 = load double*, double** %4
%355 = getelementptr inbounds double, double* %354, i64 15
%356 = load double, double* %355
%357 = load double*, double** %4
%358 = getelementptr inbounds double, double* %357, i64 7
%359 = load double, double* %358
%360 = load double*, double** %4
%361 = getelementptr inbounds double, double* %360, i64 12
%362 = load double, double* %361
%363 = fmul double %359, %362
%364 = fneg double %363
%365 = call double @llvm.fmuladd.f64(double %353, double %356, double %364)
%366 = fmul double %350, %365
%367 = call double @llvm.fmuladd.f64(double %331, double %347, double %366)
%368 = load double*, double** %4
%369 = getelementptr inbounds double, double* %368, i64 11
%370 = load double, double* %369
%371 = load double*, double** %4
%372 = getelementptr inbounds double, double* %371, i64 4
%373 = load double, double* %372
%374 = load double*, double** %4
%375 = getelementptr inbounds double, double* %374, i64 14
%376 = load double, double* %375
%377 = load double*, double** %4
%378 = getelementptr inbounds double, double* %377, i64 6
%379 = load double, double* %378
%380 = load double*, double** %4
%381 = getelementptr inbounds double, double* %380, i64 12
%382 = load double, double* %381
%383 = fmul double %379, %382
%384 = fneg double %383
%385 = call double @llvm.fmuladd.f64(double %373, double %376, double %384)
%386 = fneg double %385
%387 = call double @llvm.fmuladd.f64(double %370, double %386, double %367)
%388 = fneg double %387
%389 = load double, double* %6
%390 = fdiv double %388, %389
%391 = load double*, double** %5
%392 = getelementptr inbounds double, double* %391, i64 4
store double %390, double* %392
%393 = load double*, double** %4
%394 = getelementptr inbounds double, double* %393, i64 8
%395 = load double, double* %394
%396 = load double*, double** %4
%397 = getelementptr inbounds double, double* %396, i64 5
%398 = load double, double* %397
%399 = load double*, double** %4
%400 = getelementptr inbounds double, double* %399, i64 15
%401 = load double, double* %400
%402 = load double*, double** %4
%403 = getelementptr inbounds double, double* %402, i64 7
%404 = load double, double* %403
%405 = load double*, double** %4
%406 = getelementptr inbounds double, double* %405, i64 13
%407 = load double, double* %406
%408 = fmul double %404, %407
%409 = fneg double %408
%410 = call double @llvm.fmuladd.f64(double %398, double %401, double %409)
%411 = fneg double %410
%412 = load double*, double** %4
%413 = getelementptr inbounds double, double* %412, i64 9
%414 = load double, double* %413
%415 = load double*, double** %4
%416 = getelementptr inbounds double, double* %415, i64 4
%417 = load double, double* %416
%418 = load double*, double** %4
%419 = getelementptr inbounds double, double* %418, i64 15
%420 = load double, double* %419
%421 = load double*, double** %4
%422 = getelementptr inbounds double, double* %421, i64 7
%423 = load double, double* %422
%424 = load double*, double** %4
%425 = getelementptr inbounds double, double* %424, i64 12
%426 = load double, double* %425
%427 = fmul double %423, %426
%428 = fneg double %427
%429 = call double @llvm.fmuladd.f64(double %417, double %420, double %428)
%430 = fmul double %414, %429
%431 = call double @llvm.fmuladd.f64(double %395, double %411, double %430)
%432 = load double*, double** %4
%433 = getelementptr inbounds double, double* %432, i64 11
%434 = load double, double* %433
%435 = load double*, double** %4
%436 = getelementptr inbounds double, double* %435, i64 4
%437 = load double, double* %436
%438 = load double*, double** %4
%439 = getelementptr inbounds double, double* %438, i64 13
%440 = load double, double* %439
%441 = load double*, double** %4
%442 = getelementptr inbounds double, double* %441, i64 5
%443 = load double, double* %442
%444 = load double*, double** %4
%445 = getelementptr inbounds double, double* %444, i64 12
%446 = load double, double* %445
%447 = fmul double %443, %446
%448 = fneg double %447
%449 = call double @llvm.fmuladd.f64(double %437, double %440, double %448)
%450 = fneg double %449
%451 = call double @llvm.fmuladd.f64(double %434, double %450, double %431)
%452 = load double, double* %6
%453 = fdiv double %451, %452
%454 = load double*, double** %5
%455 = getelementptr inbounds double, double* %454, i64 8
store double %453, double* %455
%456 = load double*, double** %4
%457 = getelementptr inbounds double, double* %456, i64 8
%458 = load double, double* %457
%459 = load double*, double** %4
%460 = getelementptr inbounds double, double* %459, i64 5
%461 = load double, double* %460
%462 = load double*, double** %4
%463 = getelementptr inbounds double, double* %462, i64 14
%464 = load double, double* %463
%465 = load double*, double** %4
%466 = getelementptr inbounds double, double* %465, i64 6
%467 = load double, double* %466
%468 = load double*, double** %4
%469 = getelementptr inbounds double, double* %468, i64 13
%470 = load double, double* %469
%471 = fmul double %467, %470
%472 = fneg double %471
%473 = call double @llvm.fmuladd.f64(double %461, double %464, double %472)
%474 = fneg double %473
%475 = load double*, double** %4
%476 = getelementptr inbounds double, double* %475, i64 9
%477 = load double, double* %476
%478 = load double*, double** %4
%479 = getelementptr inbounds double, double* %478, i64 4
%480 = load double, double* %479
%481 = load double*, double** %4
%482 = getelementptr inbounds double, double* %481, i64 14
%483 = load double, double* %482
%484 = load double*, double** %4
%485 = getelementptr inbounds double, double* %484, i64 6
%486 = load double, double* %485
%487 = load double*, double** %4
%488 = getelementptr inbounds double, double* %487, i64 12
%489 = load double, double* %488
%490 = fmul double %486, %489
%491 = fneg double %490
%492 = call double @llvm.fmuladd.f64(double %480, double %483, double %491)
%493 = fmul double %477, %492
%494 = call double @llvm.fmuladd.f64(double %458, double %474, double %493)
%495 = load double*, double** %4
%496 = getelementptr inbounds double, double* %495, i64 10
%497 = load double, double* %496
%498 = load double*, double** %4
%499 = getelementptr inbounds double, double* %498, i64 4
%500 = load double, double* %499
%501 = load double*, double** %4
%502 = getelementptr inbounds double, double* %501, i64 13
%503 = load double, double* %502
%504 = load double*, double** %4
%505 = getelementptr inbounds double, double* %504, i64 5
%506 = load double, double* %505
%507 = load double*, double** %4
%508 = getelementptr inbounds double, double* %507, i64 12
%509 = load double, double* %508
%510 = fmul double %506, %509
%511 = fneg double %510
%512 = call double @llvm.fmuladd.f64(double %500, double %503, double %511)
%513 = fneg double %512
%514 = call double @llvm.fmuladd.f64(double %497, double %513, double %494)
%515 = fneg double %514
%516 = load double, double* %6
%517 = fdiv double %515, %516
%518 = load double*, double** %5
%519 = getelementptr inbounds double, double* %518, i64 12
store double %517, double* %519
%520 = load double*, double** %4
%521 = getelementptr inbounds double, double* %520, i64 9
%522 = load double, double* %521
%523 = load double*, double** %4
%524 = getelementptr inbounds double, double* %523, i64 2
%525 = load double, double* %524
%526 = load double*, double** %4
%527 = getelementptr inbounds double, double* %526, i64 15
%528 = load double, double* %527
%529 = load double*, double** %4
%530 = getelementptr inbounds double, double* %529, i64 3
%531 = load double, double* %530
%532 = load double*, double** %4
%533 = getelementptr inbounds double, double* %532, i64 14
%534 = load double, double* %533
%535 = fmul double %531, %534
%536 = fneg double %535
%537 = call double @llvm.fmuladd.f64(double %525, double %528, double %536)
%538 = fneg double %537
%539 = load double*, double** %4
%540 = getelementptr inbounds double, double* %539, i64 10
%541 = load double, double* %540
%542 = load double*, double** %4
%543 = getelementptr inbounds double, double* %542, i64 1
%544 = load double, double* %543
%545 = load double*, double** %4
%546 = getelementptr inbounds double, double* %545, i64 15
%547 = load double, double* %546
%548 = load double*, double** %4
%549 = getelementptr inbounds double, double* %548, i64 3
%550 = load double, double* %549
%551 = load double*, double** %4
%552 = getelementptr inbounds double, double* %551, i64 13
%553 = load double, double* %552
%554 = fmul double %550, %553
%555 = fneg double %554
%556 = call double @llvm.fmuladd.f64(double %544, double %547, double %555)
%557 = fmul double %541, %556
%558 = call double @llvm.fmuladd.f64(double %522, double %538, double %557)
%559 = load double*, double** %4
%560 = getelementptr inbounds double, double* %559, i64 11
%561 = load double, double* %560
%562 = load double*, double** %4
%563 = getelementptr inbounds double, double* %562, i64 1
%564 = load double, double* %563
%565 = load double*, double** %4
%566 = getelementptr inbounds double, double* %565, i64 14
%567 = load double, double* %566
%568 = load double*, double** %4
%569 = getelementptr inbounds double, double* %568, i64 2
%570 = load double, double* %569
%571 = load double*, double** %4
%572 = getelementptr inbounds double, double* %571, i64 13
%573 = load double, double* %572
%574 = fmul double %570, %573
%575 = fneg double %574
%576 = call double @llvm.fmuladd.f64(double %564, double %567, double %575)
%577 = fneg double %576
%578 = call double @llvm.fmuladd.f64(double %561, double %577, double %558)
%579 = fneg double %578
%580 = load double, double* %6
%581 = fdiv double %579, %580
%582 = load double*, double** %5
%583 = getelementptr inbounds double, double* %582, i64 1
store double %581, double* %583
%584 = load double*, double** %4
%585 = getelementptr inbounds double, double* %584, i64 8
%586 = load double, double* %585
%587 = load double*, double** %4
%588 = getelementptr inbounds double, double* %587, i64 2
%589 = load double, double* %588
%590 = load double*, double** %4
%591 = getelementptr inbounds double, double* %590, i64 15
%592 = load double, double* %591
%593 = load double*, double** %4
%594 = getelementptr inbounds double, double* %593, i64 3
%595 = load double, double* %594
%596 = load double*, double** %4
%597 = getelementptr inbounds double, double* %596, i64 14
%598 = load double, double* %597
%599 = fmul double %595, %598
%600 = fneg double %599
%601 = call double @llvm.fmuladd.f64(double %589, double %592, double %600)
%602 = fneg double %601
%603 = load double*, double** %4
%604 = getelementptr inbounds double, double* %603, i64 10
%605 = load double, double* %604
%606 = load double*, double** %4
%607 = getelementptr inbounds double, double* %606, i64 0
%608 = load double, double* %607
%609 = load double*, double** %4
%610 = getelementptr inbounds double, double* %609, i64 15
%611 = load double, double* %610
%612 = load double*, double** %4
%613 = getelementptr inbounds double, double* %612, i64 3
%614 = load double, double* %613
%615 = load double*, double** %4
%616 = getelementptr inbounds double, double* %615, i64 12
%617 = load double, double* %616
%618 = fmul double %614, %617
%619 = fneg double %618
%620 = call double @llvm.fmuladd.f64(double %608, double %611, double %619)
%621 = fmul double %605, %620
%622 = call double @llvm.fmuladd.f64(double %586, double %602, double %621)
%623 = load double*, double** %4
%624 = getelementptr inbounds double, double* %623, i64 11
%625 = load double, double* %624
%626 = load double*, double** %4
%627 = getelementptr inbounds double, double* %626, i64 0
%628 = load double, double* %627
%629 = load double*, double** %4
%630 = getelementptr inbounds double, double* %629, i64 14
%631 = load double, double* %630
%632 = load double*, double** %4
%633 = getelementptr inbounds double, double* %632, i64 2
%634 = load double, double* %633
%635 = load double*, double** %4
%636 = getelementptr inbounds double, double* %635, i64 12
%637 = load double, double* %636
%638 = fmul double %634, %637
%639 = fneg double %638
%640 = call double @llvm.fmuladd.f64(double %628, double %631, double %639)
%641 = fneg double %640
%642 = call double @llvm.fmuladd.f64(double %625, double %641, double %622)
%643 = load double, double* %6
%644 = fdiv double %642, %643
%645 = load double*, double** %5
%646 = getelementptr inbounds double, double* %645, i64 5
store double %644, double* %646
%647 = load double*, double** %4
%648 = getelementptr inbounds double, double* %647, i64 8
%649 = load double, double* %648
%650 = load double*, double** %4
%651 = getelementptr inbounds double, double* %650, i64 1
%652 = load double, double* %651
%653 = load double*, double** %4
%654 = getelementptr inbounds double, double* %653, i64 15
%655 = load double, double* %654
%656 = load double*, double** %4
%657 = getelementptr inbounds double, double* %656, i64 3
%658 = load double, double* %657
%659 = load double*, double** %4
%660 = getelementptr inbounds double, double* %659, i64 13
%661 = load double, double* %660
%662 = fmul double %658, %661
%663 = fneg double %662
%664 = call double @llvm.fmuladd.f64(double %652, double %655, double %663)
%665 = fneg double %664
%666 = load double*, double** %4
%667 = getelementptr inbounds double, double* %666, i64 9
%668 = load double, double* %667
%669 = load double*, double** %4
%670 = getelementptr inbounds double, double* %669, i64 0
%671 = load double, double* %670
%672 = load double*, double** %4
%673 = getelementptr inbounds double, double* %672, i64 15
%674 = load double, double* %673
%675 = load double*, double** %4
%676 = getelementptr inbounds double, double* %675, i64 3
%677 = load double, double* %676
%678 = load double*, double** %4
%679 = getelementptr inbounds double, double* %678, i64 12
%680 = load double, double* %679
%681 = fmul double %677, %680
%682 = fneg double %681
%683 = call double @llvm.fmuladd.f64(double %671, double %674, double %682)
%684 = fmul double %668, %683
%685 = call double @llvm.fmuladd.f64(double %649, double %665, double %684)
%686 = load double*, double** %4
%687 = getelementptr inbounds double, double* %686, i64 11
%688 = load double, double* %687
%689 = load double*, double** %4
%690 = getelementptr inbounds double, double* %689, i64 0
%691 = load double, double* %690
%692 = load double*, double** %4
%693 = getelementptr inbounds double, double* %692, i64 13
%694 = load double, double* %693
%695 = load double*, double** %4
%696 = getelementptr inbounds double, double* %695, i64 1
%697 = load double, double* %696
%698 = load double*, double** %4
%699 = getelementptr inbounds double, double* %698, i64 12
%700 = load double, double* %699
%701 = fmul double %697, %700
%702 = fneg double %701
%703 = call double @llvm.fmuladd.f64(double %691, double %694, double %702)
%704 = fneg double %703
%705 = call double @llvm.fmuladd.f64(double %688, double %704, double %685)
%706 = fneg double %705
%707 = load double, double* %6
%708 = fdiv double %706, %707
%709 = load double*, double** %5
%710 = getelementptr inbounds double, double* %709, i64 9
store double %708, double* %710
%711 = load double*, double** %4
%712 = getelementptr inbounds double, double* %711, i64 8
%713 = load double, double* %712
%714 = load double*, double** %4
%715 = getelementptr inbounds double, double* %714, i64 1
%716 = load double, double* %715
%717 = load double*, double** %4
%718 = getelementptr inbounds double, double* %717, i64 14
%719 = load double, double* %718
%720 = load double*, double** %4
%721 = getelementptr inbounds double, double* %720, i64 2
%722 = load double, double* %721
%723 = load double*, double** %4
%724 = getelementptr inbounds double, double* %723, i64 13
%725 = load double, double* %724
%726 = fmul double %722, %725
%727 = fneg double %726
%728 = call double @llvm.fmuladd.f64(double %716, double %719, double %727)
%729 = fneg double %728
%730 = load double*, double** %4
%731 = getelementptr inbounds double, double* %730, i64 9
%732 = load double, double* %731
%733 = load double*, double** %4
%734 = getelementptr inbounds double, double* %733, i64 0
%735 = load double, double* %734
%736 = load double*, double** %4
%737 = getelementptr inbounds double, double* %736, i64 14
%738 = load double, double* %737
%739 = load double*, double** %4
%740 = getelementptr inbounds double, double* %739, i64 2
%741 = load double, double* %740
%742 = load double*, double** %4
%743 = getelementptr inbounds double, double* %742, i64 12
%744 = load double, double* %743
%745 = fmul double %741, %744
%746 = fneg double %745
%747 = call double @llvm.fmuladd.f64(double %735, double %738, double %746)
%748 = fmul double %732, %747
%749 = call double @llvm.fmuladd.f64(double %713, double %729, double %748)
%750 = load double*, double** %4
%751 = getelementptr inbounds double, double* %750, i64 10
%752 = load double, double* %751
%753 = load double*, double** %4
%754 = getelementptr inbounds double, double* %753, i64 0
%755 = load double, double* %754
%756 = load double*, double** %4
%757 = getelementptr inbounds double, double* %756, i64 13
%758 = load double, double* %757
%759 = load double*, double** %4
%760 = getelementptr inbounds double, double* %759, i64 1
%761 = load double, double* %760
%762 = load double*, double** %4
%763 = getelementptr inbounds double, double* %762, i64 12
%764 = load double, double* %763
%765 = fmul double %761, %764
%766 = fneg double %765
%767 = call double @llvm.fmuladd.f64(double %755, double %758, double %766)
%768 = fneg double %767
%769 = call double @llvm.fmuladd.f64(double %752, double %768, double %749)
%770 = load double, double* %6
%771 = fdiv double %769, %770
%772 = load double*, double** %5
%773 = getelementptr inbounds double, double* %772, i64 13
store double %771, double* %773
%774 = load double*, double** %4
%775 = getelementptr inbounds double, double* %774, i64 5
%776 = load double, double* %775
%777 = load double*, double** %4
%778 = getelementptr inbounds double, double* %777, i64 2
%779 = load double, double* %778
%780 = load double*, double** %4
%781 = getelementptr inbounds double, double* %780, i64 15
%782 = load double, double* %781
%783 = load double*, double** %4
%784 = getelementptr inbounds double, double* %783, i64 3
%785 = load double, double* %784
%786 = load double*, double** %4
%787 = getelementptr inbounds double, double* %786, i64 14
%788 = load double, double* %787
%789 = fmul double %785, %788
%790 = fneg double %789
%791 = call double @llvm.fmuladd.f64(double %779, double %782, double %790)
%792 = fneg double %791
%793 = load double*, double** %4
%794 = getelementptr inbounds double, double* %793, i64 6
%795 = load double, double* %794
%796 = load double*, double** %4
%797 = getelementptr inbounds double, double* %796, i64 1
%798 = load double, double* %797
%799 = load double*, double** %4
%800 = getelementptr inbounds double, double* %799, i64 15
%801 = load double, double* %800
%802 = load double*, double** %4
%803 = getelementptr inbounds double, double* %802, i64 3
%804 = load double, double* %803
%805 = load double*, double** %4
%806 = getelementptr inbounds double, double* %805, i64 13
%807 = load double, double* %806
%808 = fmul double %804, %807
%809 = fneg double %808
%810 = call double @llvm.fmuladd.f64(double %798, double %801, double %809)
%811 = fmul double %795, %810
%812 = call double @llvm.fmuladd.f64(double %776, double %792, double %811)
%813 = load double*, double** %4
%814 = getelementptr inbounds double, double* %813, i64 7
%815 = load double, double* %814
%816 = load double*, double** %4
%817 = getelementptr inbounds double, double* %816, i64 1
%818 = load double, double* %817
%819 = load double*, double** %4
%820 = getelementptr inbounds double, double* %819, i64 14
%821 = load double, double* %820
%822 = load double*, double** %4
%823 = getelementptr inbounds double, double* %822, i64 2
%824 = load double, double* %823
%825 = load double*, double** %4
%826 = getelementptr inbounds double, double* %825, i64 13
%827 = load double, double* %826
%828 = fmul double %824, %827
%829 = fneg double %828
%830 = call double @llvm.fmuladd.f64(double %818, double %821, double %829)
%831 = fneg double %830
%832 = call double @llvm.fmuladd.f64(double %815, double %831, double %812)
%833 = load double, double* %6
%834 = fdiv double %832, %833
%835 = load double*, double** %5
%836 = getelementptr inbounds double, double* %835, i64 2
store double %834, double* %836
%837 = load double*, double** %4
%838 = getelementptr inbounds double, double* %837, i64 4
%839 = load double, double* %838
%840 = load double*, double** %4
%841 = getelementptr inbounds double, double* %840, i64 2
%842 = load double, double* %841
%843 = load double*, double** %4
%844 = getelementptr inbounds double, double* %843, i64 15
%845 = load double, double* %844
%846 = load double*, double** %4
%847 = getelementptr inbounds double, double* %846, i64 3
%848 = load double, double* %847
%849 = load double*, double** %4
%850 = getelementptr inbounds double, double* %849, i64 14
%851 = load double, double* %850
%852 = fmul double %848, %851
%853 = fneg double %852
%854 = call double @llvm.fmuladd.f64(double %842, double %845, double %853)
%855 = fneg double %854
%856 = load double*, double** %4
%857 = getelementptr inbounds double, double* %856, i64 6
%858 = load double, double* %857
%859 = load double*, double** %4
%860 = getelementptr inbounds double, double* %859, i64 0
%861 = load double, double* %860
%862 = load double*, double** %4
%863 = getelementptr inbounds double, double* %862, i64 15
%864 = load double, double* %863
%865 = load double*, double** %4
%866 = getelementptr inbounds double, double* %865, i64 3
%867 = load double, double* %866
%868 = load double*, double** %4
%869 = getelementptr inbounds double, double* %868, i64 12
%870 = load double, double* %869
%871 = fmul double %867, %870
%872 = fneg double %871
%873 = call double @llvm.fmuladd.f64(double %861, double %864, double %872)
%874 = fmul double %858, %873
%875 = call double @llvm.fmuladd.f64(double %839, double %855, double %874)
%876 = load double*, double** %4
%877 = getelementptr inbounds double, double* %876, i64 7
%878 = load double, double* %877
%879 = load double*, double** %4
%880 = getelementptr inbounds double, double* %879, i64 0
%881 = load double, double* %880
%882 = load double*, double** %4
%883 = getelementptr inbounds double, double* %882, i64 14
%884 = load double, double* %883
%885 = load double*, double** %4
%886 = getelementptr inbounds double, double* %885, i64 2
%887 = load double, double* %886
%888 = load double*, double** %4
%889 = getelementptr inbounds double, double* %888, i64 12
%890 = load double, double* %889
%891 = fmul double %887, %890
%892 = fneg double %891
%893 = call double @llvm.fmuladd.f64(double %881, double %884, double %892)
%894 = fneg double %893
%895 = call double @llvm.fmuladd.f64(double %878, double %894, double %875)
%896 = fneg double %895
%897 = load double, double* %6
%898 = fdiv double %896, %897
%899 = load double*, double** %5
%900 = getelementptr inbounds double, double* %899, i64 6
store double %898, double* %900
%901 = load double*, double** %4
%902 = getelementptr inbounds double, double* %901, i64 4
%903 = load double, double* %902
%904 = load double*, double** %4
%905 = getelementptr inbounds double, double* %904, i64 1
%906 = load double, double* %905
%907 = load double*, double** %4
%908 = getelementptr inbounds double, double* %907, i64 15
%909 = load double, double* %908
%910 = load double*, double** %4
%911 = getelementptr inbounds double, double* %910, i64 3
%912 = load double, double* %911
%913 = load double*, double** %4
%914 = getelementptr inbounds double, double* %913, i64 13
%915 = load double, double* %914
%916 = fmul double %912, %915
%917 = fneg double %916
%918 = call double @llvm.fmuladd.f64(double %906, double %909, double %917)
%919 = fneg double %918
%920 = load double*, double** %4
%921 = getelementptr inbounds double, double* %920, i64 5
%922 = load double, double* %921
%923 = load double*, double** %4
%924 = getelementptr inbounds double, double* %923, i64 0
%925 = load double, double* %924
%926 = load double*, double** %4
%927 = getelementptr inbounds double, double* %926, i64 15
%928 = load double, double* %927
%929 = load double*, double** %4
%930 = getelementptr inbounds double, double* %929, i64 3
%931 = load double, double* %930
%932 = load double*, double** %4
%933 = getelementptr inbounds double, double* %932, i64 12
%934 = load double, double* %933
%935 = fmul double %931, %934
%936 = fneg double %935
%937 = call double @llvm.fmuladd.f64(double %925, double %928, double %936)
%938 = fmul double %922, %937
%939 = call double @llvm.fmuladd.f64(double %903, double %919, double %938)
%940 = load double*, double** %4
%941 = getelementptr inbounds double, double* %940, i64 7
%942 = load double, double* %941
%943 = load double*, double** %4
%944 = getelementptr inbounds double, double* %943, i64 0
%945 = load double, double* %944
%946 = load double*, double** %4
%947 = getelementptr inbounds double, double* %946, i64 13
%948 = load double, double* %947
%949 = load double*, double** %4
%950 = getelementptr inbounds double, double* %949, i64 1
%951 = load double, double* %950
%952 = load double*, double** %4
%953 = getelementptr inbounds double, double* %952, i64 12
%954 = load double, double* %953
%955 = fmul double %951, %954
%956 = fneg double %955
%957 = call double @llvm.fmuladd.f64(double %945, double %948, double %956)
%958 = fneg double %957
%959 = call double @llvm.fmuladd.f64(double %942, double %958, double %939)
%960 = load double, double* %6
%961 = fdiv double %959, %960
%962 = load double*, double** %5
%963 = getelementptr inbounds double, double* %962, i64 10
store double %961, double* %963
%964 = load double*, double** %4
%965 = getelementptr inbounds double, double* %964, i64 4
%966 = load double, double* %965
%967 = load double*, double** %4
%968 = getelementptr inbounds double, double* %967, i64 1
%969 = load double, double* %968
%970 = load double*, double** %4
%971 = getelementptr inbounds double, double* %970, i64 14
%972 = load double, double* %971
%973 = load double*, double** %4
%974 = getelementptr inbounds double, double* %973, i64 2
%975 = load double, double* %974
%976 = load double*, double** %4
%977 = getelementptr inbounds double, double* %976, i64 13
%978 = load double, double* %977
%979 = fmul double %975, %978
%980 = fneg double %979
%981 = call double @llvm.fmuladd.f64(double %969, double %972, double %980)
%982 = fneg double %981
%983 = load double*, double** %4
%984 = getelementptr inbounds double, double* %983, i64 5
%985 = load double, double* %984
%986 = load double*, double** %4
%987 = getelementptr inbounds double, double* %986, i64 0
%988 = load double, double* %987
%989 = load double*, double** %4
%990 = getelementptr inbounds double, double* %989, i64 14
%991 = load double, double* %990
%992 = load double*, double** %4
%993 = getelementptr inbounds double, double* %992, i64 2
%994 = load double, double* %993
%995 = load double*, double** %4
%996 = getelementptr inbounds double, double* %995, i64 12
%997 = load double, double* %996
%998 = fmul double %994, %997
%999 = fneg double %998
%1000 = call double @llvm.fmuladd.f64(double %988, double %991, double %999)
%1001 = fmul double %985, %1000
%1002 = call double @llvm.fmuladd.f64(double %966, double %982, double %1001)
%1003 = load double*, double** %4
%1004 = getelementptr inbounds double, double* %1003, i64 6
%1005 = load double, double* %1004
%1006 = load double*, double** %4
%1007 = getelementptr inbounds double, double* %1006, i64 0
%1008 = load double, double* %1007
%1009 = load double*, double** %4
%1010 = getelementptr inbounds double, double* %1009, i64 13
%1011 = load double, double* %1010
%1012 = load double*, double** %4
%1013 = getelementptr inbounds double, double* %1012, i64 1
%1014 = load double, double* %1013
%1015 = load double*, double** %4
%1016 = getelementptr inbounds double, double* %1015, i64 12
%1017 = load double, double* %1016
%1018 = fmul double %1014, %1017
%1019 = fneg double %1018
%1020 = call double @llvm.fmuladd.f64(double %1008, double %1011, double %1019)
%1021 = fneg double %1020
%1022 = call double @llvm.fmuladd.f64(double %1005, double %1021, double %1002)
%1023 = fneg double %1022
%1024 = load double, double* %6
%1025 = fdiv double %1023, %1024
%1026 = load double*, double** %5
%1027 = getelementptr inbounds double, double* %1026, i64 14
store double %1025, double* %1027
%1028 = load double*, double** %4
%1029 = getelementptr inbounds double, double* %1028, i64 5
%1030 = load double, double* %1029
%1031 = load double*, double** %4
%1032 = getelementptr inbounds double, double* %1031, i64 2
%1033 = load double, double* %1032
%1034 = load double*, double** %4
%1035 = getelementptr inbounds double, double* %1034, i64 11
%1036 = load double, double* %1035
%1037 = load double*, double** %4
%1038 = getelementptr inbounds double, double* %1037, i64 3
%1039 = load double, double* %1038
%1040 = load double*, double** %4
%1041 = getelementptr inbounds double, double* %1040, i64 10
%1042 = load double, double* %1041
%1043 = fmul double %1039, %1042
%1044 = fneg double %1043
%1045 = call double @llvm.fmuladd.f64(double %1033, double %1036, double %1044)
%1046 = fneg double %1045
%1047 = load double*, double** %4
%1048 = getelementptr inbounds double, double* %1047, i64 6
%1049 = load double, double* %1048
%1050 = load double*, double** %4
%1051 = getelementptr inbounds double, double* %1050, i64 1
%1052 = load double, double* %1051
%1053 = load double*, double** %4
%1054 = getelementptr inbounds double, double* %1053, i64 11
%1055 = load double, double* %1054
%1056 = load double*, double** %4
%1057 = getelementptr inbounds double, double* %1056, i64 3
%1058 = load double, double* %1057
%1059 = load double*, double** %4
%1060 = getelementptr inbounds double, double* %1059, i64 9
%1061 = load double, double* %1060
%1062 = fmul double %1058, %1061
%1063 = fneg double %1062
%1064 = call double @llvm.fmuladd.f64(double %1052, double %1055, double %1063)
%1065 = fmul double %1049, %1064
%1066 = call double @llvm.fmuladd.f64(double %1030, double %1046, double %1065)
%1067 = load double*, double** %4
%1068 = getelementptr inbounds double, double* %1067, i64 7
%1069 = load double, double* %1068
%1070 = load double*, double** %4
%1071 = getelementptr inbounds double, double* %1070, i64 1
%1072 = load double, double* %1071
%1073 = load double*, double** %4
%1074 = getelementptr inbounds double, double* %1073, i64 10
%1075 = load double, double* %1074
%1076 = load double*, double** %4
%1077 = getelementptr inbounds double, double* %1076, i64 2
%1078 = load double, double* %1077
%1079 = load double*, double** %4
%1080 = getelementptr inbounds double, double* %1079, i64 9
%1081 = load double, double* %1080
%1082 = fmul double %1078, %1081
%1083 = fneg double %1082
%1084 = call double @llvm.fmuladd.f64(double %1072, double %1075, double %1083)
%1085 = fneg double %1084
%1086 = call double @llvm.fmuladd.f64(double %1069, double %1085, double %1066)
%1087 = fneg double %1086
%1088 = load double, double* %6
%1089 = fdiv double %1087, %1088
%1090 = load double*, double** %5
%1091 = getelementptr inbounds double, double* %1090, i64 3
store double %1089, double* %1091
%1092 = load double*, double** %4
%1093 = getelementptr inbounds double, double* %1092, i64 4
%1094 = load double, double* %1093
%1095 = load double*, double** %4
%1096 = getelementptr inbounds double, double* %1095, i64 2
%1097 = load double, double* %1096
%1098 = load double*, double** %4
%1099 = getelementptr inbounds double, double* %1098, i64 11
%1100 = load double, double* %1099
%1101 = load double*, double** %4
%1102 = getelementptr inbounds double, double* %1101, i64 3
%1103 = load double, double* %1102
%1104 = load double*, double** %4
%1105 = getelementptr inbounds double, double* %1104, i64 10
%1106 = load double, double* %1105
%1107 = fmul double %1103, %1106
%1108 = fneg double %1107
%1109 = call double @llvm.fmuladd.f64(double %1097, double %1100, double %1108)
%1110 = fneg double %1109
%1111 = load double*, double** %4
%1112 = getelementptr inbounds double, double* %1111, i64 6
%1113 = load double, double* %1112
%1114 = load double*, double** %4
%1115 = getelementptr inbounds double, double* %1114, i64 0
%1116 = load double, double* %1115
%1117 = load double*, double** %4
%1118 = getelementptr inbounds double, double* %1117, i64 11
%1119 = load double, double* %1118
%1120 = load double*, double** %4
%1121 = getelementptr inbounds double, double* %1120, i64 3
%1122 = load double, double* %1121
%1123 = load double*, double** %4
%1124 = getelementptr inbounds double, double* %1123, i64 8
%1125 = load double, double* %1124
%1126 = fmul double %1122, %1125
%1127 = fneg double %1126
%1128 = call double @llvm.fmuladd.f64(double %1116, double %1119, double %1127)
%1129 = fmul double %1113, %1128
%1130 = call double @llvm.fmuladd.f64(double %1094, double %1110, double %1129)
%1131 = load double*, double** %4
%1132 = getelementptr inbounds double, double* %1131, i64 7
%1133 = load double, double* %1132
%1134 = load double*, double** %4
%1135 = getelementptr inbounds double, double* %1134, i64 0
%1136 = load double, double* %1135
%1137 = load double*, double** %4
%1138 = getelementptr inbounds double, double* %1137, i64 10
%1139 = load double, double* %1138
%1140 = load double*, double** %4
%1141 = getelementptr inbounds double, double* %1140, i64 2
%1142 = load double, double* %1141
%1143 = load double*, double** %4
%1144 = getelementptr inbounds double, double* %1143, i64 8
%1145 = load double, double* %1144
%1146 = fmul double %1142, %1145
%1147 = fneg double %1146
%1148 = call double @llvm.fmuladd.f64(double %1136, double %1139, double %1147)
%1149 = fneg double %1148
%1150 = call double @llvm.fmuladd.f64(double %1133, double %1149, double %1130)
%1151 = load double, double* %6
%1152 = fdiv double %1150, %1151
%1153 = load double*, double** %5
%1154 = getelementptr inbounds double, double* %1153, i64 7
store double %1152, double* %1154
%1155 = load double*, double** %4
%1156 = getelementptr inbounds double, double* %1155, i64 4
%1157 = load double, double* %1156
%1158 = load double*, double** %4
%1159 = getelementptr inbounds double, double* %1158, i64 1
%1160 = load double, double* %1159
%1161 = load double*, double** %4
%1162 = getelementptr inbounds double, double* %1161, i64 11
%1163 = load double, double* %1162
%1164 = load double*, double** %4
%1165 = getelementptr inbounds double, double* %1164, i64 3
%1166 = load double, double* %1165
%1167 = load double*, double** %4
%1168 = getelementptr inbounds double, double* %1167, i64 9
%1169 = load double, double* %1168
%1170 = fmul double %1166, %1169
%1171 = fneg double %1170
%1172 = call double @llvm.fmuladd.f64(double %1160, double %1163, double %1171)
%1173 = fneg double %1172
%1174 = load double*, double** %4
%1175 = getelementptr inbounds double, double* %1174, i64 5
%1176 = load double, double* %1175
%1177 = load double*, double** %4
%1178 = getelementptr inbounds double, double* %1177, i64 0
%1179 = load double, double* %1178
%1180 = load double*, double** %4
%1181 = getelementptr inbounds double, double* %1180, i64 11
%1182 = load double, double* %1181
%1183 = load double*, double** %4
%1184 = getelementptr inbounds double, double* %1183, i64 3
%1185 = load double, double* %1184
%1186 = load double*, double** %4
%1187 = getelementptr inbounds double, double* %1186, i64 8
%1188 = load double, double* %1187
%1189 = fmul double %1185, %1188
%1190 = fneg double %1189
%1191 = call double @llvm.fmuladd.f64(double %1179, double %1182, double %1190)
%1192 = fmul double %1176, %1191
%1193 = call double @llvm.fmuladd.f64(double %1157, double %1173, double %1192)
%1194 = load double*, double** %4
%1195 = getelementptr inbounds double, double* %1194, i64 7
%1196 = load double, double* %1195
%1197 = load double*, double** %4
%1198 = getelementptr inbounds double, double* %1197, i64 0
%1199 = load double, double* %1198
%1200 = load double*, double** %4
%1201 = getelementptr inbounds double, double* %1200, i64 9
%1202 = load double, double* %1201
%1203 = load double*, double** %4
%1204 = getelementptr inbounds double, double* %1203, i64 1
%1205 = load double, double* %1204
%1206 = load double*, double** %4
%1207 = getelementptr inbounds double, double* %1206, i64 8
%1208 = load double, double* %1207
%1209 = fmul double %1205, %1208
%1210 = fneg double %1209
%1211 = call double @llvm.fmuladd.f64(double %1199, double %1202, double %1210)
%1212 = fneg double %1211
%1213 = call double @llvm.fmuladd.f64(double %1196, double %1212, double %1193)
%1214 = fneg double %1213
%1215 = load double, double* %6
%1216 = fdiv double %1214, %1215
%1217 = load double*, double** %5
%1218 = getelementptr inbounds double, double* %1217, i64 11
store double %1216, double* %1218
%1219 = load double*, double** %4
%1220 = getelementptr inbounds double, double* %1219, i64 4
%1221 = load double, double* %1220
%1222 = load double*, double** %4
%1223 = getelementptr inbounds double, double* %1222, i64 1
%1224 = load double, double* %1223
%1225 = load double*, double** %4
%1226 = getelementptr inbounds double, double* %1225, i64 10
%1227 = load double, double* %1226
%1228 = load double*, double** %4
%1229 = getelementptr inbounds double, double* %1228, i64 2
%1230 = load double, double* %1229
%1231 = load double*, double** %4
%1232 = getelementptr inbounds double, double* %1231, i64 9
%1233 = load double, double* %1232
%1234 = fmul double %1230, %1233
%1235 = fneg double %1234
%1236 = call double @llvm.fmuladd.f64(double %1224, double %1227, double %1235)
%1237 = fneg double %1236
%1238 = load double*, double** %4
%1239 = getelementptr inbounds double, double* %1238, i64 5
%1240 = load double, double* %1239
%1241 = load double*, double** %4
%1242 = getelementptr inbounds double, double* %1241, i64 0
%1243 = load double, double* %1242
%1244 = load double*, double** %4
%1245 = getelementptr inbounds double, double* %1244, i64 10
%1246 = load double, double* %1245
%1247 = load double*, double** %4
%1248 = getelementptr inbounds double, double* %1247, i64 2
%1249 = load double, double* %1248
%1250 = load double*, double** %4
%1251 = getelementptr inbounds double, double* %1250, i64 8
%1252 = load double, double* %1251
%1253 = fmul double %1249, %1252
%1254 = fneg double %1253
%1255 = call double @llvm.fmuladd.f64(double %1243, double %1246, double %1254)
%1256 = fmul double %1240, %1255
%1257 = call double @llvm.fmuladd.f64(double %1221, double %1237, double %1256)
%1258 = load double*, double** %4
%1259 = getelementptr inbounds double, double* %1258, i64 6
%1260 = load double, double* %1259
%1261 = load double*, double** %4
%1262 = getelementptr inbounds double, double* %1261, i64 0
%1263 = load double, double* %1262
%1264 = load double*, double** %4
%1265 = getelementptr inbounds double, double* %1264, i64 9
%1266 = load double, double* %1265
%1267 = load double*, double** %4
%1268 = getelementptr inbounds double, double* %1267, i64 1
%1269 = load double, double* %1268
%1270 = load double*, double** %4
%1271 = getelementptr inbounds double, double* %1270, i64 8
%1272 = load double, double* %1271
%1273 = fmul double %1269, %1272
%1274 = fneg double %1273
%1275 = call double @llvm.fmuladd.f64(double %1263, double %1266, double %1274)
%1276 = fneg double %1275
%1277 = call double @llvm.fmuladd.f64(double %1260, double %1276, double %1257)
%1278 = load double, double* %6
%1279 = fdiv double %1277, %1278
%1280 = load double*, double** %5
%1281 = getelementptr inbounds double, double* %1280, i64 15
store double %1279, double* %1281
store i32 0, i32* %3
br label %1282
1282: ; preds = %265, %264
%1283 = load i32, i32* %3
ret i32 %1283
}

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