int ccw_tri_tri_intersection_2d(double p1[2], double q1[2], double r1[2],
                                double p2[2], double q2[2], double r2[2]) {
  if (((p2[0] - p1[0]) * (q2[1] - p1[1]) - (p2[1] - p1[1]) * (q2[0] - p1[0])) >=
      0.0f) {
    if (((q2[0] - p1[0]) * (r2[1] - p1[1]) -
         (q2[1] - p1[1]) * (r2[0] - p1[0])) >= 0.0f) {
      if (((r2[0] - p1[0]) * (p2[1] - p1[1]) -
           (r2[1] - p1[1]) * (p2[0] - p1[0])) >= 0.0f)
        return 1;
      else {
        if (((r2[0] - q1[0]) * (p2[1] - q1[1]) -
             (r2[1] - q1[1]) * (p2[0] - q1[0])) >= 0.0f) {
          if (((p1[0] - q1[0]) * (p2[1] - q1[1]) -
               (p1[1] - q1[1]) * (p2[0] - q1[0])) >= 0.0f) {
            if (((p1[0] - r2[0]) * (q1[1] - r2[1]) -
                 (p1[1] - r2[1]) * (q1[0] - r2[0])) >= 0.0f)
              return 1;
            else
              return 0;
          } else {
            if (((q1[0] - p2[0]) * (r1[1] - p2[1]) -
                 (q1[1] - p2[1]) * (r1[0] - p2[0])) >= 0.0f) {
              if (((r1[0] - p2[0]) * (p1[1] - p2[1]) -
                   (r1[1] - p2[1]) * (p1[0] - p2[0])) >= 0.0f)
                return 1;
              else
                return 0;
            } else
              return 0;
          }
        } else {
          if (((r2[0] - r1[0]) * (p2[1] - r1[1]) -
               (r2[1] - r1[1]) * (p2[0] - r1[0])) >= 0.0f) {
            if (((p1[0] - r1[0]) * (p2[1] - r1[1]) -
                 (p1[1] - r1[1]) * (p2[0] - r1[0])) >= 0.0f) {
              if (((p1[0] - r2[0]) * (r1[1] - r2[1]) -
                   (p1[1] - r2[1]) * (r1[0] - r2[0])) >= 0.0f)
                return 1;
              else {
                if (((q1[0] - r2[0]) * (r1[1] - r2[1]) -
                     (q1[1] - r2[1]) * (r1[0] - r2[0])) >= 0.0f)
                  return 1;
                else
                  return 0;
              }
            } else
              return 0;
          } else
            return 0;
        }
      }
    } else {
      if (((r2[0] - p1[0]) * (p2[1] - p1[1]) -
           (r2[1] - p1[1]) * (p2[0] - p1[0])) >= 0.0f) {
        if (((q2[0] - q1[0]) * (r2[1] - q1[1]) -
             (q2[1] - q1[1]) * (r2[0] - q1[0])) >= 0.0f) {
          if (((p1[0] - q1[0]) * (r2[1] - q1[1]) -
               (p1[1] - q1[1]) * (r2[0] - q1[0])) >= 0.0f) {
            if (((p1[0] - q2[0]) * (q1[1] - q2[1]) -
                 (p1[1] - q2[1]) * (q1[0] - q2[0])) >= 0.0f)
              return 1;
            else
              return 0;
          } else {
            if (((q1[0] - r2[0]) * (r1[1] - r2[1]) -
                 (q1[1] - r2[1]) * (r1[0] - r2[0])) >= 0.0f) {
              if (((r1[0] - r2[0]) * (p1[1] - r2[1]) -
                   (r1[1] - r2[1]) * (p1[0] - r2[0])) >= 0.0f)
                return 1;
              else
                return 0;
            } else
              return 0;
          }
        } else {
          if (((q2[0] - r1[0]) * (r2[1] - r1[1]) -
               (q2[1] - r1[1]) * (r2[0] - r1[0])) >= 0.0f) {
            if (((p1[0] - r1[0]) * (r2[1] - r1[1]) -
                 (p1[1] - r1[1]) * (r2[0] - r1[0])) >= 0.0f) {
              if (((p1[0] - q2[0]) * (r1[1] - q2[1]) -
                   (p1[1] - q2[1]) * (r1[0] - q2[0])) >= 0.0f)
                return 1;
              else {
                if (((q1[0] - q2[0]) * (r1[1] - q2[1]) -
                     (q1[1] - q2[1]) * (r1[0] - q2[0])) >= 0.0f)
                  return 1;
                else
                  return 0;
              }
            } else
              return 0;
          } else
            return 0;
        }
      } else {
        if (((r2[0] - q1[0]) * (p2[1] - q1[1]) -
             (r2[1] - q1[1]) * (p2[0] - q1[0])) >= 0.0f)
          if (((r2[0] - q1[0]) * (q2[1] - q1[1]) -
               (r2[1] - q1[1]) * (q2[0] - q1[0])) <= 0.0f)
            if (((p1[0] - q1[0]) * (p2[1] - q1[1]) -
                 (p1[1] - q1[1]) * (p2[0] - q1[0])) > 0.0f) {
              if (((p1[0] - q1[0]) * (q2[1] - q1[1]) -
                   (p1[1] - q1[1]) * (q2[0] - q1[0])) <= 0.0f)
                return 1;
              else
                return 0;
            } else {
              if (((p1[0] - r1[0]) * (p2[1] - r1[1]) -
                   (p1[1] - r1[1]) * (p2[0] - r1[0])) >= 0.0f)
                if (((q1[0] - p2[0]) * (r1[1] - p2[1]) -
                     (q1[1] - p2[1]) * (r1[0] - p2[0])) >= 0.0f)
                  return 1;
                else
                  return 0;
              else
                return 0;
            }
          else if (((p1[0] - q1[0]) * (q2[1] - q1[1]) -
                    (p1[1] - q1[1]) * (q2[0] - q1[0])) <= 0.0f)
            if (((r2[0] - r1[0]) * (q2[1] - r1[1]) -
                 (r2[1] - r1[1]) * (q2[0] - r1[0])) <= 0.0f)
              if (((q1[0] - q2[0]) * (r1[1] - q2[1]) -
                   (q1[1] - q2[1]) * (r1[0] - q2[0])) >= 0.0f)
                return 1;
              else
                return 0;
            else
              return 0;
          else
            return 0;
        else if (((r2[0] - r1[0]) * (p2[1] - r1[1]) -
                  (r2[1] - r1[1]) * (p2[0] - r1[0])) >= 0.0f)
          if (((q1[0] - r2[0]) * (r1[1] - r2[1]) -
               (q1[1] - r2[1]) * (r1[0] - r2[0])) >= 0.0f)
            if (((p1[0] - r1[0]) * (p2[1] - r1[1]) -
                 (p1[1] - r1[1]) * (p2[0] - r1[0])) >= 0.0f)
              return 1;
            else
              return 0;
          else if (((q1[0] - q2[0]) * (r1[1] - q2[1]) -
                    (q1[1] - q2[1]) * (r1[0] - q2[0])) >= 0.0f) {
            if (((r2[0] - q2[0]) * (r1[1] - q2[1]) -
                 (r2[1] - q2[1]) * (r1[0] - q2[0])) >= 0.0f)
              return 1;
            else
              return 0;
          } else
            return 0;
        else
          return 0;
      };
    }
  } else {
    if (((q2[0] - p1[0]) * (r2[1] - p1[1]) -
         (q2[1] - p1[1]) * (r2[0] - p1[0])) >= 0.0f) {
      if (((r2[0] - p1[0]) * (p2[1] - p1[1]) -
           (r2[1] - p1[1]) * (p2[0] - p1[0])) >= 0.0f) {
        if (((p2[0] - q1[0]) * (q2[1] - q1[1]) -
             (p2[1] - q1[1]) * (q2[0] - q1[0])) >= 0.0f) {
          if (((p1[0] - q1[0]) * (q2[1] - q1[1]) -
               (p1[1] - q1[1]) * (q2[0] - q1[0])) >= 0.0f) {
            if (((p1[0] - p2[0]) * (q1[1] - p2[1]) -
                 (p1[1] - p2[1]) * (q1[0] - p2[0])) >= 0.0f)
              return 1;
            else
              return 0;
          } else {
            if (((q1[0] - q2[0]) * (r1[1] - q2[1]) -
                 (q1[1] - q2[1]) * (r1[0] - q2[0])) >= 0.0f) {
              if (((r1[0] - q2[0]) * (p1[1] - q2[1]) -
                   (r1[1] - q2[1]) * (p1[0] - q2[0])) >= 0.0f)
                return 1;
              else
                return 0;
            } else
              return 0;
          }
        } else {
          if (((p2[0] - r1[0]) * (q2[1] - r1[1]) -
               (p2[1] - r1[1]) * (q2[0] - r1[0])) >= 0.0f) {
            if (((p1[0] - r1[0]) * (q2[1] - r1[1]) -
                 (p1[1] - r1[1]) * (q2[0] - r1[0])) >= 0.0f) {
              if (((p1[0] - p2[0]) * (r1[1] - p2[1]) -
                   (p1[1] - p2[1]) * (r1[0] - p2[0])) >= 0.0f)
                return 1;
              else {
                if (((q1[0] - p2[0]) * (r1[1] - p2[1]) -
                     (q1[1] - p2[1]) * (r1[0] - p2[0])) >= 0.0f)
                  return 1;
                else
                  return 0;
              }
            } else
              return 0;
          } else
            return 0;
        }
      } else {
        if (((p2[0] - q1[0]) * (q2[1] - q1[1]) -
             (p2[1] - q1[1]) * (q2[0] - q1[0])) >= 0.0f)
          if (((p2[0] - q1[0]) * (r2[1] - q1[1]) -
               (p2[1] - q1[1]) * (r2[0] - q1[0])) <= 0.0f)
            if (((p1[0] - q1[0]) * (q2[1] - q1[1]) -
                 (p1[1] - q1[1]) * (q2[0] - q1[0])) > 0.0f) {
              if (((p1[0] - q1[0]) * (r2[1] - q1[1]) -
                   (p1[1] - q1[1]) * (r2[0] - q1[0])) <= 0.0f)
                return 1;
              else
                return 0;
            } else {
              if (((p1[0] - r1[0]) * (q2[1] - r1[1]) -
                   (p1[1] - r1[1]) * (q2[0] - r1[0])) >= 0.0f)
                if (((q1[0] - q2[0]) * (r1[1] - q2[1]) -
                     (q1[1] - q2[1]) * (r1[0] - q2[0])) >= 0.0f)
                  return 1;
                else
                  return 0;
              else
                return 0;
            }
          else if (((p1[0] - q1[0]) * (r2[1] - q1[1]) -
                    (p1[1] - q1[1]) * (r2[0] - q1[0])) <= 0.0f)
            if (((p2[0] - r1[0]) * (r2[1] - r1[1]) -
                 (p2[1] - r1[1]) * (r2[0] - r1[0])) <= 0.0f)
              if (((q1[0] - r2[0]) * (r1[1] - r2[1]) -
                   (q1[1] - r2[1]) * (r1[0] - r2[0])) >= 0.0f)
                return 1;
              else
                return 0;
            else
              return 0;
          else
            return 0;
        else if (((p2[0] - r1[0]) * (q2[1] - r1[1]) -
                  (p2[1] - r1[1]) * (q2[0] - r1[0])) >= 0.0f)
          if (((q1[0] - p2[0]) * (r1[1] - p2[1]) -
               (q1[1] - p2[1]) * (r1[0] - p2[0])) >= 0.0f)
            if (((p1[0] - r1[0]) * (q2[1] - r1[1]) -
                 (p1[1] - r1[1]) * (q2[0] - r1[0])) >= 0.0f)
              return 1;
            else
              return 0;
          else if (((q1[0] - r2[0]) * (r1[1] - r2[1]) -
                    (q1[1] - r2[1]) * (r1[0] - r2[0])) >= 0.0f) {
            if (((p2[0] - r2[0]) * (r1[1] - r2[1]) -
                 (p2[1] - r2[1]) * (r1[0] - r2[0])) >= 0.0f)
              return 1;
            else
              return 0;
          } else
            return 0;
        else
          return 0;
      };
    } else {
      if (((q2[0] - q1[0]) * (r2[1] - q1[1]) -
           (q2[1] - q1[1]) * (r2[0] - q1[0])) >= 0.0f)
        if (((q2[0] - q1[0]) * (p2[1] - q1[1]) -
             (q2[1] - q1[1]) * (p2[0] - q1[0])) <= 0.0f)
          if (((p1[0] - q1[0]) * (r2[1] - q1[1]) -
               (p1[1] - q1[1]) * (r2[0] - q1[0])) > 0.0f) {
            if (((p1[0] - q1[0]) * (p2[1] - q1[1]) -
                 (p1[1] - q1[1]) * (p2[0] - q1[0])) <= 0.0f)
              return 1;
            else
              return 0;
          } else {
            if (((p1[0] - r1[0]) * (r2[1] - r1[1]) -
                 (p1[1] - r1[1]) * (r2[0] - r1[0])) >= 0.0f)
              if (((q1[0] - r2[0]) * (r1[1] - r2[1]) -
                   (q1[1] - r2[1]) * (r1[0] - r2[0])) >= 0.0f)
                return 1;
              else
                return 0;
            else
              return 0;
          }
        else if (((p1[0] - q1[0]) * (p2[1] - q1[1]) -
                  (p1[1] - q1[1]) * (p2[0] - q1[0])) <= 0.0f)
          if (((q2[0] - r1[0]) * (p2[1] - r1[1]) -
               (q2[1] - r1[1]) * (p2[0] - r1[0])) <= 0.0f)
            if (((q1[0] - p2[0]) * (r1[1] - p2[1]) -
                 (q1[1] - p2[1]) * (r1[0] - p2[0])) >= 0.0f)
              return 1;
            else
              return 0;
          else
            return 0;
        else
          return 0;
      else if (((q2[0] - r1[0]) * (r2[1] - r1[1]) -
                (q2[1] - r1[1]) * (r2[0] - r1[0])) >= 0.0f)
        if (((q1[0] - q2[0]) * (r1[1] - q2[1]) -
             (q1[1] - q2[1]) * (r1[0] - q2[0])) >= 0.0f)
          if (((p1[0] - r1[0]) * (r2[1] - r1[1]) -
               (p1[1] - r1[1]) * (r2[0] - r1[0])) >= 0.0f)
            return 1;
          else
            return 0;
        else if (((q1[0] - p2[0]) * (r1[1] - p2[1]) -
                  (q1[1] - p2[1]) * (r1[0] - p2[0])) >= 0.0f) {
          if (((q2[0] - p2[0]) * (r1[1] - p2[1]) -
               (q2[1] - p2[1]) * (r1[0] - p2[0])) >= 0.0f)
            return 1;
          else
            return 0;
        } else
          return 0;
      else
        return 0;
    };
  }
}


x86 assembly (clang, -O0):
<ccw_tri_tri_intersection_2d>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    %rcx,-0x28(%rbp)
mov    %r8,-0x30(%rbp)
mov    %r9,-0x38(%rbp)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     231c <ccw_tri_tri_intersection_2d+0x121c>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1710 <ccw_tri_tri_intersection_2d+0x610>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1284 <ccw_tri_tri_intersection_2d+0x184>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1504 <ccw_tri_tri_intersection_2d+0x404>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     13f8 <ccw_tri_tri_intersection_2d+0x2f8>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     13ec <ccw_tri_tri_intersection_2d+0x2ec>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     14f8 <ccw_tri_tri_intersection_2d+0x3f8>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     14ec <ccw_tri_tri_intersection_2d+0x3ec>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1704 <ccw_tri_tri_intersection_2d+0x604>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     16f8 <ccw_tri_tri_intersection_2d+0x5f8>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     166c <ccw_tri_tri_intersection_2d+0x56c>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     16ec <ccw_tri_tri_intersection_2d+0x5ec>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1c10 <ccw_tri_tri_intersection_2d+0xb10>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1a04 <ccw_tri_tri_intersection_2d+0x904>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     18f8 <ccw_tri_tri_intersection_2d+0x7f8>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     18ec <ccw_tri_tri_intersection_2d+0x7ec>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     19f8 <ccw_tri_tri_intersection_2d+0x8f8>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     19ec <ccw_tri_tri_intersection_2d+0x8ec>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1c04 <ccw_tri_tri_intersection_2d+0xb04>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1bf8 <ccw_tri_tri_intersection_2d+0xaf8>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1b6c <ccw_tri_tri_intersection_2d+0xa6c>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1bec <ccw_tri_tri_intersection_2d+0xaec>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2090 <ccw_tri_tri_intersection_2d+0xf90>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     1f04 <ccw_tri_tri_intersection_2d+0xe04>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1df8 <ccw_tri_tri_intersection_2d+0xcf8>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     1dec <ccw_tri_tri_intersection_2d+0xcec>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1ef8 <ccw_tri_tri_intersection_2d+0xdf8>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1eec <ccw_tri_tri_intersection_2d+0xdec>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     2084 <ccw_tri_tri_intersection_2d+0xf84>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     2078 <ccw_tri_tri_intersection_2d+0xf78>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     206c <ccw_tri_tri_intersection_2d+0xf6c>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2310 <ccw_tri_tri_intersection_2d+0x1210>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2204 <ccw_tri_tri_intersection_2d+0x1104>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     21f8 <ccw_tri_tri_intersection_2d+0x10f8>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2304 <ccw_tri_tri_intersection_2d+0x1204>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     22f8 <ccw_tri_tri_intersection_2d+0x11f8>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2f9c <ccw_tri_tri_intersection_2d+0x1e9c>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2890 <ccw_tri_tri_intersection_2d+0x1790>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2684 <ccw_tri_tri_intersection_2d+0x1584>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2578 <ccw_tri_tri_intersection_2d+0x1478>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     256c <ccw_tri_tri_intersection_2d+0x146c>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2678 <ccw_tri_tri_intersection_2d+0x1578>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     266c <ccw_tri_tri_intersection_2d+0x156c>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2884 <ccw_tri_tri_intersection_2d+0x1784>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2878 <ccw_tri_tri_intersection_2d+0x1778>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     27ec <ccw_tri_tri_intersection_2d+0x16ec>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     286c <ccw_tri_tri_intersection_2d+0x176c>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2d10 <ccw_tri_tri_intersection_2d+0x1c10>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm1
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     2b84 <ccw_tri_tri_intersection_2d+0x1a84>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2a78 <ccw_tri_tri_intersection_2d+0x1978>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm1
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     2a6c <ccw_tri_tri_intersection_2d+0x196c>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2b78 <ccw_tri_tri_intersection_2d+0x1a78>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2b6c <ccw_tri_tri_intersection_2d+0x1a6c>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm1
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     2d04 <ccw_tri_tri_intersection_2d+0x1c04>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm1
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     2cf8 <ccw_tri_tri_intersection_2d+0x1bf8>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2cec <ccw_tri_tri_intersection_2d+0x1bec>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2f90 <ccw_tri_tri_intersection_2d+0x1e90>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2e84 <ccw_tri_tri_intersection_2d+0x1d84>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2e78 <ccw_tri_tri_intersection_2d+0x1d78>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2f84 <ccw_tri_tri_intersection_2d+0x1e84>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2f78 <ccw_tri_tri_intersection_2d+0x1e78>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     341c <ccw_tri_tri_intersection_2d+0x231c>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm1
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     3290 <ccw_tri_tri_intersection_2d+0x2190>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    3184 <ccw_tri_tri_intersection_2d+0x2084>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm1
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     3178 <ccw_tri_tri_intersection_2d+0x2078>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     3284 <ccw_tri_tri_intersection_2d+0x2184>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     3278 <ccw_tri_tri_intersection_2d+0x2178>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm1
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     3410 <ccw_tri_tri_intersection_2d+0x2310>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm1
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     3404 <ccw_tri_tri_intersection_2d+0x2304>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     33f8 <ccw_tri_tri_intersection_2d+0x22f8>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     369c <ccw_tri_tri_intersection_2d+0x259c>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     3590 <ccw_tri_tri_intersection_2d+0x2490>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     3584 <ccw_tri_tri_intersection_2d+0x2484>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     3690 <ccw_tri_tri_intersection_2d+0x2590>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm2
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm2
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x28(%rbp),%rax
subsd  0x8(%rax),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm3
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     3684 <ccw_tri_tri_intersection_2d+0x2584>
movl   $0x1,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
jmp    36a3 <ccw_tri_tri_intersection_2d+0x25a3>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<ccw_tri_tri_intersection_2d>:
movsd  (%rcx),%xmm10
movsd  0x8(%rcx),%xmm6
movsd  (%rdi),%xmm8
movsd  0x8(%rdi),%xmm12
movsd  (%r8),%xmm11
movsd  0x8(%r8),%xmm14
movapd %xmm6,%xmm2
subsd  %xmm12,%xmm2
movapd %xmm11,%xmm0
unpcklpd %xmm10,%xmm0
movapd %xmm8,%xmm1
unpcklpd %xmm8,%xmm1
subpd  %xmm1,%xmm0
movsd  (%r9),%xmm15
movsd  0x8(%r9),%xmm9
movapd %xmm9,%xmm5
unpcklpd %xmm14,%xmm5
movapd %xmm12,%xmm1
unpcklpd %xmm12,%xmm1
subpd  %xmm1,%xmm5
movapd %xmm15,%xmm4
subsd  %xmm8,%xmm4
movapd %xmm5,%xmm1
shufpd $0x1,%xmm2,%xmm1
movapd %xmm4,%xmm3
unpcklpd %xmm0,%xmm3
mulpd  %xmm1,%xmm3
movapd %xmm0,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm3,%xmm1
xorpd  %xmm3,%xmm3
cmpnlepd %xmm1,%xmm3
pextrw $0x4,%xmm3,%eax
test   $0x1,%al
je     12db <ccw_tri_tri_intersection_2d+0x1db>
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm1
jae    1437 <ccw_tri_tri_intersection_2d+0x337>
movsd  %xmm6,-0x30(%rsp)
movsd  (%rsi),%xmm2
movsd  0x8(%rsi),%xmm13
movapd %xmm11,%xmm4
subsd  %xmm2,%xmm4
movapd %xmm9,%xmm0
subsd  %xmm13,%xmm0
movapd %xmm14,%xmm6
subsd  %xmm13,%xmm6
movapd %xmm15,%xmm5
subsd  %xmm2,%xmm5
movapd %xmm5,%xmm7
mulsd  %xmm6,%xmm7
movapd %xmm4,%xmm1
mulsd  %xmm0,%xmm1
subsd  %xmm7,%xmm1
ucomisd %xmm3,%xmm1
jae    1677 <ccw_tri_tri_intersection_2d+0x577>
movsd  (%rdx),%xmm0
movsd  0x8(%rdx),%xmm5
movapd %xmm11,%xmm3
subsd  %xmm0,%xmm3
subsd  %xmm5,%xmm9
movapd %xmm14,%xmm1
subsd  %xmm5,%xmm1
subsd  %xmm0,%xmm15
mulsd  %xmm15,%xmm1
mulsd  %xmm9,%xmm3
subsd  %xmm1,%xmm3
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm3
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
movapd %xmm2,%xmm3
subsd  %xmm11,%xmm3
movapd %xmm5,%xmm4
subsd  %xmm14,%xmm4
mulsd  %xmm3,%xmm4
movapd %xmm13,%xmm3
subsd  %xmm14,%xmm3
movapd %xmm0,%xmm6
subsd  %xmm11,%xmm6
mulsd  %xmm3,%xmm6
subsd  %xmm6,%xmm4
ucomisd %xmm1,%xmm4
jae    1c64 <ccw_tri_tri_intersection_2d+0xb64>
subsd  %xmm10,%xmm2
movsd  -0x30(%rsp),%xmm3
subsd  %xmm3,%xmm5
subsd  %xmm3,%xmm13
subsd  %xmm10,%xmm0
mulsd  %xmm0,%xmm13
mulsd  %xmm5,%xmm2
subsd  %xmm13,%xmm2
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm2
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
subsd  %xmm10,%xmm11
subsd  %xmm3,%xmm14
mulsd  %xmm14,%xmm0
mulsd  %xmm5,%xmm11
subsd  %xmm0,%xmm11
ucomisd %xmm1,%xmm11
jmp    1f02 <ccw_tri_tri_intersection_2d+0xe02>
unpckhpd %xmm0,%xmm0
mulsd  %xmm5,%xmm0
mulsd  %xmm2,%xmm4
subsd  %xmm0,%xmm4
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
jae    156f <ccw_tri_tri_intersection_2d+0x46f>
ucomisd %xmm0,%xmm4
movsd  (%rsi),%xmm1
jae    1744 <ccw_tri_tri_intersection_2d+0x644>
movapd %xmm12,-0x28(%rsp)
movapd %xmm15,%xmm3
subsd  %xmm1,%xmm3
movsd  0x8(%rsi),%xmm4
movapd %xmm6,%xmm0
subsd  %xmm4,%xmm0
movapd %xmm9,%xmm13
subsd  %xmm4,%xmm13
movapd %xmm10,%xmm2
subsd  %xmm1,%xmm2
movapd %xmm2,%xmm5
mulsd  %xmm13,%xmm5
movapd %xmm1,%xmm12
movapd %xmm6,%xmm1
movapd %xmm3,%xmm6
mulsd  %xmm0,%xmm6
subsd  %xmm5,%xmm6
movapd %xmm10,%xmm7
xorpd  %xmm10,%xmm10
ucomisd %xmm10,%xmm6
jae    1908 <ccw_tri_tri_intersection_2d+0x808>
movsd  (%rdx),%xmm0
movsd  0x8(%rdx),%xmm2
movapd %xmm15,%xmm3
subsd  %xmm0,%xmm3
subsd  %xmm2,%xmm1
movapd %xmm9,%xmm5
subsd  %xmm2,%xmm5
subsd  %xmm0,%xmm7
mulsd  %xmm7,%xmm5
mulsd  %xmm1,%xmm3
subsd  %xmm5,%xmm3
ucomisd %xmm10,%xmm3
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
movapd %xmm12,%xmm3
subsd  %xmm15,%xmm3
movapd %xmm2,%xmm5
subsd  %xmm9,%xmm5
mulsd  %xmm3,%xmm5
movapd %xmm4,%xmm3
subsd  %xmm9,%xmm3
movapd %xmm0,%xmm6
subsd  %xmm15,%xmm6
mulsd  %xmm3,%xmm6
subsd  %xmm6,%xmm5
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm5
jae    1de4 <ccw_tri_tri_intersection_2d+0xce4>
subsd  %xmm11,%xmm12
subsd  %xmm14,%xmm2
subsd  %xmm14,%xmm4
subsd  %xmm11,%xmm0
mulsd  %xmm0,%xmm4
mulsd  %xmm2,%xmm12
subsd  %xmm4,%xmm12
ucomisd %xmm3,%xmm12
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
subsd  %xmm11,%xmm15
subsd  %xmm14,%xmm9
mulsd  %xmm9,%xmm0
mulsd  %xmm2,%xmm15
subsd  %xmm0,%xmm15
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm15
jmp    1f02 <ccw_tri_tri_intersection_2d+0xe02>
unpckhpd %xmm0,%xmm0
mulsd  %xmm5,%xmm0
mulsd  %xmm2,%xmm4
subsd  %xmm0,%xmm4
ucomisd %xmm3,%xmm4
movsd  (%rsi),%xmm5
movsd  0x8(%rsi),%xmm1
movapd %xmm10,%xmm13
movapd %xmm10,%xmm7
subsd  %xmm5,%xmm7
movapd %xmm14,%xmm0
subsd  %xmm1,%xmm0
movapd %xmm6,%xmm10
subsd  %xmm1,%xmm10
movapd %xmm11,%xmm2
subsd  %xmm5,%xmm2
movapd %xmm2,%xmm3
mulsd  %xmm10,%xmm3
movapd %xmm7,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
xorpd  %xmm3,%xmm3
jae    183e <ccw_tri_tri_intersection_2d+0x73e>
ucomisd %xmm3,%xmm4
jae    19da <ccw_tri_tri_intersection_2d+0x8da>
movsd  (%rdx),%xmm0
movsd  0x8(%rdx),%xmm2
movapd %xmm13,%xmm4
subsd  %xmm0,%xmm4
subsd  %xmm2,%xmm14
movapd %xmm6,%xmm7
subsd  %xmm2,%xmm6
subsd  %xmm0,%xmm11
mulsd  %xmm11,%xmm6
mulsd  %xmm14,%xmm4
subsd  %xmm6,%xmm4
ucomisd %xmm3,%xmm4
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
movapd %xmm5,%xmm3
subsd  %xmm13,%xmm3
movapd %xmm2,%xmm4
subsd  %xmm7,%xmm4
mulsd  %xmm3,%xmm4
movapd %xmm1,%xmm3
subsd  %xmm7,%xmm3
movapd %xmm0,%xmm6
subsd  %xmm13,%xmm6
mulsd  %xmm3,%xmm6
subsd  %xmm6,%xmm4
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm4
jae    1e10 <ccw_tri_tri_intersection_2d+0xd10>
subsd  %xmm15,%xmm5
subsd  %xmm9,%xmm2
subsd  %xmm9,%xmm1
subsd  %xmm15,%xmm0
mulsd  %xmm0,%xmm1
mulsd  %xmm2,%xmm5
subsd  %xmm1,%xmm5
ucomisd %xmm3,%xmm5
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
subsd  %xmm15,%xmm13
subsd  %xmm9,%xmm7
mulsd  %xmm7,%xmm0
mulsd  %xmm2,%xmm13
subsd  %xmm0,%xmm13
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm13
jmp    1f02 <ccw_tri_tri_intersection_2d+0xe02>
mov    $0x1,%al
ucomisd %xmm0,%xmm4
jae    1f05 <ccw_tri_tri_intersection_2d+0xe05>
movsd  (%rsi),%xmm2
movsd  0x8(%rsi),%xmm4
movapd %xmm15,%xmm5
subsd  %xmm2,%xmm5
movapd %xmm6,%xmm0
subsd  %xmm4,%xmm0
movapd %xmm9,%xmm1
subsd  %xmm4,%xmm1
movapd %xmm10,%xmm3
subsd  %xmm2,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm0,%xmm5
subsd  %xmm1,%xmm5
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm5
jae    1ab4 <ccw_tri_tri_intersection_2d+0x9b4>
movsd  (%rdx),%xmm0
movsd  0x8(%rdx),%xmm5
movapd %xmm15,%xmm3
subsd  %xmm0,%xmm3
subsd  %xmm5,%xmm6
movapd %xmm6,%xmm7
movapd %xmm9,%xmm6
subsd  %xmm5,%xmm6
subsd  %xmm0,%xmm10
mulsd  %xmm10,%xmm6
mulsd  %xmm7,%xmm3
subsd  %xmm6,%xmm3
ucomisd %xmm1,%xmm3
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
movapd %xmm8,%xmm3
subsd  %xmm0,%xmm3
movapd %xmm12,%xmm1
subsd  %xmm5,%xmm1
mulsd  %xmm1,%xmm10
mulsd  %xmm7,%xmm3
subsd  %xmm10,%xmm3
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm3
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
subsd  %xmm15,%xmm8
subsd  %xmm9,%xmm5
subsd  %xmm9,%xmm12
subsd  %xmm15,%xmm0
mulsd  %xmm0,%xmm12
mulsd  %xmm5,%xmm8
subsd  %xmm12,%xmm8
ucomisd %xmm1,%xmm8
jae    1f05 <ccw_tri_tri_intersection_2d+0xe05>
subsd  %xmm15,%xmm2
subsd  %xmm9,%xmm4
mulsd  %xmm4,%xmm0
mulsd  %xmm5,%xmm2
subsd  %xmm0,%xmm2
jmp    1da9 <ccw_tri_tri_intersection_2d+0xca9>
xorpd  0x981(%rip),%xmm6
movsd  -0x30(%rsp),%xmm3
subsd  %xmm13,%xmm3
movapd %xmm10,%xmm7
subsd  %xmm2,%xmm7
mulsd  %xmm7,%xmm6
mulsd  %xmm3,%xmm4
addsd  %xmm6,%xmm4
xorpd  %xmm1,%xmm1
ucomisd %xmm4,%xmm1
xorpd  %xmm4,%xmm4
movapd %xmm8,%xmm1
subsd  %xmm2,%xmm1
movapd %xmm12,%xmm6
subsd  %xmm13,%xmm6
xorpd  0x93a(%rip),%xmm6
jae    1b37 <ccw_tri_tri_intersection_2d+0xa37>
mulsd  %xmm6,%xmm7
mulsd  %xmm3,%xmm1
addsd  %xmm7,%xmm1
ucomisd %xmm1,%xmm4
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
movsd  (%rdx),%xmm1
movsd  0x8(%rdx),%xmm0
subsd  %xmm1,%xmm11
movsd  -0x30(%rsp),%xmm6
movapd %xmm6,%xmm4
subsd  %xmm0,%xmm4
mulsd  %xmm11,%xmm4
subsd  %xmm0,%xmm14
movapd %xmm10,%xmm3
subsd  %xmm1,%xmm3
mulsd  %xmm14,%xmm3
subsd  %xmm3,%xmm4
xorpd  %xmm3,%xmm3
ucomisd %xmm4,%xmm3
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
subsd  %xmm10,%xmm2
subsd  %xmm6,%xmm0
mulsd  %xmm2,%xmm0
subsd  %xmm6,%xmm13
subsd  %xmm10,%xmm1
jmp    1d75 <ccw_tri_tri_intersection_2d+0xc75>
movapd %xmm11,%xmm5
subsd  %xmm1,%xmm5
movsd  0x8(%rsi),%xmm2
movapd %xmm9,%xmm0
subsd  %xmm2,%xmm0
movapd %xmm14,%xmm3
subsd  %xmm2,%xmm3
movapd %xmm15,%xmm4
subsd  %xmm1,%xmm4
mulsd  %xmm4,%xmm3
mulsd  %xmm0,%xmm5
subsd  %xmm3,%xmm5
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm5
jae    1b62 <ccw_tri_tri_intersection_2d+0xa62>
movsd  (%rdx),%xmm0
movsd  0x8(%rdx),%xmm4
movapd %xmm11,%xmm5
subsd  %xmm0,%xmm5
subsd  %xmm4,%xmm9
movapd %xmm14,%xmm6
subsd  %xmm4,%xmm6
subsd  %xmm0,%xmm15
mulsd  %xmm15,%xmm6
mulsd  %xmm9,%xmm5
subsd  %xmm6,%xmm5
ucomisd %xmm3,%xmm5
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
movapd %xmm8,%xmm5
subsd  %xmm0,%xmm5
movapd %xmm12,%xmm3
subsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm15
mulsd  %xmm9,%xmm5
subsd  %xmm15,%xmm5
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm5
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
subsd  %xmm11,%xmm8
subsd  %xmm14,%xmm4
subsd  %xmm14,%xmm12
subsd  %xmm11,%xmm0
mulsd  %xmm0,%xmm12
mulsd  %xmm4,%xmm8
subsd  %xmm12,%xmm8
mov    $0x1,%al
ucomisd %xmm3,%xmm8
jae    1f05 <ccw_tri_tri_intersection_2d+0xe05>
subsd  %xmm11,%xmm1
subsd  %xmm14,%xmm2
mulsd  %xmm2,%xmm0
mulsd  %xmm4,%xmm1
subsd  %xmm0,%xmm1
jmp    1dd7 <ccw_tri_tri_intersection_2d+0xcd7>
ucomisd %xmm3,%xmm4
jae    1be3 <ccw_tri_tri_intersection_2d+0xae3>
movsd  (%rdx),%xmm0
movsd  0x8(%rdx),%xmm2
movapd %xmm13,%xmm4
subsd  %xmm0,%xmm4
subsd  %xmm2,%xmm14
movapd %xmm6,%xmm7
subsd  %xmm2,%xmm6
subsd  %xmm0,%xmm11
mulsd  %xmm11,%xmm6
mulsd  %xmm14,%xmm4
subsd  %xmm6,%xmm4
ucomisd %xmm3,%xmm4
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
movapd %xmm8,%xmm4
subsd  %xmm0,%xmm4
movapd %xmm12,%xmm3
subsd  %xmm2,%xmm3
mulsd  %xmm3,%xmm11
mulsd  %xmm14,%xmm4
subsd  %xmm11,%xmm4
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm4
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
subsd  %xmm13,%xmm8
subsd  %xmm7,%xmm2
subsd  %xmm7,%xmm12
subsd  %xmm13,%xmm0
mulsd  %xmm0,%xmm12
mulsd  %xmm2,%xmm8
subsd  %xmm12,%xmm8
mov    $0x1,%al
ucomisd %xmm3,%xmm8
jae    1f05 <ccw_tri_tri_intersection_2d+0xe05>
movapd %xmm7,%xmm4
subsd  %xmm13,%xmm5
subsd  %xmm7,%xmm1
mulsd  %xmm1,%xmm0
mulsd  %xmm2,%xmm5
subsd  %xmm0,%xmm5
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm5
jmp    1f02 <ccw_tri_tri_intersection_2d+0xe02>
movsd  %xmm1,-0x30(%rsp)
movapd %xmm7,-0x18(%rsp)
xorpd  0x6e3(%rip),%xmm13
movapd %xmm14,%xmm7
subsd  %xmm4,%xmm7
movapd %xmm11,%xmm5
subsd  %xmm12,%xmm5
mulsd  %xmm5,%xmm13
mulsd  %xmm7,%xmm3
addsd  %xmm13,%xmm3
ucomisd %xmm3,%xmm10
movapd %xmm8,%xmm3
subsd  %xmm12,%xmm3
movapd -0x28(%rsp),%xmm6
subsd  %xmm4,%xmm6
xorpd  0x6a1(%rip),%xmm6
jae    1c8b <ccw_tri_tri_intersection_2d+0xb8b>
mulsd  %xmm6,%xmm5
mulsd  %xmm7,%xmm3
addsd  %xmm5,%xmm3
xorpd  %xmm5,%xmm5
ucomisd %xmm3,%xmm5
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
movsd  (%rdx),%xmm2
movsd  0x8(%rdx),%xmm0
subsd  %xmm2,%xmm15
movapd %xmm14,%xmm3
subsd  %xmm0,%xmm3
mulsd  %xmm15,%xmm3
subsd  %xmm0,%xmm9
movapd %xmm11,%xmm6
subsd  %xmm2,%xmm6
mulsd  %xmm9,%xmm6
subsd  %xmm6,%xmm3
ucomisd %xmm3,%xmm5
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
subsd  %xmm11,%xmm12
subsd  %xmm14,%xmm0
mulsd  %xmm12,%xmm0
subsd  %xmm14,%xmm4
subsd  %xmm11,%xmm2
jmp    1e95 <ccw_tri_tri_intersection_2d+0xd95>
movsd  %xmm6,-0x30(%rsp)
xorpd  0x617(%rip),%xmm10
movapd %xmm9,-0x28(%rsp)
subsd  %xmm1,%xmm9
movapd %xmm15,%xmm4
subsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm10
mulsd  %xmm9,%xmm7
addsd  %xmm10,%xmm7
ucomisd %xmm7,%xmm3
movapd %xmm8,%xmm3
subsd  %xmm5,%xmm3
movapd %xmm12,%xmm6
subsd  %xmm1,%xmm6
xorpd  0x5d5(%rip),%xmm6
jae    1cbd <ccw_tri_tri_intersection_2d+0xbbd>
movapd -0x28(%rsp),%xmm7
mulsd  %xmm6,%xmm4
mulsd  %xmm9,%xmm3
addsd  %xmm4,%xmm3
xorpd  %xmm8,%xmm8
ucomisd %xmm3,%xmm8
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
movsd  (%rdx),%xmm2
movsd  0x8(%rdx),%xmm0
subsd  %xmm2,%xmm13
movapd %xmm7,%xmm4
movapd %xmm7,%xmm3
subsd  %xmm0,%xmm3
mulsd  %xmm13,%xmm3
movsd  -0x30(%rsp),%xmm7
subsd  %xmm0,%xmm7
movapd %xmm15,%xmm6
subsd  %xmm2,%xmm6
mulsd  %xmm7,%xmm6
subsd  %xmm6,%xmm3
ucomisd %xmm3,%xmm8
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
subsd  %xmm15,%xmm5
subsd  %xmm4,%xmm0
mulsd  %xmm5,%xmm0
subsd  %xmm4,%xmm1
subsd  %xmm15,%xmm2
jmp    1ef2 <ccw_tri_tri_intersection_2d+0xdf2>
movapd %xmm6,%xmm7
movapd %xmm8,%xmm5
subsd  %xmm2,%xmm5
movapd %xmm12,%xmm6
subsd  %xmm4,%xmm6
mulsd  %xmm6,%xmm3
mulsd  %xmm0,%xmm5
subsd  %xmm3,%xmm5
ucomisd %xmm1,%xmm5
jae    1ced <ccw_tri_tri_intersection_2d+0xbed>
subsd  %xmm10,%xmm2
movsd  (%rdx),%xmm0
movsd  0x8(%rdx),%xmm1
subsd  %xmm7,%xmm1
subsd  %xmm7,%xmm4
subsd  %xmm10,%xmm0
mulsd  %xmm0,%xmm4
mulsd  %xmm1,%xmm2
subsd  %xmm4,%xmm2
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm2
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
subsd  %xmm7,%xmm12
subsd  %xmm10,%xmm8
mulsd  %xmm1,%xmm8
mulsd  %xmm12,%xmm0
subsd  %xmm8,%xmm0
ucomisd %xmm3,%xmm0
jmp    1f02 <ccw_tri_tri_intersection_2d+0xe02>
mulsd  %xmm6,%xmm5
mulsd  %xmm1,%xmm0
addsd  %xmm5,%xmm0
ucomisd %xmm4,%xmm0
jbe    1d1c <ccw_tri_tri_intersection_2d+0xc1c>
mulsd  %xmm6,%xmm7
mulsd  %xmm3,%xmm1
addsd  %xmm7,%xmm1
xorpd  %xmm0,%xmm0
jmp    1efe <ccw_tri_tri_intersection_2d+0xdfe>
movapd %xmm8,%xmm5
subsd  %xmm1,%xmm5
movapd %xmm12,%xmm6
subsd  %xmm2,%xmm6
mulsd  %xmm6,%xmm4
mulsd  %xmm0,%xmm5
subsd  %xmm4,%xmm5
ucomisd %xmm3,%xmm5
jae    1d87 <ccw_tri_tri_intersection_2d+0xc87>
subsd  %xmm15,%xmm1
movsd  (%rdx),%xmm0
movsd  0x8(%rdx),%xmm3
subsd  %xmm9,%xmm3
subsd  %xmm9,%xmm2
subsd  %xmm15,%xmm0
mulsd  %xmm0,%xmm2
mulsd  %xmm3,%xmm1
subsd  %xmm2,%xmm1
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm1
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
subsd  %xmm9,%xmm12
subsd  %xmm15,%xmm8
mulsd  %xmm3,%xmm8
mulsd  %xmm12,%xmm0
subsd  %xmm8,%xmm0
ucomisd %xmm2,%xmm0
jmp    1f02 <ccw_tri_tri_intersection_2d+0xe02>
movapd %xmm6,%xmm7
movapd %xmm8,%xmm4
subsd  %xmm5,%xmm4
movapd %xmm12,%xmm6
subsd  %xmm1,%xmm6
mulsd  %xmm6,%xmm2
mulsd  %xmm0,%xmm4
subsd  %xmm2,%xmm4
ucomisd %xmm3,%xmm4
jae    1db6 <ccw_tri_tri_intersection_2d+0xcb6>
subsd  %xmm11,%xmm5
movsd  (%rdx),%xmm0
movsd  0x8(%rdx),%xmm2
subsd  %xmm14,%xmm2
subsd  %xmm14,%xmm1
subsd  %xmm11,%xmm0
mulsd  %xmm0,%xmm1
mulsd  %xmm2,%xmm5
subsd  %xmm1,%xmm5
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm5
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
subsd  %xmm14,%xmm12
subsd  %xmm11,%xmm8
mulsd  %xmm2,%xmm8
mulsd  %xmm12,%xmm0
subsd  %xmm8,%xmm0
jmp    1efe <ccw_tri_tri_intersection_2d+0xdfe>
subsd  %xmm0,%xmm8
subsd  %xmm5,%xmm12
mulsd  %xmm12,%xmm15
mulsd  %xmm9,%xmm8
subsd  %xmm15,%xmm8
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm8
jmp    1f02 <ccw_tri_tri_intersection_2d+0xe02>
mulsd  %xmm6,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
xorpd  %xmm9,%xmm9
ucomisd %xmm9,%xmm0
jbe    1e33 <ccw_tri_tri_intersection_2d+0xd33>
mulsd  %xmm6,%xmm5
mulsd  %xmm7,%xmm3
addsd  %xmm5,%xmm3
ucomisd %xmm3,%xmm9
jmp    1f02 <ccw_tri_tri_intersection_2d+0xe02>
mulsd  %xmm6,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
xorpd  %xmm7,%xmm7
ucomisd %xmm7,%xmm0
jbe    1e9b <ccw_tri_tri_intersection_2d+0xd9b>
mulsd  %xmm6,%xmm4
mulsd  %xmm9,%xmm3
addsd  %xmm4,%xmm3
ucomisd %xmm3,%xmm7
jmp    1f02 <ccw_tri_tri_intersection_2d+0xe02>
subsd  %xmm15,%xmm8
subsd  %xmm9,%xmm4
mulsd  %xmm8,%xmm4
subsd  %xmm9,%xmm12
subsd  %xmm15,%xmm2
mulsd  %xmm12,%xmm2
subsd  %xmm2,%xmm4
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm4
jmp    1f02 <ccw_tri_tri_intersection_2d+0xe02>
movsd  (%rdx),%xmm1
movsd  0x8(%rdx),%xmm0
subsd  %xmm1,%xmm8
movapd %xmm9,%xmm4
subsd  %xmm0,%xmm4
mulsd  %xmm8,%xmm4
subsd  %xmm0,%xmm12
movapd %xmm15,%xmm3
subsd  %xmm1,%xmm3
mulsd  %xmm12,%xmm3
subsd  %xmm3,%xmm4
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm4
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
subsd  %xmm15,%xmm2
subsd  %xmm9,%xmm0
mulsd  %xmm2,%xmm0
subsd  %xmm9,%xmm13
subsd  %xmm15,%xmm1
mulsd  %xmm13,%xmm1
subsd  %xmm1,%xmm0
ucomisd %xmm3,%xmm0
jmp    1f02 <ccw_tri_tri_intersection_2d+0xe02>
subsd  %xmm11,%xmm8
subsd  %xmm14,%xmm2
mulsd  %xmm8,%xmm2
subsd  %xmm14,%xmm12
subsd  %xmm11,%xmm1
mulsd  %xmm12,%xmm1
subsd  %xmm1,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
jmp    1f02 <ccw_tri_tri_intersection_2d+0xe02>
subsd  %xmm13,%xmm8
subsd  %xmm7,%xmm1
mulsd  %xmm8,%xmm1
subsd  %xmm7,%xmm12
subsd  %xmm13,%xmm5
mulsd  %xmm12,%xmm5
subsd  %xmm5,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
jmp    1f02 <ccw_tri_tri_intersection_2d+0xe02>
movapd %xmm1,%xmm10
subsd  %xmm0,%xmm8
movapd -0x28(%rsp),%xmm0
subsd  %xmm2,%xmm0
mulsd  %xmm0,%xmm7
mulsd  %xmm1,%xmm8
subsd  %xmm7,%xmm8
ucomisd %xmm3,%xmm8
jmp    1f02 <ccw_tri_tri_intersection_2d+0xe02>
subsd  %xmm0,%xmm8
subsd  %xmm2,%xmm12
mulsd  %xmm12,%xmm11
mulsd  %xmm14,%xmm8
subsd  %xmm11,%xmm8
ucomisd %xmm3,%xmm8
jmp    1f02 <ccw_tri_tri_intersection_2d+0xe02>
movsd  (%rdx),%xmm2
movsd  0x8(%rdx),%xmm0
subsd  %xmm2,%xmm8
movsd  -0x30(%rsp),%xmm10
movapd %xmm10,%xmm3
subsd  %xmm0,%xmm3
mulsd  %xmm8,%xmm3
movapd -0x28(%rsp),%xmm7
subsd  %xmm0,%xmm7
movapd -0x18(%rsp),%xmm6
movapd %xmm6,%xmm5
subsd  %xmm2,%xmm5
mulsd  %xmm7,%xmm5
subsd  %xmm5,%xmm3
ucomisd %xmm9,%xmm3
jb     1ed4 <ccw_tri_tri_intersection_2d+0xdd4>
subsd  %xmm6,%xmm12
subsd  %xmm10,%xmm0
mulsd  %xmm12,%xmm0
subsd  %xmm10,%xmm4
subsd  %xmm6,%xmm2
mulsd  %xmm4,%xmm2
jmp    1ef6 <ccw_tri_tri_intersection_2d+0xdf6>
movsd  (%rdx),%xmm2
movsd  0x8(%rdx),%xmm0
subsd  %xmm2,%xmm8
movapd %xmm14,%xmm3
subsd  %xmm0,%xmm3
mulsd  %xmm8,%xmm3
subsd  %xmm0,%xmm12
movapd %xmm11,%xmm4
subsd  %xmm2,%xmm4
mulsd  %xmm12,%xmm4
subsd  %xmm4,%xmm3
ucomisd %xmm7,%xmm3
jae    1eda <ccw_tri_tri_intersection_2d+0xdda>
xor    %eax,%eax
movzbl %al,%eax
ret
subsd  %xmm11,%xmm5
subsd  %xmm14,%xmm0
mulsd  %xmm5,%xmm0
subsd  %xmm14,%xmm1
subsd  %xmm11,%xmm2
mulsd  %xmm1,%xmm2
subsd  %xmm2,%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
setae  %al
movzbl %al,%eax
ret

LLVM IR (-O0):
define i32 @ccw_tri_tri_intersection_2d(double* %0, double* %1, double* %2, double* %3, double* %4, double* %5) {
%7 = alloca i32
%8 = alloca double*
%9 = alloca double*
%10 = alloca double*
%11 = alloca double*
%12 = alloca double*
%13 = alloca double*
store double* %0, double** %8
store double* %1, double** %9
store double* %2, double** %10
store double* %3, double** %11
store double* %4, double** %12
store double* %5, double** %13
%14 = load double*, double** %11
%15 = getelementptr inbounds double, double* %14, i64 0
%16 = load double, double* %15
%17 = load double*, double** %8
%18 = getelementptr inbounds double, double* %17, i64 0
%19 = load double, double* %18
%20 = fsub double %16, %19
%21 = load double*, double** %12
%22 = getelementptr inbounds double, double* %21, i64 1
%23 = load double, double* %22
%24 = load double*, double** %8
%25 = getelementptr inbounds double, double* %24, i64 1
%26 = load double, double* %25
%27 = fsub double %23, %26
%28 = load double*, double** %11
%29 = getelementptr inbounds double, double* %28, i64 1
%30 = load double, double* %29
%31 = load double*, double** %8
%32 = getelementptr inbounds double, double* %31, i64 1
%33 = load double, double* %32
%34 = fsub double %30, %33
%35 = load double*, double** %12
%36 = getelementptr inbounds double, double* %35, i64 0
%37 = load double, double* %36
%38 = load double*, double** %8
%39 = getelementptr inbounds double, double* %38, i64 0
%40 = load double, double* %39
%41 = fsub double %37, %40
%42 = fmul double %34, %41
%43 = fneg double %42
%44 = call double @llvm.fmuladd.f64(double %20, double %27, double %43)
%45 = fcmp oge double %44, 0.000000e+00
br i1 %45, label %46, label %1237
46: ; preds = %6
%47 = load double*, double** %12
%48 = getelementptr inbounds double, double* %47, i64 0
%49 = load double, double* %48
%50 = load double*, double** %8
%51 = getelementptr inbounds double, double* %50, i64 0
%52 = load double, double* %51
%53 = fsub double %49, %52
%54 = load double*, double** %13
%55 = getelementptr inbounds double, double* %54, i64 1
%56 = load double, double* %55
%57 = load double*, double** %8
%58 = getelementptr inbounds double, double* %57, i64 1
%59 = load double, double* %58
%60 = fsub double %56, %59
%61 = load double*, double** %12
%62 = getelementptr inbounds double, double* %61, i64 1
%63 = load double, double* %62
%64 = load double*, double** %8
%65 = getelementptr inbounds double, double* %64, i64 1
%66 = load double, double* %65
%67 = fsub double %63, %66
%68 = load double*, double** %13
%69 = getelementptr inbounds double, double* %68, i64 0
%70 = load double, double* %69
%71 = load double*, double** %8
%72 = getelementptr inbounds double, double* %71, i64 0
%73 = load double, double* %72
%74 = fsub double %70, %73
%75 = fmul double %67, %74
%76 = fneg double %75
%77 = call double @llvm.fmuladd.f64(double %53, double %60, double %76)
%78 = fcmp oge double %77, 0.000000e+00
br i1 %78, label %79, label %420
79: ; preds = %46
%80 = load double*, double** %13
%81 = getelementptr inbounds double, double* %80, i64 0
%82 = load double, double* %81
%83 = load double*, double** %8
%84 = getelementptr inbounds double, double* %83, i64 0
%85 = load double, double* %84
%86 = fsub double %82, %85
%87 = load double*, double** %11
%88 = getelementptr inbounds double, double* %87, i64 1
%89 = load double, double* %88
%90 = load double*, double** %8
%91 = getelementptr inbounds double, double* %90, i64 1
%92 = load double, double* %91
%93 = fsub double %89, %92
%94 = load double*, double** %13
%95 = getelementptr inbounds double, double* %94, i64 1
%96 = load double, double* %95
%97 = load double*, double** %8
%98 = getelementptr inbounds double, double* %97, i64 1
%99 = load double, double* %98
%100 = fsub double %96, %99
%101 = load double*, double** %11
%102 = getelementptr inbounds double, double* %101, i64 0
%103 = load double, double* %102
%104 = load double*, double** %8
%105 = getelementptr inbounds double, double* %104, i64 0
%106 = load double, double* %105
%107 = fsub double %103, %106
%108 = fmul double %100, %107
%109 = fneg double %108
%110 = call double @llvm.fmuladd.f64(double %86, double %93, double %109)
%111 = fcmp oge double %110, 0.000000e+00
br i1 %111, label %112, label %113
112: ; preds = %79
store i32 1, i32* %7
br label %2564
113: ; preds = %79
%114 = load double*, double** %13
%115 = getelementptr inbounds double, double* %114, i64 0
%116 = load double, double* %115
%117 = load double*, double** %9
%118 = getelementptr inbounds double, double* %117, i64 0
%119 = load double, double* %118
%120 = fsub double %116, %119
%121 = load double*, double** %11
%122 = getelementptr inbounds double, double* %121, i64 1
%123 = load double, double* %122
%124 = load double*, double** %9
%125 = getelementptr inbounds double, double* %124, i64 1
%126 = load double, double* %125
%127 = fsub double %123, %126
%128 = load double*, double** %13
%129 = getelementptr inbounds double, double* %128, i64 1
%130 = load double, double* %129
%131 = load double*, double** %9
%132 = getelementptr inbounds double, double* %131, i64 1
%133 = load double, double* %132
%134 = fsub double %130, %133
%135 = load double*, double** %11
%136 = getelementptr inbounds double, double* %135, i64 0
%137 = load double, double* %136
%138 = load double*, double** %9
%139 = getelementptr inbounds double, double* %138, i64 0
%140 = load double, double* %139
%141 = fsub double %137, %140
%142 = fmul double %134, %141
%143 = fneg double %142
%144 = call double @llvm.fmuladd.f64(double %120, double %127, double %143)
%145 = fcmp oge double %144, 0.000000e+00
br i1 %145, label %146, label %283
146: ; preds = %113
%147 = load double*, double** %8
%148 = getelementptr inbounds double, double* %147, i64 0
%149 = load double, double* %148
%150 = load double*, double** %9
%151 = getelementptr inbounds double, double* %150, i64 0
%152 = load double, double* %151
%153 = fsub double %149, %152
%154 = load double*, double** %11
%155 = getelementptr inbounds double, double* %154, i64 1
%156 = load double, double* %155
%157 = load double*, double** %9
%158 = getelementptr inbounds double, double* %157, i64 1
%159 = load double, double* %158
%160 = fsub double %156, %159
%161 = load double*, double** %8
%162 = getelementptr inbounds double, double* %161, i64 1
%163 = load double, double* %162
%164 = load double*, double** %9
%165 = getelementptr inbounds double, double* %164, i64 1
%166 = load double, double* %165
%167 = fsub double %163, %166
%168 = load double*, double** %11
%169 = getelementptr inbounds double, double* %168, i64 0
%170 = load double, double* %169
%171 = load double*, double** %9
%172 = getelementptr inbounds double, double* %171, i64 0
%173 = load double, double* %172
%174 = fsub double %170, %173
%175 = fmul double %167, %174
%176 = fneg double %175
%177 = call double @llvm.fmuladd.f64(double %153, double %160, double %176)
%178 = fcmp oge double %177, 0.000000e+00
br i1 %178, label %179, label %214
179: ; preds = %146
%180 = load double*, double** %8
%181 = getelementptr inbounds double, double* %180, i64 0
%182 = load double, double* %181
%183 = load double*, double** %13
%184 = getelementptr inbounds double, double* %183, i64 0
%185 = load double, double* %184
%186 = fsub double %182, %185
%187 = load double*, double** %9
%188 = getelementptr inbounds double, double* %187, i64 1
%189 = load double, double* %188
%190 = load double*, double** %13
%191 = getelementptr inbounds double, double* %190, i64 1
%192 = load double, double* %191
%193 = fsub double %189, %192
%194 = load double*, double** %8
%195 = getelementptr inbounds double, double* %194, i64 1
%196 = load double, double* %195
%197 = load double*, double** %13
%198 = getelementptr inbounds double, double* %197, i64 1
%199 = load double, double* %198
%200 = fsub double %196, %199
%201 = load double*, double** %9
%202 = getelementptr inbounds double, double* %201, i64 0
%203 = load double, double* %202
%204 = load double*, double** %13
%205 = getelementptr inbounds double, double* %204, i64 0
%206 = load double, double* %205
%207 = fsub double %203, %206
%208 = fmul double %200, %207
%209 = fneg double %208
%210 = call double @llvm.fmuladd.f64(double %186, double %193, double %209)
%211 = fcmp oge double %210, 0.000000e+00
br i1 %211, label %212, label %213
212: ; preds = %179
store i32 1, i32* %7
br label %2564
213: ; preds = %179
store i32 0, i32* %7
br label %2564
214: ; preds = %146
%215 = load double*, double** %9
%216 = getelementptr inbounds double, double* %215, i64 0
%217 = load double, double* %216
%218 = load double*, double** %11
%219 = getelementptr inbounds double, double* %218, i64 0
%220 = load double, double* %219
%221 = fsub double %217, %220
%222 = load double*, double** %10
%223 = getelementptr inbounds double, double* %222, i64 1
%224 = load double, double* %223
%225 = load double*, double** %11
%226 = getelementptr inbounds double, double* %225, i64 1
%227 = load double, double* %226
%228 = fsub double %224, %227
%229 = load double*, double** %9
%230 = getelementptr inbounds double, double* %229, i64 1
%231 = load double, double* %230
%232 = load double*, double** %11
%233 = getelementptr inbounds double, double* %232, i64 1
%234 = load double, double* %233
%235 = fsub double %231, %234
%236 = load double*, double** %10
%237 = getelementptr inbounds double, double* %236, i64 0
%238 = load double, double* %237
%239 = load double*, double** %11
%240 = getelementptr inbounds double, double* %239, i64 0
%241 = load double, double* %240
%242 = fsub double %238, %241
%243 = fmul double %235, %242
%244 = fneg double %243
%245 = call double @llvm.fmuladd.f64(double %221, double %228, double %244)
%246 = fcmp oge double %245, 0.000000e+00
br i1 %246, label %247, label %282
247: ; preds = %214
%248 = load double*, double** %10
%249 = getelementptr inbounds double, double* %248, i64 0
%250 = load double, double* %249
%251 = load double*, double** %11
%252 = getelementptr inbounds double, double* %251, i64 0
%253 = load double, double* %252
%254 = fsub double %250, %253
%255 = load double*, double** %8
%256 = getelementptr inbounds double, double* %255, i64 1
%257 = load double, double* %256
%258 = load double*, double** %11
%259 = getelementptr inbounds double, double* %258, i64 1
%260 = load double, double* %259
%261 = fsub double %257, %260
%262 = load double*, double** %10
%263 = getelementptr inbounds double, double* %262, i64 1
%264 = load double, double* %263
%265 = load double*, double** %11
%266 = getelementptr inbounds double, double* %265, i64 1
%267 = load double, double* %266
%268 = fsub double %264, %267
%269 = load double*, double** %8
%270 = getelementptr inbounds double, double* %269, i64 0
%271 = load double, double* %270
%272 = load double*, double** %11
%273 = getelementptr inbounds double, double* %272, i64 0
%274 = load double, double* %273
%275 = fsub double %271, %274
%276 = fmul double %268, %275
%277 = fneg double %276
%278 = call double @llvm.fmuladd.f64(double %254, double %261, double %277)
%279 = fcmp oge double %278, 0.000000e+00
br i1 %279, label %280, label %281
280: ; preds = %247
store i32 1, i32* %7
br label %2564
281: ; preds = %247
store i32 0, i32* %7
br label %2564
282: ; preds = %214
store i32 0, i32* %7
br label %2564
283: ; preds = %113
%284 = load double*, double** %13
%285 = getelementptr inbounds double, double* %284, i64 0
%286 = load double, double* %285
%287 = load double*, double** %10
%288 = getelementptr inbounds double, double* %287, i64 0
%289 = load double, double* %288
%290 = fsub double %286, %289
%291 = load double*, double** %11
%292 = getelementptr inbounds double, double* %291, i64 1
%293 = load double, double* %292
%294 = load double*, double** %10
%295 = getelementptr inbounds double, double* %294, i64 1
%296 = load double, double* %295
%297 = fsub double %293, %296
%298 = load double*, double** %13
%299 = getelementptr inbounds double, double* %298, i64 1
%300 = load double, double* %299
%301 = load double*, double** %10
%302 = getelementptr inbounds double, double* %301, i64 1
%303 = load double, double* %302
%304 = fsub double %300, %303
%305 = load double*, double** %11
%306 = getelementptr inbounds double, double* %305, i64 0
%307 = load double, double* %306
%308 = load double*, double** %10
%309 = getelementptr inbounds double, double* %308, i64 0
%310 = load double, double* %309
%311 = fsub double %307, %310
%312 = fmul double %304, %311
%313 = fneg double %312
%314 = call double @llvm.fmuladd.f64(double %290, double %297, double %313)
%315 = fcmp oge double %314, 0.000000e+00
br i1 %315, label %316, label %419
316: ; preds = %283
%317 = load double*, double** %8
%318 = getelementptr inbounds double, double* %317, i64 0
%319 = load double, double* %318
%320 = load double*, double** %10
%321 = getelementptr inbounds double, double* %320, i64 0
%322 = load double, double* %321
%323 = fsub double %319, %322
%324 = load double*, double** %11
%325 = getelementptr inbounds double, double* %324, i64 1
%326 = load double, double* %325
%327 = load double*, double** %10
%328 = getelementptr inbounds double, double* %327, i64 1
%329 = load double, double* %328
%330 = fsub double %326, %329
%331 = load double*, double** %8
%332 = getelementptr inbounds double, double* %331, i64 1
%333 = load double, double* %332
%334 = load double*, double** %10
%335 = getelementptr inbounds double, double* %334, i64 1
%336 = load double, double* %335
%337 = fsub double %333, %336
%338 = load double*, double** %11
%339 = getelementptr inbounds double, double* %338, i64 0
%340 = load double, double* %339
%341 = load double*, double** %10
%342 = getelementptr inbounds double, double* %341, i64 0
%343 = load double, double* %342
%344 = fsub double %340, %343
%345 = fmul double %337, %344
%346 = fneg double %345
%347 = call double @llvm.fmuladd.f64(double %323, double %330, double %346)
%348 = fcmp oge double %347, 0.000000e+00
br i1 %348, label %349, label %418
349: ; preds = %316
%350 = load double*, double** %8
%351 = getelementptr inbounds double, double* %350, i64 0
%352 = load double, double* %351
%353 = load double*, double** %13
%354 = getelementptr inbounds double, double* %353, i64 0
%355 = load double, double* %354
%356 = fsub double %352, %355
%357 = load double*, double** %10
%358 = getelementptr inbounds double, double* %357, i64 1
%359 = load double, double* %358
%360 = load double*, double** %13
%361 = getelementptr inbounds double, double* %360, i64 1
%362 = load double, double* %361
%363 = fsub double %359, %362
%364 = load double*, double** %8
%365 = getelementptr inbounds double, double* %364, i64 1
%366 = load double, double* %365
%367 = load double*, double** %13
%368 = getelementptr inbounds double, double* %367, i64 1
%369 = load double, double* %368
%370 = fsub double %366, %369
%371 = load double*, double** %10
%372 = getelementptr inbounds double, double* %371, i64 0
%373 = load double, double* %372
%374 = load double*, double** %13
%375 = getelementptr inbounds double, double* %374, i64 0
%376 = load double, double* %375
%377 = fsub double %373, %376
%378 = fmul double %370, %377
%379 = fneg double %378
%380 = call double @llvm.fmuladd.f64(double %356, double %363, double %379)
%381 = fcmp oge double %380, 0.000000e+00
br i1 %381, label %382, label %383
382: ; preds = %349
store i32 1, i32* %7
br label %2564
383: ; preds = %349
%384 = load double*, double** %9
%385 = getelementptr inbounds double, double* %384, i64 0
%386 = load double, double* %385
%387 = load double*, double** %13
%388 = getelementptr inbounds double, double* %387, i64 0
%389 = load double, double* %388
%390 = fsub double %386, %389
%391 = load double*, double** %10
%392 = getelementptr inbounds double, double* %391, i64 1
%393 = load double, double* %392
%394 = load double*, double** %13
%395 = getelementptr inbounds double, double* %394, i64 1
%396 = load double, double* %395
%397 = fsub double %393, %396
%398 = load double*, double** %9
%399 = getelementptr inbounds double, double* %398, i64 1
%400 = load double, double* %399
%401 = load double*, double** %13
%402 = getelementptr inbounds double, double* %401, i64 1
%403 = load double, double* %402
%404 = fsub double %400, %403
%405 = load double*, double** %10
%406 = getelementptr inbounds double, double* %405, i64 0
%407 = load double, double* %406
%408 = load double*, double** %13
%409 = getelementptr inbounds double, double* %408, i64 0
%410 = load double, double* %409
%411 = fsub double %407, %410
%412 = fmul double %404, %411
%413 = fneg double %412
%414 = call double @llvm.fmuladd.f64(double %390, double %397, double %413)
%415 = fcmp oge double %414, 0.000000e+00
br i1 %415, label %416, label %417
416: ; preds = %383
store i32 1, i32* %7
br label %2564
417: ; preds = %383
store i32 0, i32* %7
br label %2564
418: ; preds = %316
store i32 0, i32* %7
br label %2564
419: ; preds = %283
store i32 0, i32* %7
br label %2564
420: ; preds = %46
%421 = load double*, double** %13
%422 = getelementptr inbounds double, double* %421, i64 0
%423 = load double, double* %422
%424 = load double*, double** %8
%425 = getelementptr inbounds double, double* %424, i64 0
%426 = load double, double* %425
%427 = fsub double %423, %426
%428 = load double*, double** %11
%429 = getelementptr inbounds double, double* %428, i64 1
%430 = load double, double* %429
%431 = load double*, double** %8
%432 = getelementptr inbounds double, double* %431, i64 1
%433 = load double, double* %432
%434 = fsub double %430, %433
%435 = load double*, double** %13
%436 = getelementptr inbounds double, double* %435, i64 1
%437 = load double, double* %436
%438 = load double*, double** %8
%439 = getelementptr inbounds double, double* %438, i64 1
%440 = load double, double* %439
%441 = fsub double %437, %440
%442 = load double*, double** %11
%443 = getelementptr inbounds double, double* %442, i64 0
%444 = load double, double* %443
%445 = load double*, double** %8
%446 = getelementptr inbounds double, double* %445, i64 0
%447 = load double, double* %446
%448 = fsub double %444, %447
%449 = fmul double %441, %448
%450 = fneg double %449
%451 = call double @llvm.fmuladd.f64(double %427, double %434, double %450)
%452 = fcmp oge double %451, 0.000000e+00
br i1 %452, label %453, label %760
453: ; preds = %420
%454 = load double*, double** %12
%455 = getelementptr inbounds double, double* %454, i64 0
%456 = load double, double* %455
%457 = load double*, double** %9
%458 = getelementptr inbounds double, double* %457, i64 0
%459 = load double, double* %458
%460 = fsub double %456, %459
%461 = load double*, double** %13
%462 = getelementptr inbounds double, double* %461, i64 1
%463 = load double, double* %462
%464 = load double*, double** %9
%465 = getelementptr inbounds double, double* %464, i64 1
%466 = load double, double* %465
%467 = fsub double %463, %466
%468 = load double*, double** %12
%469 = getelementptr inbounds double, double* %468, i64 1
%470 = load double, double* %469
%471 = load double*, double** %9
%472 = getelementptr inbounds double, double* %471, i64 1
%473 = load double, double* %472
%474 = fsub double %470, %473
%475 = load double*, double** %13
%476 = getelementptr inbounds double, double* %475, i64 0
%477 = load double, double* %476
%478 = load double*, double** %9
%479 = getelementptr inbounds double, double* %478, i64 0
%480 = load double, double* %479
%481 = fsub double %477, %480
%482 = fmul double %474, %481
%483 = fneg double %482
%484 = call double @llvm.fmuladd.f64(double %460, double %467, double %483)
%485 = fcmp oge double %484, 0.000000e+00
br i1 %485, label %486, label %623
486: ; preds = %453
%487 = load double*, double** %8
%488 = getelementptr inbounds double, double* %487, i64 0
%489 = load double, double* %488
%490 = load double*, double** %9
%491 = getelementptr inbounds double, double* %490, i64 0
%492 = load double, double* %491
%493 = fsub double %489, %492
%494 = load double*, double** %13
%495 = getelementptr inbounds double, double* %494, i64 1
%496 = load double, double* %495
%497 = load double*, double** %9
%498 = getelementptr inbounds double, double* %497, i64 1
%499 = load double, double* %498
%500 = fsub double %496, %499
%501 = load double*, double** %8
%502 = getelementptr inbounds double, double* %501, i64 1
%503 = load double, double* %502
%504 = load double*, double** %9
%505 = getelementptr inbounds double, double* %504, i64 1
%506 = load double, double* %505
%507 = fsub double %503, %506
%508 = load double*, double** %13
%509 = getelementptr inbounds double, double* %508, i64 0
%510 = load double, double* %509
%511 = load double*, double** %9
%512 = getelementptr inbounds double, double* %511, i64 0
%513 = load double, double* %512
%514 = fsub double %510, %513
%515 = fmul double %507, %514
%516 = fneg double %515
%517 = call double @llvm.fmuladd.f64(double %493, double %500, double %516)
%518 = fcmp oge double %517, 0.000000e+00
br i1 %518, label %519, label %554
519: ; preds = %486
%520 = load double*, double** %8
%521 = getelementptr inbounds double, double* %520, i64 0
%522 = load double, double* %521
%523 = load double*, double** %12
%524 = getelementptr inbounds double, double* %523, i64 0
%525 = load double, double* %524
%526 = fsub double %522, %525
%527 = load double*, double** %9
%528 = getelementptr inbounds double, double* %527, i64 1
%529 = load double, double* %528
%530 = load double*, double** %12
%531 = getelementptr inbounds double, double* %530, i64 1
%532 = load double, double* %531
%533 = fsub double %529, %532
%534 = load double*, double** %8
%535 = getelementptr inbounds double, double* %534, i64 1
%536 = load double, double* %535
%537 = load double*, double** %12
%538 = getelementptr inbounds double, double* %537, i64 1
%539 = load double, double* %538
%540 = fsub double %536, %539
%541 = load double*, double** %9
%542 = getelementptr inbounds double, double* %541, i64 0
%543 = load double, double* %542
%544 = load double*, double** %12
%545 = getelementptr inbounds double, double* %544, i64 0
%546 = load double, double* %545
%547 = fsub double %543, %546
%548 = fmul double %540, %547
%549 = fneg double %548
%550 = call double @llvm.fmuladd.f64(double %526, double %533, double %549)
%551 = fcmp oge double %550, 0.000000e+00
br i1 %551, label %552, label %553
552: ; preds = %519
store i32 1, i32* %7
br label %2564
553: ; preds = %519
store i32 0, i32* %7
br label %2564
554: ; preds = %486
%555 = load double*, double** %9
%556 = getelementptr inbounds double, double* %555, i64 0
%557 = load double, double* %556
%558 = load double*, double** %13
%559 = getelementptr inbounds double, double* %558, i64 0
%560 = load double, double* %559
%561 = fsub double %557, %560
%562 = load double*, double** %10
%563 = getelementptr inbounds double, double* %562, i64 1
%564 = load double, double* %563
%565 = load double*, double** %13
%566 = getelementptr inbounds double, double* %565, i64 1
%567 = load double, double* %566
%568 = fsub double %564, %567
%569 = load double*, double** %9
%570 = getelementptr inbounds double, double* %569, i64 1
%571 = load double, double* %570
%572 = load double*, double** %13
%573 = getelementptr inbounds double, double* %572, i64 1
%574 = load double, double* %573
%575 = fsub double %571, %574
%576 = load double*, double** %10
%577 = getelementptr inbounds double, double* %576, i64 0
%578 = load double, double* %577
%579 = load double*, double** %13
%580 = getelementptr inbounds double, double* %579, i64 0
%581 = load double, double* %580
%582 = fsub double %578, %581
%583 = fmul double %575, %582
%584 = fneg double %583
%585 = call double @llvm.fmuladd.f64(double %561, double %568, double %584)
%586 = fcmp oge double %585, 0.000000e+00
br i1 %586, label %587, label %622
587: ; preds = %554
%588 = load double*, double** %10
%589 = getelementptr inbounds double, double* %588, i64 0
%590 = load double, double* %589
%591 = load double*, double** %13
%592 = getelementptr inbounds double, double* %591, i64 0
%593 = load double, double* %592
%594 = fsub double %590, %593
%595 = load double*, double** %8
%596 = getelementptr inbounds double, double* %595, i64 1
%597 = load double, double* %596
%598 = load double*, double** %13
%599 = getelementptr inbounds double, double* %598, i64 1
%600 = load double, double* %599
%601 = fsub double %597, %600
%602 = load double*, double** %10
%603 = getelementptr inbounds double, double* %602, i64 1
%604 = load double, double* %603
%605 = load double*, double** %13
%606 = getelementptr inbounds double, double* %605, i64 1
%607 = load double, double* %606
%608 = fsub double %604, %607
%609 = load double*, double** %8
%610 = getelementptr inbounds double, double* %609, i64 0
%611 = load double, double* %610
%612 = load double*, double** %13
%613 = getelementptr inbounds double, double* %612, i64 0
%614 = load double, double* %613
%615 = fsub double %611, %614
%616 = fmul double %608, %615
%617 = fneg double %616
%618 = call double @llvm.fmuladd.f64(double %594, double %601, double %617)
%619 = fcmp oge double %618, 0.000000e+00
br i1 %619, label %620, label %621
620: ; preds = %587
store i32 1, i32* %7
br label %2564
621: ; preds = %587
store i32 0, i32* %7
br label %2564
622: ; preds = %554
store i32 0, i32* %7
br label %2564
623: ; preds = %453
%624 = load double*, double** %12
%625 = getelementptr inbounds double, double* %624, i64 0
%626 = load double, double* %625
%627 = load double*, double** %10
%628 = getelementptr inbounds double, double* %627, i64 0
%629 = load double, double* %628
%630 = fsub double %626, %629
%631 = load double*, double** %13
%632 = getelementptr inbounds double, double* %631, i64 1
%633 = load double, double* %632
%634 = load double*, double** %10
%635 = getelementptr inbounds double, double* %634, i64 1
%636 = load double, double* %635
%637 = fsub double %633, %636
%638 = load double*, double** %12
%639 = getelementptr inbounds double, double* %638, i64 1
%640 = load double, double* %639
%641 = load double*, double** %10
%642 = getelementptr inbounds double, double* %641, i64 1
%643 = load double, double* %642
%644 = fsub double %640, %643
%645 = load double*, double** %13
%646 = getelementptr inbounds double, double* %645, i64 0
%647 = load double, double* %646
%648 = load double*, double** %10
%649 = getelementptr inbounds double, double* %648, i64 0
%650 = load double, double* %649
%651 = fsub double %647, %650
%652 = fmul double %644, %651
%653 = fneg double %652
%654 = call double @llvm.fmuladd.f64(double %630, double %637, double %653)
%655 = fcmp oge double %654, 0.000000e+00
br i1 %655, label %656, label %759
656: ; preds = %623
%657 = load double*, double** %8
%658 = getelementptr inbounds double, double* %657, i64 0
%659 = load double, double* %658
%660 = load double*, double** %10
%661 = getelementptr inbounds double, double* %660, i64 0
%662 = load double, double* %661
%663 = fsub double %659, %662
%664 = load double*, double** %13
%665 = getelementptr inbounds double, double* %664, i64 1
%666 = load double, double* %665
%667 = load double*, double** %10
%668 = getelementptr inbounds double, double* %667, i64 1
%669 = load double, double* %668
%670 = fsub double %666, %669
%671 = load double*, double** %8
%672 = getelementptr inbounds double, double* %671, i64 1
%673 = load double, double* %672
%674 = load double*, double** %10
%675 = getelementptr inbounds double, double* %674, i64 1
%676 = load double, double* %675
%677 = fsub double %673, %676
%678 = load double*, double** %13
%679 = getelementptr inbounds double, double* %678, i64 0
%680 = load double, double* %679
%681 = load double*, double** %10
%682 = getelementptr inbounds double, double* %681, i64 0
%683 = load double, double* %682
%684 = fsub double %680, %683
%685 = fmul double %677, %684
%686 = fneg double %685
%687 = call double @llvm.fmuladd.f64(double %663, double %670, double %686)
%688 = fcmp oge double %687, 0.000000e+00
br i1 %688, label %689, label %758
689: ; preds = %656
%690 = load double*, double** %8
%691 = getelementptr inbounds double, double* %690, i64 0
%692 = load double, double* %691
%693 = load double*, double** %12
%694 = getelementptr inbounds double, double* %693, i64 0
%695 = load double, double* %694
%696 = fsub double %692, %695
%697 = load double*, double** %10
%698 = getelementptr inbounds double, double* %697, i64 1
%699 = load double, double* %698
%700 = load double*, double** %12
%701 = getelementptr inbounds double, double* %700, i64 1
%702 = load double, double* %701
%703 = fsub double %699, %702
%704 = load double*, double** %8
%705 = getelementptr inbounds double, double* %704, i64 1
%706 = load double, double* %705
%707 = load double*, double** %12
%708 = getelementptr inbounds double, double* %707, i64 1
%709 = load double, double* %708
%710 = fsub double %706, %709
%711 = load double*, double** %10
%712 = getelementptr inbounds double, double* %711, i64 0
%713 = load double, double* %712
%714 = load double*, double** %12
%715 = getelementptr inbounds double, double* %714, i64 0
%716 = load double, double* %715
%717 = fsub double %713, %716
%718 = fmul double %710, %717
%719 = fneg double %718
%720 = call double @llvm.fmuladd.f64(double %696, double %703, double %719)
%721 = fcmp oge double %720, 0.000000e+00
br i1 %721, label %722, label %723
722: ; preds = %689
store i32 1, i32* %7
br label %2564
723: ; preds = %689
%724 = load double*, double** %9
%725 = getelementptr inbounds double, double* %724, i64 0
%726 = load double, double* %725
%727 = load double*, double** %12
%728 = getelementptr inbounds double, double* %727, i64 0
%729 = load double, double* %728
%730 = fsub double %726, %729
%731 = load double*, double** %10
%732 = getelementptr inbounds double, double* %731, i64 1
%733 = load double, double* %732
%734 = load double*, double** %12
%735 = getelementptr inbounds double, double* %734, i64 1
%736 = load double, double* %735
%737 = fsub double %733, %736
%738 = load double*, double** %9
%739 = getelementptr inbounds double, double* %738, i64 1
%740 = load double, double* %739
%741 = load double*, double** %12
%742 = getelementptr inbounds double, double* %741, i64 1
%743 = load double, double* %742
%744 = fsub double %740, %743
%745 = load double*, double** %10
%746 = getelementptr inbounds double, double* %745, i64 0
%747 = load double, double* %746
%748 = load double*, double** %12
%749 = getelementptr inbounds double, double* %748, i64 0
%750 = load double, double* %749
%751 = fsub double %747, %750
%752 = fmul double %744, %751
%753 = fneg double %752
%754 = call double @llvm.fmuladd.f64(double %730, double %737, double %753)
%755 = fcmp oge double %754, 0.000000e+00
br i1 %755, label %756, label %757
756: ; preds = %723
store i32 1, i32* %7
br label %2564
757: ; preds = %723
store i32 0, i32* %7
br label %2564
758: ; preds = %656
store i32 0, i32* %7
br label %2564
759: ; preds = %623
store i32 0, i32* %7
br label %2564
760: ; preds = %420
%761 = load double*, double** %13
%762 = getelementptr inbounds double, double* %761, i64 0
%763 = load double, double* %762
%764 = load double*, double** %9
%765 = getelementptr inbounds double, double* %764, i64 0
%766 = load double, double* %765
%767 = fsub double %763, %766
%768 = load double*, double** %11
%769 = getelementptr inbounds double, double* %768, i64 1
%770 = load double, double* %769
%771 = load double*, double** %9
%772 = getelementptr inbounds double, double* %771, i64 1
%773 = load double, double* %772
%774 = fsub double %770, %773
%775 = load double*, double** %13
%776 = getelementptr inbounds double, double* %775, i64 1
%777 = load double, double* %776
%778 = load double*, double** %9
%779 = getelementptr inbounds double, double* %778, i64 1
%780 = load double, double* %779
%781 = fsub double %777, %780
%782 = load double*, double** %11
%783 = getelementptr inbounds double, double* %782, i64 0
%784 = load double, double* %783
%785 = load double*, double** %9
%786 = getelementptr inbounds double, double* %785, i64 0
%787 = load double, double* %786
%788 = fsub double %784, %787
%789 = fmul double %781, %788
%790 = fneg double %789
%791 = call double @llvm.fmuladd.f64(double %767, double %774, double %790)
%792 = fcmp oge double %791, 0.000000e+00
br i1 %792, label %793, label %1066
793: ; preds = %760
%794 = load double*, double** %13
%795 = getelementptr inbounds double, double* %794, i64 0
%796 = load double, double* %795
%797 = load double*, double** %9
%798 = getelementptr inbounds double, double* %797, i64 0
%799 = load double, double* %798
%800 = fsub double %796, %799
%801 = load double*, double** %12
%802 = getelementptr inbounds double, double* %801, i64 1
%803 = load double, double* %802
%804 = load double*, double** %9
%805 = getelementptr inbounds double, double* %804, i64 1
%806 = load double, double* %805
%807 = fsub double %803, %806
%808 = load double*, double** %13
%809 = getelementptr inbounds double, double* %808, i64 1
%810 = load double, double* %809
%811 = load double*, double** %9
%812 = getelementptr inbounds double, double* %811, i64 1
%813 = load double, double* %812
%814 = fsub double %810, %813
%815 = load double*, double** %12
%816 = getelementptr inbounds double, double* %815, i64 0
%817 = load double, double* %816
%818 = load double*, double** %9
%819 = getelementptr inbounds double, double* %818, i64 0
%820 = load double, double* %819
%821 = fsub double %817, %820
%822 = fmul double %814, %821
%823 = fneg double %822
%824 = call double @llvm.fmuladd.f64(double %800, double %807, double %823)
%825 = fcmp ole double %824, 0.000000e+00
br i1 %825, label %826, label %963
826: ; preds = %793
%827 = load double*, double** %8
%828 = getelementptr inbounds double, double* %827, i64 0
%829 = load double, double* %828
%830 = load double*, double** %9
%831 = getelementptr inbounds double, double* %830, i64 0
%832 = load double, double* %831
%833 = fsub double %829, %832
%834 = load double*, double** %11
%835 = getelementptr inbounds double, double* %834, i64 1
%836 = load double, double* %835
%837 = load double*, double** %9
%838 = getelementptr inbounds double, double* %837, i64 1
%839 = load double, double* %838
%840 = fsub double %836, %839
%841 = load double*, double** %8
%842 = getelementptr inbounds double, double* %841, i64 1
%843 = load double, double* %842
%844 = load double*, double** %9
%845 = getelementptr inbounds double, double* %844, i64 1
%846 = load double, double* %845
%847 = fsub double %843, %846
%848 = load double*, double** %11
%849 = getelementptr inbounds double, double* %848, i64 0
%850 = load double, double* %849
%851 = load double*, double** %9
%852 = getelementptr inbounds double, double* %851, i64 0
%853 = load double, double* %852
%854 = fsub double %850, %853
%855 = fmul double %847, %854
%856 = fneg double %855
%857 = call double @llvm.fmuladd.f64(double %833, double %840, double %856)
%858 = fcmp ogt double %857, 0.000000e+00
br i1 %858, label %859, label %894
859: ; preds = %826
%860 = load double*, double** %8
%861 = getelementptr inbounds double, double* %860, i64 0
%862 = load double, double* %861
%863 = load double*, double** %9
%864 = getelementptr inbounds double, double* %863, i64 0
%865 = load double, double* %864
%866 = fsub double %862, %865
%867 = load double*, double** %12
%868 = getelementptr inbounds double, double* %867, i64 1
%869 = load double, double* %868
%870 = load double*, double** %9
%871 = getelementptr inbounds double, double* %870, i64 1
%872 = load double, double* %871
%873 = fsub double %869, %872
%874 = load double*, double** %8
%875 = getelementptr inbounds double, double* %874, i64 1
%876 = load double, double* %875
%877 = load double*, double** %9
%878 = getelementptr inbounds double, double* %877, i64 1
%879 = load double, double* %878
%880 = fsub double %876, %879
%881 = load double*, double** %12
%882 = getelementptr inbounds double, double* %881, i64 0
%883 = load double, double* %882
%884 = load double*, double** %9
%885 = getelementptr inbounds double, double* %884, i64 0
%886 = load double, double* %885
%887 = fsub double %883, %886
%888 = fmul double %880, %887
%889 = fneg double %888
%890 = call double @llvm.fmuladd.f64(double %866, double %873, double %889)
%891 = fcmp ole double %890, 0.000000e+00
br i1 %891, label %892, label %893
892: ; preds = %859
store i32 1, i32* %7
br label %2564
893: ; preds = %859
store i32 0, i32* %7
br label %2564
894: ; preds = %826
%895 = load double*, double** %8
%896 = getelementptr inbounds double, double* %895, i64 0
%897 = load double, double* %896
%898 = load double*, double** %10
%899 = getelementptr inbounds double, double* %898, i64 0
%900 = load double, double* %899
%901 = fsub double %897, %900
%902 = load double*, double** %11
%903 = getelementptr inbounds double, double* %902, i64 1
%904 = load double, double* %903
%905 = load double*, double** %10
%906 = getelementptr inbounds double, double* %905, i64 1
%907 = load double, double* %906
%908 = fsub double %904, %907
%909 = load double*, double** %8
%910 = getelementptr inbounds double, double* %909, i64 1
%911 = load double, double* %910
%912 = load double*, double** %10
%913 = getelementptr inbounds double, double* %912, i64 1
%914 = load double, double* %913
%915 = fsub double %911, %914
%916 = load double*, double** %11
%917 = getelementptr inbounds double, double* %916, i64 0
%918 = load double, double* %917
%919 = load double*, double** %10
%920 = getelementptr inbounds double, double* %919, i64 0
%921 = load double, double* %920
%922 = fsub double %918, %921
%923 = fmul double %915, %922
%924 = fneg double %923
%925 = call double @llvm.fmuladd.f64(double %901, double %908, double %924)
%926 = fcmp oge double %925, 0.000000e+00
br i1 %926, label %927, label %962
927: ; preds = %894
%928 = load double*, double** %9
%929 = getelementptr inbounds double, double* %928, i64 0
%930 = load double, double* %929
%931 = load double*, double** %11
%932 = getelementptr inbounds double, double* %931, i64 0
%933 = load double, double* %932
%934 = fsub double %930, %933
%935 = load double*, double** %10
%936 = getelementptr inbounds double, double* %935, i64 1
%937 = load double, double* %936
%938 = load double*, double** %11
%939 = getelementptr inbounds double, double* %938, i64 1
%940 = load double, double* %939
%941 = fsub double %937, %940
%942 = load double*, double** %9
%943 = getelementptr inbounds double, double* %942, i64 1
%944 = load double, double* %943
%945 = load double*, double** %11
%946 = getelementptr inbounds double, double* %945, i64 1
%947 = load double, double* %946
%948 = fsub double %944, %947
%949 = load double*, double** %10
%950 = getelementptr inbounds double, double* %949, i64 0
%951 = load double, double* %950
%952 = load double*, double** %11
%953 = getelementptr inbounds double, double* %952, i64 0
%954 = load double, double* %953
%955 = fsub double %951, %954
%956 = fmul double %948, %955
%957 = fneg double %956
%958 = call double @llvm.fmuladd.f64(double %934, double %941, double %957)
%959 = fcmp oge double %958, 0.000000e+00
br i1 %959, label %960, label %961
960: ; preds = %927
store i32 1, i32* %7
br label %2564
961: ; preds = %927
store i32 0, i32* %7
br label %2564
962: ; preds = %894
store i32 0, i32* %7
br label %2564
963: ; preds = %793
%964 = load double*, double** %8
%965 = getelementptr inbounds double, double* %964, i64 0
%966 = load double, double* %965
%967 = load double*, double** %9
%968 = getelementptr inbounds double, double* %967, i64 0
%969 = load double, double* %968
%970 = fsub double %966, %969
%971 = load double*, double** %12
%972 = getelementptr inbounds double, double* %971, i64 1
%973 = load double, double* %972
%974 = load double*, double** %9
%975 = getelementptr inbounds double, double* %974, i64 1
%976 = load double, double* %975
%977 = fsub double %973, %976
%978 = load double*, double** %8
%979 = getelementptr inbounds double, double* %978, i64 1
%980 = load double, double* %979
%981 = load double*, double** %9
%982 = getelementptr inbounds double, double* %981, i64 1
%983 = load double, double* %982
%984 = fsub double %980, %983
%985 = load double*, double** %12
%986 = getelementptr inbounds double, double* %985, i64 0
%987 = load double, double* %986
%988 = load double*, double** %9
%989 = getelementptr inbounds double, double* %988, i64 0
%990 = load double, double* %989
%991 = fsub double %987, %990
%992 = fmul double %984, %991
%993 = fneg double %992
%994 = call double @llvm.fmuladd.f64(double %970, double %977, double %993)
%995 = fcmp ole double %994, 0.000000e+00
br i1 %995, label %996, label %1065
996: ; preds = %963
%997 = load double*, double** %13
%998 = getelementptr inbounds double, double* %997, i64 0
%999 = load double, double* %998
%1000 = load double*, double** %10
%1001 = getelementptr inbounds double, double* %1000, i64 0
%1002 = load double, double* %1001
%1003 = fsub double %999, %1002
%1004 = load double*, double** %12
%1005 = getelementptr inbounds double, double* %1004, i64 1
%1006 = load double, double* %1005
%1007 = load double*, double** %10
%1008 = getelementptr inbounds double, double* %1007, i64 1
%1009 = load double, double* %1008
%1010 = fsub double %1006, %1009
%1011 = load double*, double** %13
%1012 = getelementptr inbounds double, double* %1011, i64 1
%1013 = load double, double* %1012
%1014 = load double*, double** %10
%1015 = getelementptr inbounds double, double* %1014, i64 1
%1016 = load double, double* %1015
%1017 = fsub double %1013, %1016
%1018 = load double*, double** %12
%1019 = getelementptr inbounds double, double* %1018, i64 0
%1020 = load double, double* %1019
%1021 = load double*, double** %10
%1022 = getelementptr inbounds double, double* %1021, i64 0
%1023 = load double, double* %1022
%1024 = fsub double %1020, %1023
%1025 = fmul double %1017, %1024
%1026 = fneg double %1025
%1027 = call double @llvm.fmuladd.f64(double %1003, double %1010, double %1026)
%1028 = fcmp ole double %1027, 0.000000e+00
br i1 %1028, label %1029, label %1064
1029: ; preds = %996
%1030 = load double*, double** %9
%1031 = getelementptr inbounds double, double* %1030, i64 0
%1032 = load double, double* %1031
%1033 = load double*, double** %12
%1034 = getelementptr inbounds double, double* %1033, i64 0
%1035 = load double, double* %1034
%1036 = fsub double %1032, %1035
%1037 = load double*, double** %10
%1038 = getelementptr inbounds double, double* %1037, i64 1
%1039 = load double, double* %1038
%1040 = load double*, double** %12
%1041 = getelementptr inbounds double, double* %1040, i64 1
%1042 = load double, double* %1041
%1043 = fsub double %1039, %1042
%1044 = load double*, double** %9
%1045 = getelementptr inbounds double, double* %1044, i64 1
%1046 = load double, double* %1045
%1047 = load double*, double** %12
%1048 = getelementptr inbounds double, double* %1047, i64 1
%1049 = load double, double* %1048
%1050 = fsub double %1046, %1049
%1051 = load double*, double** %10
%1052 = getelementptr inbounds double, double* %1051, i64 0
%1053 = load double, double* %1052
%1054 = load double*, double** %12
%1055 = getelementptr inbounds double, double* %1054, i64 0
%1056 = load double, double* %1055
%1057 = fsub double %1053, %1056
%1058 = fmul double %1050, %1057
%1059 = fneg double %1058
%1060 = call double @llvm.fmuladd.f64(double %1036, double %1043, double %1059)
%1061 = fcmp oge double %1060, 0.000000e+00
br i1 %1061, label %1062, label %1063
1062: ; preds = %1029
store i32 1, i32* %7
br label %2564
1063: ; preds = %1029
store i32 0, i32* %7
br label %2564
1064: ; preds = %996
store i32 0, i32* %7
br label %2564
1065: ; preds = %963
store i32 0, i32* %7
br label %2564
1066: ; preds = %760
%1067 = load double*, double** %13
%1068 = getelementptr inbounds double, double* %1067, i64 0
%1069 = load double, double* %1068
%1070 = load double*, double** %10
%1071 = getelementptr inbounds double, double* %1070, i64 0
%1072 = load double, double* %1071
%1073 = fsub double %1069, %1072
%1074 = load double*, double** %11
%1075 = getelementptr inbounds double, double* %1074, i64 1
%1076 = load double, double* %1075
%1077 = load double*, double** %10
%1078 = getelementptr inbounds double, double* %1077, i64 1
%1079 = load double, double* %1078
%1080 = fsub double %1076, %1079
%1081 = load double*, double** %13
%1082 = getelementptr inbounds double, double* %1081, i64 1
%1083 = load double, double* %1082
%1084 = load double*, double** %10
%1085 = getelementptr inbounds double, double* %1084, i64 1
%1086 = load double, double* %1085
%1087 = fsub double %1083, %1086
%1088 = load double*, double** %11
%1089 = getelementptr inbounds double, double* %1088, i64 0
%1090 = load double, double* %1089
%1091 = load double*, double** %10
%1092 = getelementptr inbounds double, double* %1091, i64 0
%1093 = load double, double* %1092
%1094 = fsub double %1090, %1093
%1095 = fmul double %1087, %1094
%1096 = fneg double %1095
%1097 = call double @llvm.fmuladd.f64(double %1073, double %1080, double %1096)
%1098 = fcmp oge double %1097, 0.000000e+00
br i1 %1098, label %1099, label %1236
1099: ; preds = %1066
%1100 = load double*, double** %9
%1101 = getelementptr inbounds double, double* %1100, i64 0
%1102 = load double, double* %1101
%1103 = load double*, double** %13
%1104 = getelementptr inbounds double, double* %1103, i64 0
%1105 = load double, double* %1104
%1106 = fsub double %1102, %1105
%1107 = load double*, double** %10
%1108 = getelementptr inbounds double, double* %1107, i64 1
%1109 = load double, double* %1108
%1110 = load double*, double** %13
%1111 = getelementptr inbounds double, double* %1110, i64 1
%1112 = load double, double* %1111
%1113 = fsub double %1109, %1112
%1114 = load double*, double** %9
%1115 = getelementptr inbounds double, double* %1114, i64 1
%1116 = load double, double* %1115
%1117 = load double*, double** %13
%1118 = getelementptr inbounds double, double* %1117, i64 1
%1119 = load double, double* %1118
%1120 = fsub double %1116, %1119
%1121 = load double*, double** %10
%1122 = getelementptr inbounds double, double* %1121, i64 0
%1123 = load double, double* %1122
%1124 = load double*, double** %13
%1125 = getelementptr inbounds double, double* %1124, i64 0
%1126 = load double, double* %1125
%1127 = fsub double %1123, %1126
%1128 = fmul double %1120, %1127
%1129 = fneg double %1128
%1130 = call double @llvm.fmuladd.f64(double %1106, double %1113, double %1129)
%1131 = fcmp oge double %1130, 0.000000e+00
br i1 %1131, label %1132, label %1167
1132: ; preds = %1099
%1133 = load double*, double** %8
%1134 = getelementptr inbounds double, double* %1133, i64 0
%1135 = load double, double* %1134
%1136 = load double*, double** %10
%1137 = getelementptr inbounds double, double* %1136, i64 0
%1138 = load double, double* %1137
%1139 = fsub double %1135, %1138
%1140 = load double*, double** %11
%1141 = getelementptr inbounds double, double* %1140, i64 1
%1142 = load double, double* %1141
%1143 = load double*, double** %10
%1144 = getelementptr inbounds double, double* %1143, i64 1
%1145 = load double, double* %1144
%1146 = fsub double %1142, %1145
%1147 = load double*, double** %8
%1148 = getelementptr inbounds double, double* %1147, i64 1
%1149 = load double, double* %1148
%1150 = load double*, double** %10
%1151 = getelementptr inbounds double, double* %1150, i64 1
%1152 = load double, double* %1151
%1153 = fsub double %1149, %1152
%1154 = load double*, double** %11
%1155 = getelementptr inbounds double, double* %1154, i64 0
%1156 = load double, double* %1155
%1157 = load double*, double** %10
%1158 = getelementptr inbounds double, double* %1157, i64 0
%1159 = load double, double* %1158
%1160 = fsub double %1156, %1159
%1161 = fmul double %1153, %1160
%1162 = fneg double %1161
%1163 = call double @llvm.fmuladd.f64(double %1139, double %1146, double %1162)
%1164 = fcmp oge double %1163, 0.000000e+00
br i1 %1164, label %1165, label %1166
1165: ; preds = %1132
store i32 1, i32* %7
br label %2564
1166: ; preds = %1132
store i32 0, i32* %7
br label %2564
1167: ; preds = %1099
%1168 = load double*, double** %9
%1169 = getelementptr inbounds double, double* %1168, i64 0
%1170 = load double, double* %1169
%1171 = load double*, double** %12
%1172 = getelementptr inbounds double, double* %1171, i64 0
%1173 = load double, double* %1172
%1174 = fsub double %1170, %1173
%1175 = load double*, double** %10
%1176 = getelementptr inbounds double, double* %1175, i64 1
%1177 = load double, double* %1176
%1178 = load double*, double** %12
%1179 = getelementptr inbounds double, double* %1178, i64 1
%1180 = load double, double* %1179
%1181 = fsub double %1177, %1180
%1182 = load double*, double** %9
%1183 = getelementptr inbounds double, double* %1182, i64 1
%1184 = load double, double* %1183
%1185 = load double*, double** %12
%1186 = getelementptr inbounds double, double* %1185, i64 1
%1187 = load double, double* %1186
%1188 = fsub double %1184, %1187
%1189 = load double*, double** %10
%1190 = getelementptr inbounds double, double* %1189, i64 0
%1191 = load double, double* %1190
%1192 = load double*, double** %12
%1193 = getelementptr inbounds double, double* %1192, i64 0
%1194 = load double, double* %1193
%1195 = fsub double %1191, %1194
%1196 = fmul double %1188, %1195
%1197 = fneg double %1196
%1198 = call double @llvm.fmuladd.f64(double %1174, double %1181, double %1197)
%1199 = fcmp oge double %1198, 0.000000e+00
br i1 %1199, label %1200, label %1235
1200: ; preds = %1167
%1201 = load double*, double** %13
%1202 = getelementptr inbounds double, double* %1201, i64 0
%1203 = load double, double* %1202
%1204 = load double*, double** %12
%1205 = getelementptr inbounds double, double* %1204, i64 0
%1206 = load double, double* %1205
%1207 = fsub double %1203, %1206
%1208 = load double*, double** %10
%1209 = getelementptr inbounds double, double* %1208, i64 1
%1210 = load double, double* %1209
%1211 = load double*, double** %12
%1212 = getelementptr inbounds double, double* %1211, i64 1
%1213 = load double, double* %1212
%1214 = fsub double %1210, %1213
%1215 = load double*, double** %13
%1216 = getelementptr inbounds double, double* %1215, i64 1
%1217 = load double, double* %1216
%1218 = load double*, double** %12
%1219 = getelementptr inbounds double, double* %1218, i64 1
%1220 = load double, double* %1219
%1221 = fsub double %1217, %1220
%1222 = load double*, double** %10
%1223 = getelementptr inbounds double, double* %1222, i64 0
%1224 = load double, double* %1223
%1225 = load double*, double** %12
%1226 = getelementptr inbounds double, double* %1225, i64 0
%1227 = load double, double* %1226
%1228 = fsub double %1224, %1227
%1229 = fmul double %1221, %1228
%1230 = fneg double %1229
%1231 = call double @llvm.fmuladd.f64(double %1207, double %1214, double %1230)
%1232 = fcmp oge double %1231, 0.000000e+00
br i1 %1232, label %1233, label %1234
1233: ; preds = %1200
store i32 1, i32* %7
br label %2564
1234: ; preds = %1200
store i32 0, i32* %7
br label %2564
1235: ; preds = %1167
store i32 0, i32* %7
br label %2564
1236: ; preds = %1066
store i32 0, i32* %7
br label %2564
1237: ; preds = %6
%1238 = load double*, double** %12
%1239 = getelementptr inbounds double, double* %1238, i64 0
%1240 = load double, double* %1239
%1241 = load double*, double** %8
%1242 = getelementptr inbounds double, double* %1241, i64 0
%1243 = load double, double* %1242
%1244 = fsub double %1240, %1243
%1245 = load double*, double** %13
%1246 = getelementptr inbounds double, double* %1245, i64 1
%1247 = load double, double* %1246
%1248 = load double*, double** %8
%1249 = getelementptr inbounds double, double* %1248, i64 1
%1250 = load double, double* %1249
%1251 = fsub double %1247, %1250
%1252 = load double*, double** %12
%1253 = getelementptr inbounds double, double* %1252, i64 1
%1254 = load double, double* %1253
%1255 = load double*, double** %8
%1256 = getelementptr inbounds double, double* %1255, i64 1
%1257 = load double, double* %1256
%1258 = fsub double %1254, %1257
%1259 = load double*, double** %13
%1260 = getelementptr inbounds double, double* %1259, i64 0
%1261 = load double, double* %1260
%1262 = load double*, double** %8
%1263 = getelementptr inbounds double, double* %1262, i64 0
%1264 = load double, double* %1263
%1265 = fsub double %1261, %1264
%1266 = fmul double %1258, %1265
%1267 = fneg double %1266
%1268 = call double @llvm.fmuladd.f64(double %1244, double %1251, double %1267)
%1269 = fcmp oge double %1268, 0.000000e+00
br i1 %1269, label %1270, label %2087
1270: ; preds = %1237
%1271 = load double*, double** %13
%1272 = getelementptr inbounds double, double* %1271, i64 0
%1273 = load double, double* %1272
%1274 = load double*, double** %8
%1275 = getelementptr inbounds double, double* %1274, i64 0
%1276 = load double, double* %1275
%1277 = fsub double %1273, %1276
%1278 = load double*, double** %11
%1279 = getelementptr inbounds double, double* %1278, i64 1
%1280 = load double, double* %1279
%1281 = load double*, double** %8
%1282 = getelementptr inbounds double, double* %1281, i64 1
%1283 = load double, double* %1282
%1284 = fsub double %1280, %1283
%1285 = load double*, double** %13
%1286 = getelementptr inbounds double, double* %1285, i64 1
%1287 = load double, double* %1286
%1288 = load double*, double** %8
%1289 = getelementptr inbounds double, double* %1288, i64 1
%1290 = load double, double* %1289
%1291 = fsub double %1287, %1290
%1292 = load double*, double** %11
%1293 = getelementptr inbounds double, double* %1292, i64 0
%1294 = load double, double* %1293
%1295 = load double*, double** %8
%1296 = getelementptr inbounds double, double* %1295, i64 0
%1297 = load double, double* %1296
%1298 = fsub double %1294, %1297
%1299 = fmul double %1291, %1298
%1300 = fneg double %1299
%1301 = call double @llvm.fmuladd.f64(double %1277, double %1284, double %1300)
%1302 = fcmp oge double %1301, 0.000000e+00
br i1 %1302, label %1303, label %1610
1303: ; preds = %1270
%1304 = load double*, double** %11
%1305 = getelementptr inbounds double, double* %1304, i64 0
%1306 = load double, double* %1305
%1307 = load double*, double** %9
%1308 = getelementptr inbounds double, double* %1307, i64 0
%1309 = load double, double* %1308
%1310 = fsub double %1306, %1309
%1311 = load double*, double** %12
%1312 = getelementptr inbounds double, double* %1311, i64 1
%1313 = load double, double* %1312
%1314 = load double*, double** %9
%1315 = getelementptr inbounds double, double* %1314, i64 1
%1316 = load double, double* %1315
%1317 = fsub double %1313, %1316
%1318 = load double*, double** %11
%1319 = getelementptr inbounds double, double* %1318, i64 1
%1320 = load double, double* %1319
%1321 = load double*, double** %9
%1322 = getelementptr inbounds double, double* %1321, i64 1
%1323 = load double, double* %1322
%1324 = fsub double %1320, %1323
%1325 = load double*, double** %12
%1326 = getelementptr inbounds double, double* %1325, i64 0
%1327 = load double, double* %1326
%1328 = load double*, double** %9
%1329 = getelementptr inbounds double, double* %1328, i64 0
%1330 = load double, double* %1329
%1331 = fsub double %1327, %1330
%1332 = fmul double %1324, %1331
%1333 = fneg double %1332
%1334 = call double @llvm.fmuladd.f64(double %1310, double %1317, double %1333)
%1335 = fcmp oge double %1334, 0.000000e+00
br i1 %1335, label %1336, label %1473
1336: ; preds = %1303
%1337 = load double*, double** %8
%1338 = getelementptr inbounds double, double* %1337, i64 0
%1339 = load double, double* %1338
%1340 = load double*, double** %9
%1341 = getelementptr inbounds double, double* %1340, i64 0
%1342 = load double, double* %1341
%1343 = fsub double %1339, %1342
%1344 = load double*, double** %12
%1345 = getelementptr inbounds double, double* %1344, i64 1
%1346 = load double, double* %1345
%1347 = load double*, double** %9
%1348 = getelementptr inbounds double, double* %1347, i64 1
%1349 = load double, double* %1348
%1350 = fsub double %1346, %1349
%1351 = load double*, double** %8
%1352 = getelementptr inbounds double, double* %1351, i64 1
%1353 = load double, double* %1352
%1354 = load double*, double** %9
%1355 = getelementptr inbounds double, double* %1354, i64 1
%1356 = load double, double* %1355
%1357 = fsub double %1353, %1356
%1358 = load double*, double** %12
%1359 = getelementptr inbounds double, double* %1358, i64 0
%1360 = load double, double* %1359
%1361 = load double*, double** %9
%1362 = getelementptr inbounds double, double* %1361, i64 0
%1363 = load double, double* %1362
%1364 = fsub double %1360, %1363
%1365 = fmul double %1357, %1364
%1366 = fneg double %1365
%1367 = call double @llvm.fmuladd.f64(double %1343, double %1350, double %1366)
%1368 = fcmp oge double %1367, 0.000000e+00
br i1 %1368, label %1369, label %1404
1369: ; preds = %1336
%1370 = load double*, double** %8
%1371 = getelementptr inbounds double, double* %1370, i64 0
%1372 = load double, double* %1371
%1373 = load double*, double** %11
%1374 = getelementptr inbounds double, double* %1373, i64 0
%1375 = load double, double* %1374
%1376 = fsub double %1372, %1375
%1377 = load double*, double** %9
%1378 = getelementptr inbounds double, double* %1377, i64 1
%1379 = load double, double* %1378
%1380 = load double*, double** %11
%1381 = getelementptr inbounds double, double* %1380, i64 1
%1382 = load double, double* %1381
%1383 = fsub double %1379, %1382
%1384 = load double*, double** %8
%1385 = getelementptr inbounds double, double* %1384, i64 1
%1386 = load double, double* %1385
%1387 = load double*, double** %11
%1388 = getelementptr inbounds double, double* %1387, i64 1
%1389 = load double, double* %1388
%1390 = fsub double %1386, %1389
%1391 = load double*, double** %9
%1392 = getelementptr inbounds double, double* %1391, i64 0
%1393 = load double, double* %1392
%1394 = load double*, double** %11
%1395 = getelementptr inbounds double, double* %1394, i64 0
%1396 = load double, double* %1395
%1397 = fsub double %1393, %1396
%1398 = fmul double %1390, %1397
%1399 = fneg double %1398
%1400 = call double @llvm.fmuladd.f64(double %1376, double %1383, double %1399)
%1401 = fcmp oge double %1400, 0.000000e+00
br i1 %1401, label %1402, label %1403
1402: ; preds = %1369
store i32 1, i32* %7
br label %2564
1403: ; preds = %1369
store i32 0, i32* %7
br label %2564
1404: ; preds = %1336
%1405 = load double*, double** %9
%1406 = getelementptr inbounds double, double* %1405, i64 0
%1407 = load double, double* %1406
%1408 = load double*, double** %12
%1409 = getelementptr inbounds double, double* %1408, i64 0
%1410 = load double, double* %1409
%1411 = fsub double %1407, %1410
%1412 = load double*, double** %10
%1413 = getelementptr inbounds double, double* %1412, i64 1
%1414 = load double, double* %1413
%1415 = load double*, double** %12
%1416 = getelementptr inbounds double, double* %1415, i64 1
%1417 = load double, double* %1416
%1418 = fsub double %1414, %1417
%1419 = load double*, double** %9
%1420 = getelementptr inbounds double, double* %1419, i64 1
%1421 = load double, double* %1420
%1422 = load double*, double** %12
%1423 = getelementptr inbounds double, double* %1422, i64 1
%1424 = load double, double* %1423
%1425 = fsub double %1421, %1424
%1426 = load double*, double** %10
%1427 = getelementptr inbounds double, double* %1426, i64 0
%1428 = load double, double* %1427
%1429 = load double*, double** %12
%1430 = getelementptr inbounds double, double* %1429, i64 0
%1431 = load double, double* %1430
%1432 = fsub double %1428, %1431
%1433 = fmul double %1425, %1432
%1434 = fneg double %1433
%1435 = call double @llvm.fmuladd.f64(double %1411, double %1418, double %1434)
%1436 = fcmp oge double %1435, 0.000000e+00
br i1 %1436, label %1437, label %1472
1437: ; preds = %1404
%1438 = load double*, double** %10
%1439 = getelementptr inbounds double, double* %1438, i64 0
%1440 = load double, double* %1439
%1441 = load double*, double** %12
%1442 = getelementptr inbounds double, double* %1441, i64 0
%1443 = load double, double* %1442
%1444 = fsub double %1440, %1443
%1445 = load double*, double** %8
%1446 = getelementptr inbounds double, double* %1445, i64 1
%1447 = load double, double* %1446
%1448 = load double*, double** %12
%1449 = getelementptr inbounds double, double* %1448, i64 1
%1450 = load double, double* %1449
%1451 = fsub double %1447, %1450
%1452 = load double*, double** %10
%1453 = getelementptr inbounds double, double* %1452, i64 1
%1454 = load double, double* %1453
%1455 = load double*, double** %12
%1456 = getelementptr inbounds double, double* %1455, i64 1
%1457 = load double, double* %1456
%1458 = fsub double %1454, %1457
%1459 = load double*, double** %8
%1460 = getelementptr inbounds double, double* %1459, i64 0
%1461 = load double, double* %1460
%1462 = load double*, double** %12
%1463 = getelementptr inbounds double, double* %1462, i64 0
%1464 = load double, double* %1463
%1465 = fsub double %1461, %1464
%1466 = fmul double %1458, %1465
%1467 = fneg double %1466
%1468 = call double @llvm.fmuladd.f64(double %1444, double %1451, double %1467)
%1469 = fcmp oge double %1468, 0.000000e+00
br i1 %1469, label %1470, label %1471
1470: ; preds = %1437
store i32 1, i32* %7
br label %2564
1471: ; preds = %1437
store i32 0, i32* %7
br label %2564
1472: ; preds = %1404
store i32 0, i32* %7
br label %2564
1473: ; preds = %1303
%1474 = load double*, double** %11
%1475 = getelementptr inbounds double, double* %1474, i64 0
%1476 = load double, double* %1475
%1477 = load double*, double** %10
%1478 = getelementptr inbounds double, double* %1477, i64 0
%1479 = load double, double* %1478
%1480 = fsub double %1476, %1479
%1481 = load double*, double** %12
%1482 = getelementptr inbounds double, double* %1481, i64 1
%1483 = load double, double* %1482
%1484 = load double*, double** %10
%1485 = getelementptr inbounds double, double* %1484, i64 1
%1486 = load double, double* %1485
%1487 = fsub double %1483, %1486
%1488 = load double*, double** %11
%1489 = getelementptr inbounds double, double* %1488, i64 1
%1490 = load double, double* %1489
%1491 = load double*, double** %10
%1492 = getelementptr inbounds double, double* %1491, i64 1
%1493 = load double, double* %1492
%1494 = fsub double %1490, %1493
%1495 = load double*, double** %12
%1496 = getelementptr inbounds double, double* %1495, i64 0
%1497 = load double, double* %1496
%1498 = load double*, double** %10
%1499 = getelementptr inbounds double, double* %1498, i64 0
%1500 = load double, double* %1499
%1501 = fsub double %1497, %1500
%1502 = fmul double %1494, %1501
%1503 = fneg double %1502
%1504 = call double @llvm.fmuladd.f64(double %1480, double %1487, double %1503)
%1505 = fcmp oge double %1504, 0.000000e+00
br i1 %1505, label %1506, label %1609
1506: ; preds = %1473
%1507 = load double*, double** %8
%1508 = getelementptr inbounds double, double* %1507, i64 0
%1509 = load double, double* %1508
%1510 = load double*, double** %10
%1511 = getelementptr inbounds double, double* %1510, i64 0
%1512 = load double, double* %1511
%1513 = fsub double %1509, %1512
%1514 = load double*, double** %12
%1515 = getelementptr inbounds double, double* %1514, i64 1
%1516 = load double, double* %1515
%1517 = load double*, double** %10
%1518 = getelementptr inbounds double, double* %1517, i64 1
%1519 = load double, double* %1518
%1520 = fsub double %1516, %1519
%1521 = load double*, double** %8
%1522 = getelementptr inbounds double, double* %1521, i64 1
%1523 = load double, double* %1522
%1524 = load double*, double** %10
%1525 = getelementptr inbounds double, double* %1524, i64 1
%1526 = load double, double* %1525
%1527 = fsub double %1523, %1526
%1528 = load double*, double** %12
%1529 = getelementptr inbounds double, double* %1528, i64 0
%1530 = load double, double* %1529
%1531 = load double*, double** %10
%1532 = getelementptr inbounds double, double* %1531, i64 0
%1533 = load double, double* %1532
%1534 = fsub double %1530, %1533
%1535 = fmul double %1527, %1534
%1536 = fneg double %1535
%1537 = call double @llvm.fmuladd.f64(double %1513, double %1520, double %1536)
%1538 = fcmp oge double %1537, 0.000000e+00
br i1 %1538, label %1539, label %1608
1539: ; preds = %1506
%1540 = load double*, double** %8
%1541 = getelementptr inbounds double, double* %1540, i64 0
%1542 = load double, double* %1541
%1543 = load double*, double** %11
%1544 = getelementptr inbounds double, double* %1543, i64 0
%1545 = load double, double* %1544
%1546 = fsub double %1542, %1545
%1547 = load double*, double** %10
%1548 = getelementptr inbounds double, double* %1547, i64 1
%1549 = load double, double* %1548
%1550 = load double*, double** %11
%1551 = getelementptr inbounds double, double* %1550, i64 1
%1552 = load double, double* %1551
%1553 = fsub double %1549, %1552
%1554 = load double*, double** %8
%1555 = getelementptr inbounds double, double* %1554, i64 1
%1556 = load double, double* %1555
%1557 = load double*, double** %11
%1558 = getelementptr inbounds double, double* %1557, i64 1
%1559 = load double, double* %1558
%1560 = fsub double %1556, %1559
%1561 = load double*, double** %10
%1562 = getelementptr inbounds double, double* %1561, i64 0
%1563 = load double, double* %1562
%1564 = load double*, double** %11
%1565 = getelementptr inbounds double, double* %1564, i64 0
%1566 = load double, double* %1565
%1567 = fsub double %1563, %1566
%1568 = fmul double %1560, %1567
%1569 = fneg double %1568
%1570 = call double @llvm.fmuladd.f64(double %1546, double %1553, double %1569)
%1571 = fcmp oge double %1570, 0.000000e+00
br i1 %1571, label %1572, label %1573
1572: ; preds = %1539
store i32 1, i32* %7
br label %2564
1573: ; preds = %1539
%1574 = load double*, double** %9
%1575 = getelementptr inbounds double, double* %1574, i64 0
%1576 = load double, double* %1575
%1577 = load double*, double** %11
%1578 = getelementptr inbounds double, double* %1577, i64 0
%1579 = load double, double* %1578
%1580 = fsub double %1576, %1579
%1581 = load double*, double** %10
%1582 = getelementptr inbounds double, double* %1581, i64 1
%1583 = load double, double* %1582
%1584 = load double*, double** %11
%1585 = getelementptr inbounds double, double* %1584, i64 1
%1586 = load double, double* %1585
%1587 = fsub double %1583, %1586
%1588 = load double*, double** %9
%1589 = getelementptr inbounds double, double* %1588, i64 1
%1590 = load double, double* %1589
%1591 = load double*, double** %11
%1592 = getelementptr inbounds double, double* %1591, i64 1
%1593 = load double, double* %1592
%1594 = fsub double %1590, %1593
%1595 = load double*, double** %10
%1596 = getelementptr inbounds double, double* %1595, i64 0
%1597 = load double, double* %1596
%1598 = load double*, double** %11
%1599 = getelementptr inbounds double, double* %1598, i64 0
%1600 = load double, double* %1599
%1601 = fsub double %1597, %1600
%1602 = fmul double %1594, %1601
%1603 = fneg double %1602
%1604 = call double @llvm.fmuladd.f64(double %1580, double %1587, double %1603)
%1605 = fcmp oge double %1604, 0.000000e+00
br i1 %1605, label %1606, label %1607
1606: ; preds = %1573
store i32 1, i32* %7
br label %2564
1607: ; preds = %1573
store i32 0, i32* %7
br label %2564
1608: ; preds = %1506
store i32 0, i32* %7
br label %2564
1609: ; preds = %1473
store i32 0, i32* %7
br label %2564
1610: ; preds = %1270
%1611 = load double*, double** %11
%1612 = getelementptr inbounds double, double* %1611, i64 0
%1613 = load double, double* %1612
%1614 = load double*, double** %9
%1615 = getelementptr inbounds double, double* %1614, i64 0
%1616 = load double, double* %1615
%1617 = fsub double %1613, %1616
%1618 = load double*, double** %12
%1619 = getelementptr inbounds double, double* %1618, i64 1
%1620 = load double, double* %1619
%1621 = load double*, double** %9
%1622 = getelementptr inbounds double, double* %1621, i64 1
%1623 = load double, double* %1622
%1624 = fsub double %1620, %1623
%1625 = load double*, double** %11
%1626 = getelementptr inbounds double, double* %1625, i64 1
%1627 = load double, double* %1626
%1628 = load double*, double** %9
%1629 = getelementptr inbounds double, double* %1628, i64 1
%1630 = load double, double* %1629
%1631 = fsub double %1627, %1630
%1632 = load double*, double** %12
%1633 = getelementptr inbounds double, double* %1632, i64 0
%1634 = load double, double* %1633
%1635 = load double*, double** %9
%1636 = getelementptr inbounds double, double* %1635, i64 0
%1637 = load double, double* %1636
%1638 = fsub double %1634, %1637
%1639 = fmul double %1631, %1638
%1640 = fneg double %1639
%1641 = call double @llvm.fmuladd.f64(double %1617, double %1624, double %1640)
%1642 = fcmp oge double %1641, 0.000000e+00
br i1 %1642, label %1643, label %1916
1643: ; preds = %1610
%1644 = load double*, double** %11
%1645 = getelementptr inbounds double, double* %1644, i64 0
%1646 = load double, double* %1645
%1647 = load double*, double** %9
%1648 = getelementptr inbounds double, double* %1647, i64 0
%1649 = load double, double* %1648
%1650 = fsub double %1646, %1649
%1651 = load double*, double** %13
%1652 = getelementptr inbounds double, double* %1651, i64 1
%1653 = load double, double* %1652
%1654 = load double*, double** %9
%1655 = getelementptr inbounds double, double* %1654, i64 1
%1656 = load double, double* %1655
%1657 = fsub double %1653, %1656
%1658 = load double*, double** %11
%1659 = getelementptr inbounds double, double* %1658, i64 1
%1660 = load double, double* %1659
%1661 = load double*, double** %9
%1662 = getelementptr inbounds double, double* %1661, i64 1
%1663 = load double, double* %1662
%1664 = fsub double %1660, %1663
%1665 = load double*, double** %13
%1666 = getelementptr inbounds double, double* %1665, i64 0
%1667 = load double, double* %1666
%1668 = load double*, double** %9
%1669 = getelementptr inbounds double, double* %1668, i64 0
%1670 = load double, double* %1669
%1671 = fsub double %1667, %1670
%1672 = fmul double %1664, %1671
%1673 = fneg double %1672
%1674 = call double @llvm.fmuladd.f64(double %1650, double %1657, double %1673)
%1675 = fcmp ole double %1674, 0.000000e+00
br i1 %1675, label %1676, label %1813
1676: ; preds = %1643
%1677 = load double*, double** %8
%1678 = getelementptr inbounds double, double* %1677, i64 0
%1679 = load double, double* %1678
%1680 = load double*, double** %9
%1681 = getelementptr inbounds double, double* %1680, i64 0
%1682 = load double, double* %1681
%1683 = fsub double %1679, %1682
%1684 = load double*, double** %12
%1685 = getelementptr inbounds double, double* %1684, i64 1
%1686 = load double, double* %1685
%1687 = load double*, double** %9
%1688 = getelementptr inbounds double, double* %1687, i64 1
%1689 = load double, double* %1688
%1690 = fsub double %1686, %1689
%1691 = load double*, double** %8
%1692 = getelementptr inbounds double, double* %1691, i64 1
%1693 = load double, double* %1692
%1694 = load double*, double** %9
%1695 = getelementptr inbounds double, double* %1694, i64 1
%1696 = load double, double* %1695
%1697 = fsub double %1693, %1696
%1698 = load double*, double** %12
%1699 = getelementptr inbounds double, double* %1698, i64 0
%1700 = load double, double* %1699
%1701 = load double*, double** %9
%1702 = getelementptr inbounds double, double* %1701, i64 0
%1703 = load double, double* %1702
%1704 = fsub double %1700, %1703
%1705 = fmul double %1697, %1704
%1706 = fneg double %1705
%1707 = call double @llvm.fmuladd.f64(double %1683, double %1690, double %1706)
%1708 = fcmp ogt double %1707, 0.000000e+00
br i1 %1708, label %1709, label %1744
1709: ; preds = %1676
%1710 = load double*, double** %8
%1711 = getelementptr inbounds double, double* %1710, i64 0
%1712 = load double, double* %1711
%1713 = load double*, double** %9
%1714 = getelementptr inbounds double, double* %1713, i64 0
%1715 = load double, double* %1714
%1716 = fsub double %1712, %1715
%1717 = load double*, double** %13
%1718 = getelementptr inbounds double, double* %1717, i64 1
%1719 = load double, double* %1718
%1720 = load double*, double** %9
%1721 = getelementptr inbounds double, double* %1720, i64 1
%1722 = load double, double* %1721
%1723 = fsub double %1719, %1722
%1724 = load double*, double** %8
%1725 = getelementptr inbounds double, double* %1724, i64 1
%1726 = load double, double* %1725
%1727 = load double*, double** %9
%1728 = getelementptr inbounds double, double* %1727, i64 1
%1729 = load double, double* %1728
%1730 = fsub double %1726, %1729
%1731 = load double*, double** %13
%1732 = getelementptr inbounds double, double* %1731, i64 0
%1733 = load double, double* %1732
%1734 = load double*, double** %9
%1735 = getelementptr inbounds double, double* %1734, i64 0
%1736 = load double, double* %1735
%1737 = fsub double %1733, %1736
%1738 = fmul double %1730, %1737
%1739 = fneg double %1738
%1740 = call double @llvm.fmuladd.f64(double %1716, double %1723, double %1739)
%1741 = fcmp ole double %1740, 0.000000e+00
br i1 %1741, label %1742, label %1743
1742: ; preds = %1709
store i32 1, i32* %7
br label %2564
1743: ; preds = %1709
store i32 0, i32* %7
br label %2564
1744: ; preds = %1676
%1745 = load double*, double** %8
%1746 = getelementptr inbounds double, double* %1745, i64 0
%1747 = load double, double* %1746
%1748 = load double*, double** %10
%1749 = getelementptr inbounds double, double* %1748, i64 0
%1750 = load double, double* %1749
%1751 = fsub double %1747, %1750
%1752 = load double*, double** %12
%1753 = getelementptr inbounds double, double* %1752, i64 1
%1754 = load double, double* %1753
%1755 = load double*, double** %10
%1756 = getelementptr inbounds double, double* %1755, i64 1
%1757 = load double, double* %1756
%1758 = fsub double %1754, %1757
%1759 = load double*, double** %8
%1760 = getelementptr inbounds double, double* %1759, i64 1
%1761 = load double, double* %1760
%1762 = load double*, double** %10
%1763 = getelementptr inbounds double, double* %1762, i64 1
%1764 = load double, double* %1763
%1765 = fsub double %1761, %1764
%1766 = load double*, double** %12
%1767 = getelementptr inbounds double, double* %1766, i64 0
%1768 = load double, double* %1767
%1769 = load double*, double** %10
%1770 = getelementptr inbounds double, double* %1769, i64 0
%1771 = load double, double* %1770
%1772 = fsub double %1768, %1771
%1773 = fmul double %1765, %1772
%1774 = fneg double %1773
%1775 = call double @llvm.fmuladd.f64(double %1751, double %1758, double %1774)
%1776 = fcmp oge double %1775, 0.000000e+00
br i1 %1776, label %1777, label %1812
1777: ; preds = %1744
%1778 = load double*, double** %9
%1779 = getelementptr inbounds double, double* %1778, i64 0
%1780 = load double, double* %1779
%1781 = load double*, double** %12
%1782 = getelementptr inbounds double, double* %1781, i64 0
%1783 = load double, double* %1782
%1784 = fsub double %1780, %1783
%1785 = load double*, double** %10
%1786 = getelementptr inbounds double, double* %1785, i64 1
%1787 = load double, double* %1786
%1788 = load double*, double** %12
%1789 = getelementptr inbounds double, double* %1788, i64 1
%1790 = load double, double* %1789
%1791 = fsub double %1787, %1790
%1792 = load double*, double** %9
%1793 = getelementptr inbounds double, double* %1792, i64 1
%1794 = load double, double* %1793
%1795 = load double*, double** %12
%1796 = getelementptr inbounds double, double* %1795, i64 1
%1797 = load double, double* %1796
%1798 = fsub double %1794, %1797
%1799 = load double*, double** %10
%1800 = getelementptr inbounds double, double* %1799, i64 0
%1801 = load double, double* %1800
%1802 = load double*, double** %12
%1803 = getelementptr inbounds double, double* %1802, i64 0
%1804 = load double, double* %1803
%1805 = fsub double %1801, %1804
%1806 = fmul double %1798, %1805
%1807 = fneg double %1806
%1808 = call double @llvm.fmuladd.f64(double %1784, double %1791, double %1807)
%1809 = fcmp oge double %1808, 0.000000e+00
br i1 %1809, label %1810, label %1811
1810: ; preds = %1777
store i32 1, i32* %7
br label %2564
1811: ; preds = %1777
store i32 0, i32* %7
br label %2564
1812: ; preds = %1744
store i32 0, i32* %7
br label %2564
1813: ; preds = %1643
%1814 = load double*, double** %8
%1815 = getelementptr inbounds double, double* %1814, i64 0
%1816 = load double, double* %1815
%1817 = load double*, double** %9
%1818 = getelementptr inbounds double, double* %1817, i64 0
%1819 = load double, double* %1818
%1820 = fsub double %1816, %1819
%1821 = load double*, double** %13
%1822 = getelementptr inbounds double, double* %1821, i64 1
%1823 = load double, double* %1822
%1824 = load double*, double** %9
%1825 = getelementptr inbounds double, double* %1824, i64 1
%1826 = load double, double* %1825
%1827 = fsub double %1823, %1826
%1828 = load double*, double** %8
%1829 = getelementptr inbounds double, double* %1828, i64 1
%1830 = load double, double* %1829
%1831 = load double*, double** %9
%1832 = getelementptr inbounds double, double* %1831, i64 1
%1833 = load double, double* %1832
%1834 = fsub double %1830, %1833
%1835 = load double*, double** %13
%1836 = getelementptr inbounds double, double* %1835, i64 0
%1837 = load double, double* %1836
%1838 = load double*, double** %9
%1839 = getelementptr inbounds double, double* %1838, i64 0
%1840 = load double, double* %1839
%1841 = fsub double %1837, %1840
%1842 = fmul double %1834, %1841
%1843 = fneg double %1842
%1844 = call double @llvm.fmuladd.f64(double %1820, double %1827, double %1843)
%1845 = fcmp ole double %1844, 0.000000e+00
br i1 %1845, label %1846, label %1915
1846: ; preds = %1813
%1847 = load double*, double** %11
%1848 = getelementptr inbounds double, double* %1847, i64 0
%1849 = load double, double* %1848
%1850 = load double*, double** %10
%1851 = getelementptr inbounds double, double* %1850, i64 0
%1852 = load double, double* %1851
%1853 = fsub double %1849, %1852
%1854 = load double*, double** %13
%1855 = getelementptr inbounds double, double* %1854, i64 1
%1856 = load double, double* %1855
%1857 = load double*, double** %10
%1858 = getelementptr inbounds double, double* %1857, i64 1
%1859 = load double, double* %1858
%1860 = fsub double %1856, %1859
%1861 = load double*, double** %11
%1862 = getelementptr inbounds double, double* %1861, i64 1
%1863 = load double, double* %1862
%1864 = load double*, double** %10
%1865 = getelementptr inbounds double, double* %1864, i64 1
%1866 = load double, double* %1865
%1867 = fsub double %1863, %1866
%1868 = load double*, double** %13
%1869 = getelementptr inbounds double, double* %1868, i64 0
%1870 = load double, double* %1869
%1871 = load double*, double** %10
%1872 = getelementptr inbounds double, double* %1871, i64 0
%1873 = load double, double* %1872
%1874 = fsub double %1870, %1873
%1875 = fmul double %1867, %1874
%1876 = fneg double %1875
%1877 = call double @llvm.fmuladd.f64(double %1853, double %1860, double %1876)
%1878 = fcmp ole double %1877, 0.000000e+00
br i1 %1878, label %1879, label %1914
1879: ; preds = %1846
%1880 = load double*, double** %9
%1881 = getelementptr inbounds double, double* %1880, i64 0
%1882 = load double, double* %1881
%1883 = load double*, double** %13
%1884 = getelementptr inbounds double, double* %1883, i64 0
%1885 = load double, double* %1884
%1886 = fsub double %1882, %1885
%1887 = load double*, double** %10
%1888 = getelementptr inbounds double, double* %1887, i64 1
%1889 = load double, double* %1888
%1890 = load double*, double** %13
%1891 = getelementptr inbounds double, double* %1890, i64 1
%1892 = load double, double* %1891
%1893 = fsub double %1889, %1892
%1894 = load double*, double** %9
%1895 = getelementptr inbounds double, double* %1894, i64 1
%1896 = load double, double* %1895
%1897 = load double*, double** %13
%1898 = getelementptr inbounds double, double* %1897, i64 1
%1899 = load double, double* %1898
%1900 = fsub double %1896, %1899
%1901 = load double*, double** %10
%1902 = getelementptr inbounds double, double* %1901, i64 0
%1903 = load double, double* %1902
%1904 = load double*, double** %13
%1905 = getelementptr inbounds double, double* %1904, i64 0
%1906 = load double, double* %1905
%1907 = fsub double %1903, %1906
%1908 = fmul double %1900, %1907
%1909 = fneg double %1908
%1910 = call double @llvm.fmuladd.f64(double %1886, double %1893, double %1909)
%1911 = fcmp oge double %1910, 0.000000e+00
br i1 %1911, label %1912, label %1913
1912: ; preds = %1879
store i32 1, i32* %7
br label %2564
1913: ; preds = %1879
store i32 0, i32* %7
br label %2564
1914: ; preds = %1846
store i32 0, i32* %7
br label %2564
1915: ; preds = %1813
store i32 0, i32* %7
br label %2564
1916: ; preds = %1610
%1917 = load double*, double** %11
%1918 = getelementptr inbounds double, double* %1917, i64 0
%1919 = load double, double* %1918
%1920 = load double*, double** %10
%1921 = getelementptr inbounds double, double* %1920, i64 0
%1922 = load double, double* %1921
%1923 = fsub double %1919, %1922
%1924 = load double*, double** %12
%1925 = getelementptr inbounds double, double* %1924, i64 1
%1926 = load double, double* %1925
%1927 = load double*, double** %10
%1928 = getelementptr inbounds double, double* %1927, i64 1
%1929 = load double, double* %1928
%1930 = fsub double %1926, %1929
%1931 = load double*, double** %11
%1932 = getelementptr inbounds double, double* %1931, i64 1
%1933 = load double, double* %1932
%1934 = load double*, double** %10
%1935 = getelementptr inbounds double, double* %1934, i64 1
%1936 = load double, double* %1935
%1937 = fsub double %1933, %1936
%1938 = load double*, double** %12
%1939 = getelementptr inbounds double, double* %1938, i64 0
%1940 = load double, double* %1939
%1941 = load double*, double** %10
%1942 = getelementptr inbounds double, double* %1941, i64 0
%1943 = load double, double* %1942
%1944 = fsub double %1940, %1943
%1945 = fmul double %1937, %1944
%1946 = fneg double %1945
%1947 = call double @llvm.fmuladd.f64(double %1923, double %1930, double %1946)
%1948 = fcmp oge double %1947, 0.000000e+00
br i1 %1948, label %1949, label %2086
1949: ; preds = %1916
%1950 = load double*, double** %9
%1951 = getelementptr inbounds double, double* %1950, i64 0
%1952 = load double, double* %1951
%1953 = load double*, double** %11
%1954 = getelementptr inbounds double, double* %1953, i64 0
%1955 = load double, double* %1954
%1956 = fsub double %1952, %1955
%1957 = load double*, double** %10
%1958 = getelementptr inbounds double, double* %1957, i64 1
%1959 = load double, double* %1958
%1960 = load double*, double** %11
%1961 = getelementptr inbounds double, double* %1960, i64 1
%1962 = load double, double* %1961
%1963 = fsub double %1959, %1962
%1964 = load double*, double** %9
%1965 = getelementptr inbounds double, double* %1964, i64 1
%1966 = load double, double* %1965
%1967 = load double*, double** %11
%1968 = getelementptr inbounds double, double* %1967, i64 1
%1969 = load double, double* %1968
%1970 = fsub double %1966, %1969
%1971 = load double*, double** %10
%1972 = getelementptr inbounds double, double* %1971, i64 0
%1973 = load double, double* %1972
%1974 = load double*, double** %11
%1975 = getelementptr inbounds double, double* %1974, i64 0
%1976 = load double, double* %1975
%1977 = fsub double %1973, %1976
%1978 = fmul double %1970, %1977
%1979 = fneg double %1978
%1980 = call double @llvm.fmuladd.f64(double %1956, double %1963, double %1979)
%1981 = fcmp oge double %1980, 0.000000e+00
br i1 %1981, label %1982, label %2017
1982: ; preds = %1949
%1983 = load double*, double** %8
%1984 = getelementptr inbounds double, double* %1983, i64 0
%1985 = load double, double* %1984
%1986 = load double*, double** %10
%1987 = getelementptr inbounds double, double* %1986, i64 0
%1988 = load double, double* %1987
%1989 = fsub double %1985, %1988
%1990 = load double*, double** %12
%1991 = getelementptr inbounds double, double* %1990, i64 1
%1992 = load double, double* %1991
%1993 = load double*, double** %10
%1994 = getelementptr inbounds double, double* %1993, i64 1
%1995 = load double, double* %1994
%1996 = fsub double %1992, %1995
%1997 = load double*, double** %8
%1998 = getelementptr inbounds double, double* %1997, i64 1
%1999 = load double, double* %1998
%2000 = load double*, double** %10
%2001 = getelementptr inbounds double, double* %2000, i64 1
%2002 = load double, double* %2001
%2003 = fsub double %1999, %2002
%2004 = load double*, double** %12
%2005 = getelementptr inbounds double, double* %2004, i64 0
%2006 = load double, double* %2005
%2007 = load double*, double** %10
%2008 = getelementptr inbounds double, double* %2007, i64 0
%2009 = load double, double* %2008
%2010 = fsub double %2006, %2009
%2011 = fmul double %2003, %2010
%2012 = fneg double %2011
%2013 = call double @llvm.fmuladd.f64(double %1989, double %1996, double %2012)
%2014 = fcmp oge double %2013, 0.000000e+00
br i1 %2014, label %2015, label %2016
2015: ; preds = %1982
store i32 1, i32* %7
br label %2564
2016: ; preds = %1982
store i32 0, i32* %7
br label %2564
2017: ; preds = %1949
%2018 = load double*, double** %9
%2019 = getelementptr inbounds double, double* %2018, i64 0
%2020 = load double, double* %2019
%2021 = load double*, double** %13
%2022 = getelementptr inbounds double, double* %2021, i64 0
%2023 = load double, double* %2022
%2024 = fsub double %2020, %2023
%2025 = load double*, double** %10
%2026 = getelementptr inbounds double, double* %2025, i64 1
%2027 = load double, double* %2026
%2028 = load double*, double** %13
%2029 = getelementptr inbounds double, double* %2028, i64 1
%2030 = load double, double* %2029
%2031 = fsub double %2027, %2030
%2032 = load double*, double** %9
%2033 = getelementptr inbounds double, double* %2032, i64 1
%2034 = load double, double* %2033
%2035 = load double*, double** %13
%2036 = getelementptr inbounds double, double* %2035, i64 1
%2037 = load double, double* %2036
%2038 = fsub double %2034, %2037
%2039 = load double*, double** %10
%2040 = getelementptr inbounds double, double* %2039, i64 0
%2041 = load double, double* %2040
%2042 = load double*, double** %13
%2043 = getelementptr inbounds double, double* %2042, i64 0
%2044 = load double, double* %2043
%2045 = fsub double %2041, %2044
%2046 = fmul double %2038, %2045
%2047 = fneg double %2046
%2048 = call double @llvm.fmuladd.f64(double %2024, double %2031, double %2047)
%2049 = fcmp oge double %2048, 0.000000e+00
br i1 %2049, label %2050, label %2085
2050: ; preds = %2017
%2051 = load double*, double** %11
%2052 = getelementptr inbounds double, double* %2051, i64 0
%2053 = load double, double* %2052
%2054 = load double*, double** %13
%2055 = getelementptr inbounds double, double* %2054, i64 0
%2056 = load double, double* %2055
%2057 = fsub double %2053, %2056
%2058 = load double*, double** %10
%2059 = getelementptr inbounds double, double* %2058, i64 1
%2060 = load double, double* %2059
%2061 = load double*, double** %13
%2062 = getelementptr inbounds double, double* %2061, i64 1
%2063 = load double, double* %2062
%2064 = fsub double %2060, %2063
%2065 = load double*, double** %11
%2066 = getelementptr inbounds double, double* %2065, i64 1
%2067 = load double, double* %2066
%2068 = load double*, double** %13
%2069 = getelementptr inbounds double, double* %2068, i64 1
%2070 = load double, double* %2069
%2071 = fsub double %2067, %2070
%2072 = load double*, double** %10
%2073 = getelementptr inbounds double, double* %2072, i64 0
%2074 = load double, double* %2073
%2075 = load double*, double** %13
%2076 = getelementptr inbounds double, double* %2075, i64 0
%2077 = load double, double* %2076
%2078 = fsub double %2074, %2077
%2079 = fmul double %2071, %2078
%2080 = fneg double %2079
%2081 = call double @llvm.fmuladd.f64(double %2057, double %2064, double %2080)
%2082 = fcmp oge double %2081, 0.000000e+00
br i1 %2082, label %2083, label %2084
2083: ; preds = %2050
store i32 1, i32* %7
br label %2564
2084: ; preds = %2050
store i32 0, i32* %7
br label %2564
2085: ; preds = %2017
store i32 0, i32* %7
br label %2564
2086: ; preds = %1916
store i32 0, i32* %7
br label %2564
2087: ; preds = %1237
%2088 = load double*, double** %12
%2089 = getelementptr inbounds double, double* %2088, i64 0
%2090 = load double, double* %2089
%2091 = load double*, double** %9
%2092 = getelementptr inbounds double, double* %2091, i64 0
%2093 = load double, double* %2092
%2094 = fsub double %2090, %2093
%2095 = load double*, double** %13
%2096 = getelementptr inbounds double, double* %2095, i64 1
%2097 = load double, double* %2096
%2098 = load double*, double** %9
%2099 = getelementptr inbounds double, double* %2098, i64 1
%2100 = load double, double* %2099
%2101 = fsub double %2097, %2100
%2102 = load double*, double** %12
%2103 = getelementptr inbounds double, double* %2102, i64 1
%2104 = load double, double* %2103
%2105 = load double*, double** %9
%2106 = getelementptr inbounds double, double* %2105, i64 1
%2107 = load double, double* %2106
%2108 = fsub double %2104, %2107
%2109 = load double*, double** %13
%2110 = getelementptr inbounds double, double* %2109, i64 0
%2111 = load double, double* %2110
%2112 = load double*, double** %9
%2113 = getelementptr inbounds double, double* %2112, i64 0
%2114 = load double, double* %2113
%2115 = fsub double %2111, %2114
%2116 = fmul double %2108, %2115
%2117 = fneg double %2116
%2118 = call double @llvm.fmuladd.f64(double %2094, double %2101, double %2117)
%2119 = fcmp oge double %2118, 0.000000e+00
br i1 %2119, label %2120, label %2393
2120: ; preds = %2087
%2121 = load double*, double** %12
%2122 = getelementptr inbounds double, double* %2121, i64 0
%2123 = load double, double* %2122
%2124 = load double*, double** %9
%2125 = getelementptr inbounds double, double* %2124, i64 0
%2126 = load double, double* %2125
%2127 = fsub double %2123, %2126
%2128 = load double*, double** %11
%2129 = getelementptr inbounds double, double* %2128, i64 1
%2130 = load double, double* %2129
%2131 = load double*, double** %9
%2132 = getelementptr inbounds double, double* %2131, i64 1
%2133 = load double, double* %2132
%2134 = fsub double %2130, %2133
%2135 = load double*, double** %12
%2136 = getelementptr inbounds double, double* %2135, i64 1
%2137 = load double, double* %2136
%2138 = load double*, double** %9
%2139 = getelementptr inbounds double, double* %2138, i64 1
%2140 = load double, double* %2139
%2141 = fsub double %2137, %2140
%2142 = load double*, double** %11
%2143 = getelementptr inbounds double, double* %2142, i64 0
%2144 = load double, double* %2143
%2145 = load double*, double** %9
%2146 = getelementptr inbounds double, double* %2145, i64 0
%2147 = load double, double* %2146
%2148 = fsub double %2144, %2147
%2149 = fmul double %2141, %2148
%2150 = fneg double %2149
%2151 = call double @llvm.fmuladd.f64(double %2127, double %2134, double %2150)
%2152 = fcmp ole double %2151, 0.000000e+00
br i1 %2152, label %2153, label %2290
2153: ; preds = %2120
%2154 = load double*, double** %8
%2155 = getelementptr inbounds double, double* %2154, i64 0
%2156 = load double, double* %2155
%2157 = load double*, double** %9
%2158 = getelementptr inbounds double, double* %2157, i64 0
%2159 = load double, double* %2158
%2160 = fsub double %2156, %2159
%2161 = load double*, double** %13
%2162 = getelementptr inbounds double, double* %2161, i64 1
%2163 = load double, double* %2162
%2164 = load double*, double** %9
%2165 = getelementptr inbounds double, double* %2164, i64 1
%2166 = load double, double* %2165
%2167 = fsub double %2163, %2166
%2168 = load double*, double** %8
%2169 = getelementptr inbounds double, double* %2168, i64 1
%2170 = load double, double* %2169
%2171 = load double*, double** %9
%2172 = getelementptr inbounds double, double* %2171, i64 1
%2173 = load double, double* %2172
%2174 = fsub double %2170, %2173
%2175 = load double*, double** %13
%2176 = getelementptr inbounds double, double* %2175, i64 0
%2177 = load double, double* %2176
%2178 = load double*, double** %9
%2179 = getelementptr inbounds double, double* %2178, i64 0
%2180 = load double, double* %2179
%2181 = fsub double %2177, %2180
%2182 = fmul double %2174, %2181
%2183 = fneg double %2182
%2184 = call double @llvm.fmuladd.f64(double %2160, double %2167, double %2183)
%2185 = fcmp ogt double %2184, 0.000000e+00
br i1 %2185, label %2186, label %2221
2186: ; preds = %2153
%2187 = load double*, double** %8
%2188 = getelementptr inbounds double, double* %2187, i64 0
%2189 = load double, double* %2188
%2190 = load double*, double** %9
%2191 = getelementptr inbounds double, double* %2190, i64 0
%2192 = load double, double* %2191
%2193 = fsub double %2189, %2192
%2194 = load double*, double** %11
%2195 = getelementptr inbounds double, double* %2194, i64 1
%2196 = load double, double* %2195
%2197 = load double*, double** %9
%2198 = getelementptr inbounds double, double* %2197, i64 1
%2199 = load double, double* %2198
%2200 = fsub double %2196, %2199
%2201 = load double*, double** %8
%2202 = getelementptr inbounds double, double* %2201, i64 1
%2203 = load double, double* %2202
%2204 = load double*, double** %9
%2205 = getelementptr inbounds double, double* %2204, i64 1
%2206 = load double, double* %2205
%2207 = fsub double %2203, %2206
%2208 = load double*, double** %11
%2209 = getelementptr inbounds double, double* %2208, i64 0
%2210 = load double, double* %2209
%2211 = load double*, double** %9
%2212 = getelementptr inbounds double, double* %2211, i64 0
%2213 = load double, double* %2212
%2214 = fsub double %2210, %2213
%2215 = fmul double %2207, %2214
%2216 = fneg double %2215
%2217 = call double @llvm.fmuladd.f64(double %2193, double %2200, double %2216)
%2218 = fcmp ole double %2217, 0.000000e+00
br i1 %2218, label %2219, label %2220
2219: ; preds = %2186
store i32 1, i32* %7
br label %2564
2220: ; preds = %2186
store i32 0, i32* %7
br label %2564
2221: ; preds = %2153
%2222 = load double*, double** %8
%2223 = getelementptr inbounds double, double* %2222, i64 0
%2224 = load double, double* %2223
%2225 = load double*, double** %10
%2226 = getelementptr inbounds double, double* %2225, i64 0
%2227 = load double, double* %2226
%2228 = fsub double %2224, %2227
%2229 = load double*, double** %13
%2230 = getelementptr inbounds double, double* %2229, i64 1
%2231 = load double, double* %2230
%2232 = load double*, double** %10
%2233 = getelementptr inbounds double, double* %2232, i64 1
%2234 = load double, double* %2233
%2235 = fsub double %2231, %2234
%2236 = load double*, double** %8
%2237 = getelementptr inbounds double, double* %2236, i64 1
%2238 = load double, double* %2237
%2239 = load double*, double** %10
%2240 = getelementptr inbounds double, double* %2239, i64 1
%2241 = load double, double* %2240
%2242 = fsub double %2238, %2241
%2243 = load double*, double** %13
%2244 = getelementptr inbounds double, double* %2243, i64 0
%2245 = load double, double* %2244
%2246 = load double*, double** %10
%2247 = getelementptr inbounds double, double* %2246, i64 0
%2248 = load double, double* %2247
%2249 = fsub double %2245, %2248
%2250 = fmul double %2242, %2249
%2251 = fneg double %2250
%2252 = call double @llvm.fmuladd.f64(double %2228, double %2235, double %2251)
%2253 = fcmp oge double %2252, 0.000000e+00
br i1 %2253, label %2254, label %2289
2254: ; preds = %2221
%2255 = load double*, double** %9
%2256 = getelementptr inbounds double, double* %2255, i64 0
%2257 = load double, double* %2256
%2258 = load double*, double** %13
%2259 = getelementptr inbounds double, double* %2258, i64 0
%2260 = load double, double* %2259
%2261 = fsub double %2257, %2260
%2262 = load double*, double** %10
%2263 = getelementptr inbounds double, double* %2262, i64 1
%2264 = load double, double* %2263
%2265 = load double*, double** %13
%2266 = getelementptr inbounds double, double* %2265, i64 1
%2267 = load double, double* %2266
%2268 = fsub double %2264, %2267
%2269 = load double*, double** %9
%2270 = getelementptr inbounds double, double* %2269, i64 1
%2271 = load double, double* %2270
%2272 = load double*, double** %13
%2273 = getelementptr inbounds double, double* %2272, i64 1
%2274 = load double, double* %2273
%2275 = fsub double %2271, %2274
%2276 = load double*, double** %10
%2277 = getelementptr inbounds double, double* %2276, i64 0
%2278 = load double, double* %2277
%2279 = load double*, double** %13
%2280 = getelementptr inbounds double, double* %2279, i64 0
%2281 = load double, double* %2280
%2282 = fsub double %2278, %2281
%2283 = fmul double %2275, %2282
%2284 = fneg double %2283
%2285 = call double @llvm.fmuladd.f64(double %2261, double %2268, double %2284)
%2286 = fcmp oge double %2285, 0.000000e+00
br i1 %2286, label %2287, label %2288
2287: ; preds = %2254
store i32 1, i32* %7
br label %2564
2288: ; preds = %2254
store i32 0, i32* %7
br label %2564
2289: ; preds = %2221
store i32 0, i32* %7
br label %2564
2290: ; preds = %2120
%2291 = load double*, double** %8
%2292 = getelementptr inbounds double, double* %2291, i64 0
%2293 = load double, double* %2292
%2294 = load double*, double** %9
%2295 = getelementptr inbounds double, double* %2294, i64 0
%2296 = load double, double* %2295
%2297 = fsub double %2293, %2296
%2298 = load double*, double** %11
%2299 = getelementptr inbounds double, double* %2298, i64 1
%2300 = load double, double* %2299
%2301 = load double*, double** %9
%2302 = getelementptr inbounds double, double* %2301, i64 1
%2303 = load double, double* %2302
%2304 = fsub double %2300, %2303
%2305 = load double*, double** %8
%2306 = getelementptr inbounds double, double* %2305, i64 1
%2307 = load double, double* %2306
%2308 = load double*, double** %9
%2309 = getelementptr inbounds double, double* %2308, i64 1
%2310 = load double, double* %2309
%2311 = fsub double %2307, %2310
%2312 = load double*, double** %11
%2313 = getelementptr inbounds double, double* %2312, i64 0
%2314 = load double, double* %2313
%2315 = load double*, double** %9
%2316 = getelementptr inbounds double, double* %2315, i64 0
%2317 = load double, double* %2316
%2318 = fsub double %2314, %2317
%2319 = fmul double %2311, %2318
%2320 = fneg double %2319
%2321 = call double @llvm.fmuladd.f64(double %2297, double %2304, double %2320)
%2322 = fcmp ole double %2321, 0.000000e+00
br i1 %2322, label %2323, label %2392
2323: ; preds = %2290
%2324 = load double*, double** %12
%2325 = getelementptr inbounds double, double* %2324, i64 0
%2326 = load double, double* %2325
%2327 = load double*, double** %10
%2328 = getelementptr inbounds double, double* %2327, i64 0
%2329 = load double, double* %2328
%2330 = fsub double %2326, %2329
%2331 = load double*, double** %11
%2332 = getelementptr inbounds double, double* %2331, i64 1
%2333 = load double, double* %2332
%2334 = load double*, double** %10
%2335 = getelementptr inbounds double, double* %2334, i64 1
%2336 = load double, double* %2335
%2337 = fsub double %2333, %2336
%2338 = load double*, double** %12
%2339 = getelementptr inbounds double, double* %2338, i64 1
%2340 = load double, double* %2339
%2341 = load double*, double** %10
%2342 = getelementptr inbounds double, double* %2341, i64 1
%2343 = load double, double* %2342
%2344 = fsub double %2340, %2343
%2345 = load double*, double** %11
%2346 = getelementptr inbounds double, double* %2345, i64 0
%2347 = load double, double* %2346
%2348 = load double*, double** %10
%2349 = getelementptr inbounds double, double* %2348, i64 0
%2350 = load double, double* %2349
%2351 = fsub double %2347, %2350
%2352 = fmul double %2344, %2351
%2353 = fneg double %2352
%2354 = call double @llvm.fmuladd.f64(double %2330, double %2337, double %2353)
%2355 = fcmp ole double %2354, 0.000000e+00
br i1 %2355, label %2356, label %2391
2356: ; preds = %2323
%2357 = load double*, double** %9
%2358 = getelementptr inbounds double, double* %2357, i64 0
%2359 = load double, double* %2358
%2360 = load double*, double** %11
%2361 = getelementptr inbounds double, double* %2360, i64 0
%2362 = load double, double* %2361
%2363 = fsub double %2359, %2362
%2364 = load double*, double** %10
%2365 = getelementptr inbounds double, double* %2364, i64 1
%2366 = load double, double* %2365
%2367 = load double*, double** %11
%2368 = getelementptr inbounds double, double* %2367, i64 1
%2369 = load double, double* %2368
%2370 = fsub double %2366, %2369
%2371 = load double*, double** %9
%2372 = getelementptr inbounds double, double* %2371, i64 1
%2373 = load double, double* %2372
%2374 = load double*, double** %11
%2375 = getelementptr inbounds double, double* %2374, i64 1
%2376 = load double, double* %2375
%2377 = fsub double %2373, %2376
%2378 = load double*, double** %10
%2379 = getelementptr inbounds double, double* %2378, i64 0
%2380 = load double, double* %2379
%2381 = load double*, double** %11
%2382 = getelementptr inbounds double, double* %2381, i64 0
%2383 = load double, double* %2382
%2384 = fsub double %2380, %2383
%2385 = fmul double %2377, %2384
%2386 = fneg double %2385
%2387 = call double @llvm.fmuladd.f64(double %2363, double %2370, double %2386)
%2388 = fcmp oge double %2387, 0.000000e+00
br i1 %2388, label %2389, label %2390
2389: ; preds = %2356
store i32 1, i32* %7
br label %2564
2390: ; preds = %2356
store i32 0, i32* %7
br label %2564
2391: ; preds = %2323
store i32 0, i32* %7
br label %2564
2392: ; preds = %2290
store i32 0, i32* %7
br label %2564
2393: ; preds = %2087
%2394 = load double*, double** %12
%2395 = getelementptr inbounds double, double* %2394, i64 0
%2396 = load double, double* %2395
%2397 = load double*, double** %10
%2398 = getelementptr inbounds double, double* %2397, i64 0
%2399 = load double, double* %2398
%2400 = fsub double %2396, %2399
%2401 = load double*, double** %13
%2402 = getelementptr inbounds double, double* %2401, i64 1
%2403 = load double, double* %2402
%2404 = load double*, double** %10
%2405 = getelementptr inbounds double, double* %2404, i64 1
%2406 = load double, double* %2405
%2407 = fsub double %2403, %2406
%2408 = load double*, double** %12
%2409 = getelementptr inbounds double, double* %2408, i64 1
%2410 = load double, double* %2409
%2411 = load double*, double** %10
%2412 = getelementptr inbounds double, double* %2411, i64 1
%2413 = load double, double* %2412
%2414 = fsub double %2410, %2413
%2415 = load double*, double** %13
%2416 = getelementptr inbounds double, double* %2415, i64 0
%2417 = load double, double* %2416
%2418 = load double*, double** %10
%2419 = getelementptr inbounds double, double* %2418, i64 0
%2420 = load double, double* %2419
%2421 = fsub double %2417, %2420
%2422 = fmul double %2414, %2421
%2423 = fneg double %2422
%2424 = call double @llvm.fmuladd.f64(double %2400, double %2407, double %2423)
%2425 = fcmp oge double %2424, 0.000000e+00
br i1 %2425, label %2426, label %2563
2426: ; preds = %2393
%2427 = load double*, double** %9
%2428 = getelementptr inbounds double, double* %2427, i64 0
%2429 = load double, double* %2428
%2430 = load double*, double** %12
%2431 = getelementptr inbounds double, double* %2430, i64 0
%2432 = load double, double* %2431
%2433 = fsub double %2429, %2432
%2434 = load double*, double** %10
%2435 = getelementptr inbounds double, double* %2434, i64 1
%2436 = load double, double* %2435
%2437 = load double*, double** %12
%2438 = getelementptr inbounds double, double* %2437, i64 1
%2439 = load double, double* %2438
%2440 = fsub double %2436, %2439
%2441 = load double*, double** %9
%2442 = getelementptr inbounds double, double* %2441, i64 1
%2443 = load double, double* %2442
%2444 = load double*, double** %12
%2445 = getelementptr inbounds double, double* %2444, i64 1
%2446 = load double, double* %2445
%2447 = fsub double %2443, %2446
%2448 = load double*, double** %10
%2449 = getelementptr inbounds double, double* %2448, i64 0
%2450 = load double, double* %2449
%2451 = load double*, double** %12
%2452 = getelementptr inbounds double, double* %2451, i64 0
%2453 = load double, double* %2452
%2454 = fsub double %2450, %2453
%2455 = fmul double %2447, %2454
%2456 = fneg double %2455
%2457 = call double @llvm.fmuladd.f64(double %2433, double %2440, double %2456)
%2458 = fcmp oge double %2457, 0.000000e+00
br i1 %2458, label %2459, label %2494
2459: ; preds = %2426
%2460 = load double*, double** %8
%2461 = getelementptr inbounds double, double* %2460, i64 0
%2462 = load double, double* %2461
%2463 = load double*, double** %10
%2464 = getelementptr inbounds double, double* %2463, i64 0
%2465 = load double, double* %2464
%2466 = fsub double %2462, %2465
%2467 = load double*, double** %13
%2468 = getelementptr inbounds double, double* %2467, i64 1
%2469 = load double, double* %2468
%2470 = load double*, double** %10
%2471 = getelementptr inbounds double, double* %2470, i64 1
%2472 = load double, double* %2471
%2473 = fsub double %2469, %2472
%2474 = load double*, double** %8
%2475 = getelementptr inbounds double, double* %2474, i64 1
%2476 = load double, double* %2475
%2477 = load double*, double** %10
%2478 = getelementptr inbounds double, double* %2477, i64 1
%2479 = load double, double* %2478
%2480 = fsub double %2476, %2479
%2481 = load double*, double** %13
%2482 = getelementptr inbounds double, double* %2481, i64 0
%2483 = load double, double* %2482
%2484 = load double*, double** %10
%2485 = getelementptr inbounds double, double* %2484, i64 0
%2486 = load double, double* %2485
%2487 = fsub double %2483, %2486
%2488 = fmul double %2480, %2487
%2489 = fneg double %2488
%2490 = call double @llvm.fmuladd.f64(double %2466, double %2473, double %2489)
%2491 = fcmp oge double %2490, 0.000000e+00
br i1 %2491, label %2492, label %2493
2492: ; preds = %2459
store i32 1, i32* %7
br label %2564
2493: ; preds = %2459
store i32 0, i32* %7
br label %2564
2494: ; preds = %2426
%2495 = load double*, double** %9
%2496 = getelementptr inbounds double, double* %2495, i64 0
%2497 = load double, double* %2496
%2498 = load double*, double** %11
%2499 = getelementptr inbounds double, double* %2498, i64 0
%2500 = load double, double* %2499
%2501 = fsub double %2497, %2500
%2502 = load double*, double** %10
%2503 = getelementptr inbounds double, double* %2502, i64 1
%2504 = load double, double* %2503
%2505 = load double*, double** %11
%2506 = getelementptr inbounds double, double* %2505, i64 1
%2507 = load double, double* %2506
%2508 = fsub double %2504, %2507
%2509 = load double*, double** %9
%2510 = getelementptr inbounds double, double* %2509, i64 1
%2511 = load double, double* %2510
%2512 = load double*, double** %11
%2513 = getelementptr inbounds double, double* %2512, i64 1
%2514 = load double, double* %2513
%2515 = fsub double %2511, %2514
%2516 = load double*, double** %10
%2517 = getelementptr inbounds double, double* %2516, i64 0
%2518 = load double, double* %2517
%2519 = load double*, double** %11
%2520 = getelementptr inbounds double, double* %2519, i64 0
%2521 = load double, double* %2520
%2522 = fsub double %2518, %2521
%2523 = fmul double %2515, %2522
%2524 = fneg double %2523
%2525 = call double @llvm.fmuladd.f64(double %2501, double %2508, double %2524)
%2526 = fcmp oge double %2525, 0.000000e+00
br i1 %2526, label %2527, label %2562
2527: ; preds = %2494
%2528 = load double*, double** %12
%2529 = getelementptr inbounds double, double* %2528, i64 0
%2530 = load double, double* %2529
%2531 = load double*, double** %11
%2532 = getelementptr inbounds double, double* %2531, i64 0
%2533 = load double, double* %2532
%2534 = fsub double %2530, %2533
%2535 = load double*, double** %10
%2536 = getelementptr inbounds double, double* %2535, i64 1
%2537 = load double, double* %2536
%2538 = load double*, double** %11
%2539 = getelementptr inbounds double, double* %2538, i64 1
%2540 = load double, double* %2539
%2541 = fsub double %2537, %2540
%2542 = load double*, double** %12
%2543 = getelementptr inbounds double, double* %2542, i64 1
%2544 = load double, double* %2543
%2545 = load double*, double** %11
%2546 = getelementptr inbounds double, double* %2545, i64 1
%2547 = load double, double* %2546
%2548 = fsub double %2544, %2547
%2549 = load double*, double** %10
%2550 = getelementptr inbounds double, double* %2549, i64 0
%2551 = load double, double* %2550
%2552 = load double*, double** %11
%2553 = getelementptr inbounds double, double* %2552, i64 0
%2554 = load double, double* %2553
%2555 = fsub double %2551, %2554
%2556 = fmul double %2548, %2555
%2557 = fneg double %2556
%2558 = call double @llvm.fmuladd.f64(double %2534, double %2541, double %2557)
%2559 = fcmp oge double %2558, 0.000000e+00
br i1 %2559, label %2560, label %2561
2560: ; preds = %2527
store i32 1, i32* %7
br label %2564
2561: ; preds = %2527
store i32 0, i32* %7
br label %2564
2562: ; preds = %2494
store i32 0, i32* %7
br label %2564
2563: ; preds = %2393
store i32 0, i32* %7
br label %2564
2564: ; preds = %2563, %2562, %2561, %2560, %2493, %2492, %2392, %2391, %2390, %2389, %2289, %2288, %2287, %2220, %2219, %2086, %2085, %2084, %2083, %2016, %2015, %1915, %1914, %1913, %1912, %1812, %1811, %1810, %1743, %1742, %1609, %1608, %1607, %1606, %1572, %1472, %1471, %1470, %1403, %1402, %1236, %1235, %1234, %1233, %1166, %1165, %1065, %1064, %1063, %1062, %962, %961, %960, %893, %892, %759, %758, %757, %756, %722, %622, %621, %620, %553, %552, %419, %418, %417, %416, %382, %282, %281, %280, %213, %212, %112
%2565 = load i32, i32* %7
ret i32 %2565
}

LLVM IR (-O2):
define i32 @ccw_tri_tri_intersection_2d(double* nocapture %0, double* nocapture %1, double* %2, double* nocapture %3, double* nocapture %4, double* nocapture %5) {
%7 = load double, double* %3
%8 = load double, double* %0
%9 = getelementptr inbounds double, double* %4, i64 1
%10 = load double, double* %9
%11 = getelementptr inbounds double, double* %0, i64 1
%12 = load double, double* %11
%13 = getelementptr inbounds double, double* %3, i64 1
%14 = load double, double* %13
%15 = fsub double %14, %12
%16 = load double, double* %4
%17 = insertelement <2 x double> poison, double %16, i64 0
%18 = insertelement <2 x double> %17, double %7, i64 1
%19 = insertelement <2 x double> poison, double %8, i64 0
%20 = shufflevector <2 x double> %19, <2 x double> poison, <2 x i32> zeroinitializer
%21 = fsub <2 x double> %18, %20
%22 = getelementptr inbounds double, double* %5, i64 1
%23 = load double, double* %22
%24 = insertelement <2 x double> poison, double %23, i64 0
%25 = insertelement <2 x double> %24, double %10, i64 1
%26 = insertelement <2 x double> poison, double %12, i64 0
%27 = shufflevector <2 x double> %26, <2 x double> poison, <2 x i32> zeroinitializer
%28 = fsub <2 x double> %25, %27
%29 = load double, double* %5
%30 = fsub double %29, %8
%31 = extractelement <2 x double> %28, i64 1
%32 = insertelement <2 x double> poison, double %31, i64 0
%33 = insertelement <2 x double> %32, double %15, i64 1
%34 = fneg <2 x double> %33
%35 = insertelement <2 x double> poison, double %30, i64 0
%36 = shufflevector <2 x double> %35, <2 x double> %21, <2 x i32> <i32 0, i32 2>
%37 = fmul <2 x double> %36, %34
%38 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %21, <2 x double> %28, <2 x double> %37)
%39 = fcmp ult <2 x double> %38, zeroinitializer
%40 = extractelement <2 x i1> %39, i64 1
br i1 %40, label %333, label %41
41: ; preds = %6
%42 = extractelement <2 x double> %28, i64 0
%43 = fneg double %42
%44 = extractelement <2 x double> %21, i64 1
%45 = fmul double %44, %43
%46 = tail call double @llvm.fmuladd.f64(double %30, double %15, double %45)
%47 = fcmp ult double %46, 0.000000e+00
%48 = extractelement <2 x i1> %39, i64 0
br i1 %48, label %132, label %49
49: ; preds = %41
br i1 %47, label %50, label %651
50: ; preds = %49
%51 = load double, double* %1
%52 = fsub double %29, %51
%53 = getelementptr inbounds double, double* %1, i64 1
%54 = load double, double* %53
%55 = fsub double %14, %54
%56 = fsub double %23, %54
%57 = fsub double %7, %51
%58 = fneg double %56
%59 = fmul double %57, %58
%60 = tail call double @llvm.fmuladd.f64(double %52, double %55, double %59)
%61 = fcmp ult double %60, 0.000000e+00
br i1 %61, label %97, label %62
62: ; preds = %50
%63 = fsub double %8, %51
%64 = fsub double %12, %54
%65 = fneg double %64
%66 = fmul double %57, %65
%67 = tail call double @llvm.fmuladd.f64(double %63, double %55, double %66)
%68 = fcmp ult double %67, 0.000000e+00
br i1 %68, label %78, label %69
69: ; preds = %62
%70 = fsub double %8, %29
%71 = fsub double %54, %23
%72 = fsub double %12, %23
%73 = fsub double %51, %29
%74 = fneg double %72
%75 = fmul double %73, %74
%76 = tail call double @llvm.fmuladd.f64(double %70, double %71, double %75)
%77 = fcmp oge double %76, 0.000000e+00
br label %651
78: ; preds = %62
%79 = fsub double %51, %7
%80 = getelementptr inbounds double, double* %2, i64 1
%81 = load double, double* %80
%82 = fsub double %81, %14
%83 = fsub double %54, %14
%84 = load double, double* %2
%85 = fsub double %84, %7
%86 = fneg double %83
%87 = fmul double %85, %86
%88 = tail call double @llvm.fmuladd.f64(double %79, double %82, double %87)
%89 = fcmp ult double %88, 0.000000e+00
br i1 %89, label %651, label %90
90: ; preds = %78
%91 = fsub double %12, %14
%92 = fsub double %8, %7
%93 = fneg double %82
%94 = fmul double %92, %93
%95 = tail call double @llvm.fmuladd.f64(double %85, double %91, double %94)
%96 = fcmp oge double %95, 0.000000e+00
br label %651
97: ; preds = %50
%98 = load double, double* %2
%99 = fsub double %29, %98
%100 = getelementptr inbounds double, double* %2, i64 1
%101 = load double, double* %100
%102 = fsub double %14, %101
%103 = fsub double %23, %101
%104 = fsub double %7, %98
%105 = fneg double %103
%106 = fmul double %104, %105
%107 = tail call double @llvm.fmuladd.f64(double %99, double %102, double %106)
%108 = fcmp ult double %107, 0.000000e+00
br i1 %108, label %651, label %109
109: ; preds = %97
%110 = fsub double %8, %98
%111 = fsub double %12, %101
%112 = fneg double %111
%113 = fmul double %104, %112
%114 = tail call double @llvm.fmuladd.f64(double %110, double %102, double %113)
%115 = fcmp ult double %114, 0.000000e+00
br i1 %115, label %651, label %116
116: ; preds = %109
%117 = fsub double %8, %29
%118 = fsub double %101, %23
%119 = fsub double %12, %23
%120 = fsub double %98, %29
%121 = fneg double %119
%122 = fmul double %120, %121
%123 = tail call double @llvm.fmuladd.f64(double %117, double %118, double %122)
%124 = fcmp ult double %123, 0.000000e+00
br i1 %124, label %125, label %651
125: ; preds = %116
%126 = fsub double %51, %29
%127 = fsub double %54, %23
%128 = fneg double %127
%129 = fmul double %120, %128
%130 = tail call double @llvm.fmuladd.f64(double %126, double %118, double %129)
%131 = fcmp oge double %130, 0.000000e+00
br label %651
132: ; preds = %41
%133 = load double, double* %1
br i1 %47, label %215, label %134
134: ; preds = %132
%135 = fsub double %16, %133
%136 = getelementptr inbounds double, double* %1, i64 1
%137 = load double, double* %136
%138 = fsub double %23, %137
%139 = fsub double %10, %137
%140 = fsub double %29, %133
%141 = fneg double %139
%142 = fmul double %140, %141
%143 = tail call double @llvm.fmuladd.f64(double %135, double %138, double %142)
%144 = fcmp ult double %143, 0.000000e+00
br i1 %144, label %180, label %145
145: ; preds = %134
%146 = fsub double %8, %133
%147 = fsub double %12, %137
%148 = fneg double %147
%149 = fmul double %140, %148
%150 = tail call double @llvm.fmuladd.f64(double %146, double %138, double %149)
%151 = fcmp ult double %150, 0.000000e+00
br i1 %151, label %161, label %152
152: ; preds = %145
%153 = fsub double %8, %16
%154 = fsub double %137, %10
%155 = fsub double %12, %10
%156 = fsub double %133, %16
%157 = fneg double %155
%158 = fmul double %156, %157
%159 = tail call double @llvm.fmuladd.f64(double %153, double %154, double %158)
%160 = fcmp oge double %159, 0.000000e+00
br label %651
161: ; preds = %145
%162 = fsub double %133, %29
%163 = getelementptr inbounds double, double* %2, i64 1
%164 = load double, double* %163
%165 = fsub double %164, %23
%166 = fsub double %137, %23
%167 = load double, double* %2
%168 = fsub double %167, %29
%169 = fneg double %166
%170 = fmul double %168, %169
%171 = tail call double @llvm.fmuladd.f64(double %162, double %165, double %170)
%172 = fcmp ult double %171, 0.000000e+00
br i1 %172, label %651, label %173
173: ; preds = %161
%174 = fsub double %12, %23
%175 = fsub double %8, %29
%176 = fneg double %165
%177 = fmul double %175, %176
%178 = tail call double @llvm.fmuladd.f64(double %168, double %174, double %177)
%179 = fcmp oge double %178, 0.000000e+00
br label %651
180: ; preds = %134
%181 = load double, double* %2
%182 = fsub double %16, %181
%183 = getelementptr inbounds double, double* %2, i64 1
%184 = load double, double* %183
%185 = fsub double %23, %184
%186 = fsub double %10, %184
%187 = fsub double %29, %181
%188 = fneg double %186
%189 = fmul double %187, %188
%190 = tail call double @llvm.fmuladd.f64(double %182, double %185, double %189)
%191 = fcmp ult double %190, 0.000000e+00
br i1 %191, label %651, label %192
192: ; preds = %180
%193 = fsub double %8, %181
%194 = fsub double %12, %184
%195 = fneg double %194
%196 = fmul double %187, %195
%197 = tail call double @llvm.fmuladd.f64(double %193, double %185, double %196)
%198 = fcmp ult double %197, 0.000000e+00
br i1 %198, label %651, label %199
199: ; preds = %192
%200 = fsub double %8, %16
%201 = fsub double %184, %10
%202 = fsub double %12, %10
%203 = fsub double %181, %16
%204 = fneg double %202
%205 = fmul double %203, %204
%206 = tail call double @llvm.fmuladd.f64(double %200, double %201, double %205)
%207 = fcmp ult double %206, 0.000000e+00
br i1 %207, label %208, label %651
208: ; preds = %199
%209 = fsub double %133, %16
%210 = fsub double %137, %10
%211 = fneg double %210
%212 = fmul double %203, %211
%213 = tail call double @llvm.fmuladd.f64(double %209, double %201, double %212)
%214 = fcmp oge double %213, 0.000000e+00
br label %651
215: ; preds = %132
%216 = fsub double %29, %133
%217 = getelementptr inbounds double, double* %1, i64 1
%218 = load double, double* %217
%219 = fsub double %14, %218
%220 = fsub double %23, %218
%221 = fsub double %7, %133
%222 = fneg double %220
%223 = fmul double %221, %222
%224 = tail call double @llvm.fmuladd.f64(double %216, double %219, double %223)
%225 = fcmp ult double %224, 0.000000e+00
br i1 %225, label %289, label %226
226: ; preds = %215
%227 = fsub double %10, %218
%228 = fsub double %16, %133
%229 = fmul double %228, %222
%230 = tail call double @llvm.fmuladd.f64(double %216, double %227, double %229)
%231 = fcmp ugt double %230, 0.000000e+00
%232 = fsub double %8, %133
%233 = fsub double %12, %218
%234 = fneg double %233
br i1 %231, label %264, label %235
235: ; preds = %226
%236 = fmul double %221, %234
%237 = tail call double @llvm.fmuladd.f64(double %232, double %219, double %236)
%238 = fcmp ogt double %237, 0.000000e+00
br i1 %238, label %239, label %243
239: ; preds = %235
%240 = fmul double %228, %234
%241 = tail call double @llvm.fmuladd.f64(double %232, double %227, double %240)
%242 = fcmp ole double %241, 0.000000e+00
br label %651
243: ; preds = %235
%244 = load double, double* %2
%245 = fsub double %8, %244
%246 = getelementptr inbounds double, double* %2, i64 1
%247 = load double, double* %246
%248 = fsub double %14, %247
%249 = fsub double %12, %247
%250 = fsub double %7, %244
%251 = fneg double %249
%252 = fmul double %250, %251
%253 = tail call double @llvm.fmuladd.f64(double %245, double %248, double %252)
%254 = fcmp ult double %253, 0.000000e+00
br i1 %254, label %651, label %255
255: ; preds = %243
%256 = fsub double %133, %7
%257 = fsub double %247, %14
%258 = fsub double %218, %14
%259 = fsub double %244, %7
%260 = fneg double %258
%261 = fmul double %259, %260
%262 = tail call double @llvm.fmuladd.f64(double %256, double %257, double %261)
%263 = fcmp oge double %262, 0.000000e+00
br label %651
264: ; preds = %226
%265 = fmul double %228, %234
%266 = tail call double @llvm.fmuladd.f64(double %232, double %227, double %265)
%267 = fcmp ugt double %266, 0.000000e+00
br i1 %267, label %651, label %268
268: ; preds = %264
%269 = load double, double* %2
%270 = fsub double %29, %269
%271 = getelementptr inbounds double, double* %2, i64 1
%272 = load double, double* %271
%273 = fsub double %10, %272
%274 = fsub double %23, %272
%275 = fsub double %16, %269
%276 = fneg double %274
%277 = fmul double %275, %276
%278 = tail call double @llvm.fmuladd.f64(double %270, double %273, double %277)
%279 = fcmp ugt double %278, 0.000000e+00
br i1 %279, label %651, label %280
280: ; preds = %268
%281 = fsub double %133, %16
%282 = fsub double %272, %10
%283 = fsub double %218, %10
%284 = fsub double %269, %16
%285 = fneg double %283
%286 = fmul double %284, %285
%287 = tail call double @llvm.fmuladd.f64(double %281, double %282, double %286)
%288 = fcmp oge double %287, 0.000000e+00
br label %651
289: ; preds = %215
%290 = load double, double* %2
%291 = fsub double %29, %290
%292 = getelementptr inbounds double, double* %2, i64 1
%293 = load double, double* %292
%294 = fsub double %14, %293
%295 = fsub double %23, %293
%296 = fsub double %7, %290
%297 = fneg double %295
%298 = fmul double %296, %297
%299 = tail call double @llvm.fmuladd.f64(double %291, double %294, double %298)
%300 = fcmp ult double %299, 0.000000e+00
br i1 %300, label %651, label %301
301: ; preds = %289
%302 = fsub double %133, %29
%303 = fsub double %293, %23
%304 = fsub double %218, %23
%305 = fsub double %290, %29
%306 = fneg double %304
%307 = fmul double %305, %306
%308 = tail call double @llvm.fmuladd.f64(double %302, double %303, double %307)
%309 = fcmp ult double %308, 0.000000e+00
br i1 %309, label %317, label %310
310: ; preds = %301
%311 = fsub double %8, %290
%312 = fsub double %12, %293
%313 = fneg double %312
%314 = fmul double %296, %313
%315 = tail call double @llvm.fmuladd.f64(double %311, double %294, double %314)
%316 = fcmp oge double %315, 0.000000e+00
br label %651
317: ; preds = %301
%318 = fsub double %133, %16
%319 = fsub double %293, %10
%320 = fsub double %218, %10
%321 = fsub double %290, %16
%322 = fneg double %320
%323 = fmul double %321, %322
%324 = tail call double @llvm.fmuladd.f64(double %318, double %319, double %323)
%325 = fcmp ult double %324, 0.000000e+00
br i1 %325, label %651, label %326
326: ; preds = %317
%327 = fsub double %29, %16
%328 = fsub double %23, %10
%329 = fneg double %328
%330 = fmul double %321, %329
%331 = tail call double @llvm.fmuladd.f64(double %327, double %319, double %330)
%332 = fcmp oge double %331, 0.000000e+00
br label %651
333: ; preds = %6
%334 = extractelement <2 x i1> %39, i64 0
br i1 %334, label %532, label %335
335: ; preds = %333
%336 = extractelement <2 x double> %28, i64 0
%337 = fneg double %336
%338 = extractelement <2 x double> %21, i64 1
%339 = fmul double %338, %337
%340 = tail call double @llvm.fmuladd.f64(double %30, double %15, double %339)
%341 = fcmp ult double %340, 0.000000e+00
%342 = load double, double* %1
%343 = fsub double %7, %342
%344 = getelementptr inbounds double, double* %1, i64 1
%345 = load double, double* %344
%346 = fsub double %10, %345
%347 = fsub double %14, %345
%348 = fsub double %16, %342
%349 = fneg double %347
%350 = fmul double %348, %349
%351 = tail call double @llvm.fmuladd.f64(double %343, double %346, double %350)
%352 = fcmp ult double %351, 0.000000e+00
br i1 %341, label %424, label %353
353: ; preds = %335
br i1 %352, label %389, label %354
354: ; preds = %353
%355 = fsub double %8, %342
%356 = fsub double %12, %345
%357 = fneg double %356
%358 = fmul double %348, %357
%359 = tail call double @llvm.fmuladd.f64(double %355, double %346, double %358)
%360 = fcmp ult double %359, 0.000000e+00
br i1 %360, label %370, label %361
361: ; preds = %354
%362 = fsub double %8, %7
%363 = fsub double %345, %14
%364 = fsub double %12, %14
%365 = fsub double %342, %7
%366 = fneg double %364
%367 = fmul double %365, %366
%368 = tail call double @llvm.fmuladd.f64(double %362, double %363, double %367)
%369 = fcmp oge double %368, 0.000000e+00
br label %651
370: ; preds = %354
%371 = fsub double %342, %16
%372 = getelementptr inbounds double, double* %2, i64 1
%373 = load double, double* %372
%374 = fsub double %373, %10
%375 = fsub double %345, %10
%376 = load double, double* %2
%377 = fsub double %376, %16
%378 = fneg double %375
%379 = fmul double %377, %378
%380 = tail call double @llvm.fmuladd.f64(double %371, double %374, double %379)
%381 = fcmp ult double %380, 0.000000e+00
br i1 %381, label %651, label %382
382: ; preds = %370
%383 = fsub double %12, %10
%384 = fsub double %8, %16
%385 = fneg double %374
%386 = fmul double %384, %385
%387 = tail call double @llvm.fmuladd.f64(double %377, double %383, double %386)
%388 = fcmp oge double %387, 0.000000e+00
br label %651
389: ; preds = %353
%390 = load double, double* %2
%391 = fsub double %7, %390
%392 = getelementptr inbounds double, double* %2, i64 1
%393 = load double, double* %392
%394 = fsub double %10, %393
%395 = fsub double %14, %393
%396 = fsub double %16, %390
%397 = fneg double %395
%398 = fmul double %396, %397
%399 = tail call double @llvm.fmuladd.f64(double %391, double %394, double %398)
%400 = fcmp ult double %399, 0.000000e+00
br i1 %400, label %651, label %401
401: ; preds = %389
%402 = fsub double %8, %390
%403 = fsub double %12, %393
%404 = fneg double %403
%405 = fmul double %396, %404
%406 = tail call double @llvm.fmuladd.f64(double %402, double %394, double %405)
%407 = fcmp ult double %406, 0.000000e+00
br i1 %407, label %651, label %408
408: ; preds = %401
%409 = fsub double %8, %7
%410 = fsub double %393, %14
%411 = fsub double %12, %14
%412 = fsub double %390, %7
%413 = fneg double %411
%414 = fmul double %412, %413
%415 = tail call double @llvm.fmuladd.f64(double %409, double %410, double %414)
%416 = fcmp ult double %415, 0.000000e+00
br i1 %416, label %417, label %651
417: ; preds = %408
%418 = fsub double %342, %7
%419 = fsub double %345, %14
%420 = fneg double %419
%421 = fmul double %412, %420
%422 = tail call double @llvm.fmuladd.f64(double %418, double %410, double %421)
%423 = fcmp oge double %422, 0.000000e+00
br label %651
424: ; preds = %335
br i1 %352, label %488, label %425
425: ; preds = %424
%426 = fsub double %23, %345
%427 = fsub double %29, %342
%428 = fmul double %427, %349
%429 = tail call double @llvm.fmuladd.f64(double %343, double %426, double %428)
%430 = fcmp ugt double %429, 0.000000e+00
%431 = fsub double %8, %342
%432 = fsub double %12, %345
%433 = fneg double %432
br i1 %430, label %463, label %434
434: ; preds = %425
%435 = fmul double %348, %433
%436 = tail call double @llvm.fmuladd.f64(double %431, double %346, double %435)
%437 = fcmp ogt double %436, 0.000000e+00
br i1 %437, label %438, label %442
438: ; preds = %434
%439 = fmul double %427, %433
%440 = tail call double @llvm.fmuladd.f64(double %431, double %426, double %439)
%441 = fcmp ole double %440, 0.000000e+00
br label %651
442: ; preds = %434
%443 = load double, double* %2
%444 = fsub double %8, %443
%445 = getelementptr inbounds double, double* %2, i64 1
%446 = load double, double* %445
%447 = fsub double %10, %446
%448 = fsub double %12, %446
%449 = fsub double %16, %443
%450 = fneg double %448
%451 = fmul double %449, %450
%452 = tail call double @llvm.fmuladd.f64(double %444, double %447, double %451)
%453 = fcmp ult double %452, 0.000000e+00
br i1 %453, label %651, label %454
454: ; preds = %442
%455 = fsub double %342, %16
%456 = fsub double %446, %10
%457 = fsub double %345, %10
%458 = fsub double %443, %16
%459 = fneg double %457
%460 = fmul double %458, %459
%461 = tail call double @llvm.fmuladd.f64(double %455, double %456, double %460)
%462 = fcmp oge double %461, 0.000000e+00
br label %651
463: ; preds = %425
%464 = fmul double %427, %433
%465 = tail call double @llvm.fmuladd.f64(double %431, double %426, double %464)
%466 = fcmp ugt double %465, 0.000000e+00
br i1 %466, label %651, label %467
467: ; preds = %463
%468 = load double, double* %2
%469 = fsub double %7, %468
%470 = getelementptr inbounds double, double* %2, i64 1
%471 = load double, double* %470
%472 = fsub double %23, %471
%473 = fsub double %14, %471
%474 = fsub double %29, %468
%475 = fneg double %473
%476 = fmul double %474, %475
%477 = tail call double @llvm.fmuladd.f64(double %469, double %472, double %476)
%478 = fcmp ugt double %477, 0.000000e+00
br i1 %478, label %651, label %479
479: ; preds = %467
%480 = fsub double %342, %29
%481 = fsub double %471, %23
%482 = fsub double %345, %23
%483 = fsub double %468, %29
%484 = fneg double %482
%485 = fmul double %483, %484
%486 = tail call double @llvm.fmuladd.f64(double %480, double %481, double %485)
%487 = fcmp oge double %486, 0.000000e+00
br label %651
488: ; preds = %424
%489 = load double, double* %2
%490 = fsub double %7, %489
%491 = getelementptr inbounds double, double* %2, i64 1
%492 = load double, double* %491
%493 = fsub double %10, %492
%494 = fsub double %14, %492
%495 = fsub double %16, %489
%496 = fneg double %494
%497 = fmul double %495, %496
%498 = tail call double @llvm.fmuladd.f64(double %490, double %493, double %497)
%499 = fcmp ult double %498, 0.000000e+00
br i1 %499, label %651, label %500
500: ; preds = %488
%501 = fsub double %342, %7
%502 = fsub double %492, %14
%503 = fsub double %345, %14
%504 = fsub double %489, %7
%505 = fneg double %503
%506 = fmul double %504, %505
%507 = tail call double @llvm.fmuladd.f64(double %501, double %502, double %506)
%508 = fcmp ult double %507, 0.000000e+00
br i1 %508, label %516, label %509
509: ; preds = %500
%510 = fsub double %8, %489
%511 = fsub double %12, %492
%512 = fneg double %511
%513 = fmul double %495, %512
%514 = tail call double @llvm.fmuladd.f64(double %510, double %493, double %513)
%515 = fcmp oge double %514, 0.000000e+00
br label %651
516: ; preds = %500
%517 = fsub double %342, %29
%518 = fsub double %492, %23
%519 = fsub double %345, %23
%520 = fsub double %489, %29
%521 = fneg double %519
%522 = fmul double %520, %521
%523 = tail call double @llvm.fmuladd.f64(double %517, double %518, double %522)
%524 = fcmp ult double %523, 0.000000e+00
br i1 %524, label %651, label %525
525: ; preds = %516
%526 = fsub double %7, %29
%527 = fsub double %14, %23
%528 = fneg double %527
%529 = fmul double %520, %528
%530 = tail call double @llvm.fmuladd.f64(double %526, double %518, double %529)
%531 = fcmp oge double %530, 0.000000e+00
br label %651
532: ; preds = %333
%533 = load double, double* %1
%534 = fsub double %16, %533
%535 = getelementptr inbounds double, double* %1, i64 1
%536 = load double, double* %535
%537 = fsub double %23, %536
%538 = fsub double %10, %536
%539 = fsub double %29, %533
%540 = fneg double %538
%541 = fmul double %539, %540
%542 = tail call double @llvm.fmuladd.f64(double %534, double %537, double %541)
%543 = fcmp ult double %542, 0.000000e+00
br i1 %543, label %607, label %544
544: ; preds = %532
%545 = fsub double %14, %536
%546 = fsub double %7, %533
%547 = fmul double %546, %540
%548 = tail call double @llvm.fmuladd.f64(double %534, double %545, double %547)
%549 = fcmp ugt double %548, 0.000000e+00
%550 = fsub double %8, %533
%551 = fsub double %12, %536
%552 = fneg double %551
br i1 %549, label %582, label %553
553: ; preds = %544
%554 = fmul double %539, %552
%555 = tail call double @llvm.fmuladd.f64(double %550, double %537, double %554)
%556 = fcmp ogt double %555, 0.000000e+00
br i1 %556, label %557, label %561
557: ; preds = %553
%558 = fmul double %546, %552
%559 = tail call double @llvm.fmuladd.f64(double %550, double %545, double %558)
%560 = fcmp ole double %559, 0.000000e+00
br label %651
561: ; preds = %553
%562 = load double, double* %2
%563 = fsub double %8, %562
%564 = getelementptr inbounds double, double* %2, i64 1
%565 = load double, double* %564
%566 = fsub double %23, %565
%567 = fsub double %12, %565
%568 = fsub double %29, %562
%569 = fneg double %567
%570 = fmul double %568, %569
%571 = tail call double @llvm.fmuladd.f64(double %563, double %566, double %570)
%572 = fcmp ult double %571, 0.000000e+00
br i1 %572, label %651, label %573
573: ; preds = %561
%574 = fsub double %533, %29
%575 = fsub double %565, %23
%576 = fsub double %536, %23
%577 = fsub double %562, %29
%578 = fneg double %576
%579 = fmul double %577, %578
%580 = tail call double @llvm.fmuladd.f64(double %574, double %575, double %579)
%581 = fcmp oge double %580, 0.000000e+00
br label %651
582: ; preds = %544
%583 = fmul double %546, %552
%584 = tail call double @llvm.fmuladd.f64(double %550, double %545, double %583)
%585 = fcmp ugt double %584, 0.000000e+00
br i1 %585, label %651, label %586
586: ; preds = %582
%587 = load double, double* %2
%588 = fsub double %16, %587
%589 = getelementptr inbounds double, double* %2, i64 1
%590 = load double, double* %589
%591 = fsub double %14, %590
%592 = fsub double %10, %590
%593 = fsub double %7, %587
%594 = fneg double %592
%595 = fmul double %593, %594
%596 = tail call double @llvm.fmuladd.f64(double %588, double %591, double %595)
%597 = fcmp ugt double %596, 0.000000e+00
br i1 %597, label %651, label %598
598: ; preds = %586
%599 = fsub double %533, %7
%600 = fsub double %590, %14
%601 = fsub double %536, %14
%602 = fsub double %587, %7
%603 = fneg double %601
%604 = fmul double %602, %603
%605 = tail call double @llvm.fmuladd.f64(double %599, double %600, double %604)
%606 = fcmp oge double %605, 0.000000e+00
br label %651
607: ; preds = %532
%608 = load double, double* %2
%609 = fsub double %16, %608
%610 = getelementptr inbounds double, double* %2, i64 1
%611 = load double, double* %610
%612 = fsub double %23, %611
%613 = fsub double %10, %611
%614 = fsub double %29, %608
%615 = fneg double %613
%616 = fmul double %614, %615
%617 = tail call double @llvm.fmuladd.f64(double %609, double %612, double %616)
%618 = fcmp ult double %617, 0.000000e+00
br i1 %618, label %651, label %619
619: ; preds = %607
%620 = fsub double %533, %16
%621 = fsub double %611, %10
%622 = fsub double %536, %10
%623 = fsub double %608, %16
%624 = fneg double %622
%625 = fmul double %623, %624
%626 = tail call double @llvm.fmuladd.f64(double %620, double %621, double %625)
%627 = fcmp ult double %626, 0.000000e+00
br i1 %627, label %635, label %628
628: ; preds = %619
%629 = fsub double %8, %608
%630 = fsub double %12, %611
%631 = fneg double %630
%632 = fmul double %614, %631
%633 = tail call double @llvm.fmuladd.f64(double %629, double %612, double %632)
%634 = fcmp oge double %633, 0.000000e+00
br label %651
635: ; preds = %619
%636 = fsub double %533, %7
%637 = fsub double %611, %14
%638 = fsub double %536, %14
%639 = fsub double %608, %7
%640 = fneg double %638
%641 = fmul double %639, %640
%642 = tail call double @llvm.fmuladd.f64(double %636, double %637, double %641)
%643 = fcmp ult double %642, 0.000000e+00
br i1 %643, label %651, label %644
644: ; preds = %635
%645 = fsub double %16, %7
%646 = fsub double %10, %14
%647 = fneg double %646
%648 = fmul double %639, %647
%649 = tail call double @llvm.fmuladd.f64(double %645, double %637, double %648)
%650 = fcmp oge double %649, 0.000000e+00
br label %651
651: ; preds = %607, %635, %644, %628, %582, %586, %598, %561, %573, %557, %488, %516, %525, %509, %463, %467, %479, %442, %454, %438, %389, %401, %417, %408, %370, %382, %361, %289, %317, %326, %310, %264, %268, %280, %243, %255, %239, %180, %192, %208, %199, %161, %173, %152, %97, %109, %125, %116, %78, %90, %69, %49
%652 = phi i1 [ true, %49 ], [ %77, %69 ], [ %96, %90 ], [ false, %78 ], [ true, %116 ], [ %131, %125 ], [ false, %109 ], [ false, %97 ], [ %160, %152 ], [ %179, %173 ], [ false, %161 ], [ true, %199 ], [ %214, %208 ], [ false, %192 ], [ false, %180 ], [ %242, %239 ], [ %263, %255 ], [ false, %243 ], [ %288, %280 ], [ false, %268 ], [ false, %264 ], [ %316, %310 ], [ %332, %326 ], [ false, %317 ], [ false, %289 ], [ %369, %361 ], [ %388, %382 ], [ false, %370 ], [ true, %408 ], [ %423, %417 ], [ false, %401 ], [ false, %389 ], [ %441, %438 ], [ %462, %454 ], [ false, %442 ], [ %487, %479 ], [ false, %467 ], [ false, %463 ], [ %515, %509 ], [ %531, %525 ], [ false, %516 ], [ false, %488 ], [ %560, %557 ], [ %581, %573 ], [ false, %561 ], [ %606, %598 ], [ false, %586 ], [ false, %582 ], [ %634, %628 ], [ %650, %644 ], [ false, %635 ], [ false, %607 ]
%653 = zext i1 %652 to i32
ret i32 %653
}