int coplanar_tri_tri(double N[3], double V0[3], double V1[3], double V2[3],
                     double U0[3], double U1[3], double U2[3]) {
  double A[3];
  short i0, i1;
  A[0] = fabs(N[0]);
  A[1] = fabs(N[1]);
  A[2] = fabs(N[2]);
  if (A[0] > A[1]) {
    if (A[0] > A[2]) {
      i0 = 1;
      i1 = 2;
    } else {
      i0 = 0;
      i1 = 1;
    }
  } else {
    if (A[2] > A[1]) {
      i0 = 0;
      i1 = 1;
    } else {
      i0 = 0;
      i1 = 2;
    }
  }
  {
    float Ax, Ay, Bx, By, Cx, Cy, e, d, f;
    Ax = V1[i0] - V0[i0];
    Ay = V1[i1] - V0[i1];
    Bx = U0[i0] - U1[i0];
    By = U0[i1] - U1[i1];
    Cx = V0[i0] - U0[i0];
    Cy = V0[i1] - U0[i1];
    f = Ay * Bx - Ax * By;
    d = By * Cx - Bx * Cy;
    if ((f > 0 && d >= 0 && d <= f) || (f < 0 && d <= 0 && d >= f)) {
      e = Ax * Cy - Ay * Cx;
      if (f > 0) {
        if (e >= 0 && e <= f)
          return 1;
      } else {
        if (e <= 0 && e >= f)
          return 1;
      }
    };
    Bx = U1[i0] - U2[i0];
    By = U1[i1] - U2[i1];
    Cx = V0[i0] - U1[i0];
    Cy = V0[i1] - U1[i1];
    f = Ay * Bx - Ax * By;
    d = By * Cx - Bx * Cy;
    if ((f > 0 && d >= 0 && d <= f) || (f < 0 && d <= 0 && d >= f)) {
      e = Ax * Cy - Ay * Cx;
      if (f > 0) {
        if (e >= 0 && e <= f)
          return 1;
      } else {
        if (e <= 0 && e >= f)
          return 1;
      }
    };
    Bx = U2[i0] - U0[i0];
    By = U2[i1] - U0[i1];
    Cx = V0[i0] - U2[i0];
    Cy = V0[i1] - U2[i1];
    f = Ay * Bx - Ax * By;
    d = By * Cx - Bx * Cy;
    if ((f > 0 && d >= 0 && d <= f) || (f < 0 && d <= 0 && d >= f)) {
      e = Ax * Cy - Ay * Cx;
      if (f > 0) {
        if (e >= 0 && e <= f)
          return 1;
      } else {
        if (e <= 0 && e >= f)
          return 1;
      }
    };
  };
  {
    float Ax, Ay, Bx, By, Cx, Cy, e, d, f;
    Ax = V2[i0] - V1[i0];
    Ay = V2[i1] - V1[i1];
    Bx = U0[i0] - U1[i0];
    By = U0[i1] - U1[i1];
    Cx = V1[i0] - U0[i0];
    Cy = V1[i1] - U0[i1];
    f = Ay * Bx - Ax * By;
    d = By * Cx - Bx * Cy;
    if ((f > 0 && d >= 0 && d <= f) || (f < 0 && d <= 0 && d >= f)) {
      e = Ax * Cy - Ay * Cx;
      if (f > 0) {
        if (e >= 0 && e <= f)
          return 1;
      } else {
        if (e <= 0 && e >= f)
          return 1;
      }
    };
    Bx = U1[i0] - U2[i0];
    By = U1[i1] - U2[i1];
    Cx = V1[i0] - U1[i0];
    Cy = V1[i1] - U1[i1];
    f = Ay * Bx - Ax * By;
    d = By * Cx - Bx * Cy;
    if ((f > 0 && d >= 0 && d <= f) || (f < 0 && d <= 0 && d >= f)) {
      e = Ax * Cy - Ay * Cx;
      if (f > 0) {
        if (e >= 0 && e <= f)
          return 1;
      } else {
        if (e <= 0 && e >= f)
          return 1;
      }
    };
    Bx = U2[i0] - U0[i0];
    By = U2[i1] - U0[i1];
    Cx = V1[i0] - U2[i0];
    Cy = V1[i1] - U2[i1];
    f = Ay * Bx - Ax * By;
    d = By * Cx - Bx * Cy;
    if ((f > 0 && d >= 0 && d <= f) || (f < 0 && d <= 0 && d >= f)) {
      e = Ax * Cy - Ay * Cx;
      if (f > 0) {
        if (e >= 0 && e <= f)
          return 1;
      } else {
        if (e <= 0 && e >= f)
          return 1;
      }
    };
  };
  {
    float Ax, Ay, Bx, By, Cx, Cy, e, d, f;
    Ax = V0[i0] - V2[i0];
    Ay = V0[i1] - V2[i1];
    Bx = U0[i0] - U1[i0];
    By = U0[i1] - U1[i1];
    Cx = V2[i0] - U0[i0];
    Cy = V2[i1] - U0[i1];
    f = Ay * Bx - Ax * By;
    d = By * Cx - Bx * Cy;
    if ((f > 0 && d >= 0 && d <= f) || (f < 0 && d <= 0 && d >= f)) {
      e = Ax * Cy - Ay * Cx;
      if (f > 0) {
        if (e >= 0 && e <= f)
          return 1;
      } else {
        if (e <= 0 && e >= f)
          return 1;
      }
    };
    Bx = U1[i0] - U2[i0];
    By = U1[i1] - U2[i1];
    Cx = V2[i0] - U1[i0];
    Cy = V2[i1] - U1[i1];
    f = Ay * Bx - Ax * By;
    d = By * Cx - Bx * Cy;
    if ((f > 0 && d >= 0 && d <= f) || (f < 0 && d <= 0 && d >= f)) {
      e = Ax * Cy - Ay * Cx;
      if (f > 0) {
        if (e >= 0 && e <= f)
          return 1;
      } else {
        if (e <= 0 && e >= f)
          return 1;
      }
    };
    Bx = U2[i0] - U0[i0];
    By = U2[i1] - U0[i1];
    Cx = V2[i0] - U2[i0];
    Cy = V2[i1] - U2[i1];
    f = Ay * Bx - Ax * By;
    d = By * Cx - Bx * Cy;
    if ((f > 0 && d >= 0 && d <= f) || (f < 0 && d <= 0 && d >= f)) {
      e = Ax * Cy - Ay * Cx;
      if (f > 0) {
        if (e >= 0 && e <= f)
          return 1;
      } else {
        if (e <= 0 && e >= f)
          return 1;
      }
    };
  };
  {
    float a, b, c, d0, d1, d2;
    a = U1[i1] - U0[i1];
    b = -(U1[i0] - U0[i0]);
    c = -a * U0[i0] - b * U0[i1];
    d0 = a * V0[i0] + b * V0[i1] + c;
    a = U2[i1] - U1[i1];
    b = -(U2[i0] - U1[i0]);
    c = -a * U1[i0] - b * U1[i1];
    d1 = a * V0[i0] + b * V0[i1] + c;
    a = U0[i1] - U2[i1];
    b = -(U0[i0] - U2[i0]);
    c = -a * U2[i0] - b * U2[i1];
    d2 = a * V0[i0] + b * V0[i1] + c;
    if (d0 * d1 > 0.0) {
      if (d0 * d2 > 0.0)
        return 1;
    }
  };
  {
    float a, b, c, d0, d1, d2;
    a = V1[i1] - V0[i1];
    b = -(V1[i0] - V0[i0]);
    c = -a * V0[i0] - b * V0[i1];
    d0 = a * U0[i0] + b * U0[i1] + c;
    a = V2[i1] - V1[i1];
    b = -(V2[i0] - V1[i0]);
    c = -a * V1[i0] - b * V1[i1];
    d1 = a * U0[i0] + b * U0[i1] + c;
    a = V0[i1] - V2[i1];
    b = -(V0[i0] - V2[i0]);
    c = -a * V2[i0] - b * V2[i1];
    d2 = a * U0[i0] + b * U0[i1] + c;
    if (d0 * d1 > 0.0) {
      if (d0 * d2 > 0.0)
        return 1;
    }
  };
  return 0;
}


x86 assembly (clang, -O0):
<coplanar_tri_tri>:
push   %rbp
mov    %rsp,%rbp
sub    $0x70,%rsp
mov    0x10(%rbp),%rax
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    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x1ecd(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movaps 0x1eb4(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movaps 0x1e9b(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x50(%rbp),%xmm0
ucomisd -0x48(%rbp),%xmm0
jbe    11b0 <coplanar_tri_tri+0xb0>
movsd  -0x50(%rbp),%xmm0
ucomisd -0x40(%rbp),%xmm0
jbe    119f <coplanar_tri_tri+0x9f>
movw   $0x1,-0x52(%rbp)
movw   $0x2,-0x54(%rbp)
jmp    11ab <coplanar_tri_tri+0xab>
movw   $0x0,-0x52(%rbp)
movw   $0x1,-0x54(%rbp)
jmp    11e2 <coplanar_tri_tri+0xe2>
movsd  -0x40(%rbp),%xmm0
ucomisd -0x48(%rbp),%xmm0
jbe    11d1 <coplanar_tri_tri+0xd1>
movw   $0x0,-0x52(%rbp)
movw   $0x1,-0x54(%rbp)
jmp    11dd <coplanar_tri_tri+0xdd>
movw   $0x0,-0x52(%rbp)
movw   $0x2,-0x54(%rbp)
jmp    11e2 <coplanar_tri_tri+0xe2>
mov    -0x20(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x18(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x58(%rbp)
mov    -0x20(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x18(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x5c(%rbp)
mov    -0x30(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x60(%rbp)
mov    -0x30(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x64(%rbp)
mov    -0x18(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  -0x5c(%rbp),%xmm0
movss  -0x60(%rbp),%xmm2
movss  -0x58(%rbp),%xmm1
mulss  -0x64(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x78(%rbp)
movss  -0x64(%rbp),%xmm0
movss  -0x68(%rbp),%xmm2
movss  -0x60(%rbp),%xmm1
mulss  -0x6c(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x74(%rbp)
movss  -0x78(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1351 <coplanar_tri_tri+0x251>
movss  -0x74(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1351 <coplanar_tri_tri+0x251>
movss  -0x74(%rbp),%xmm1
movss  -0x78(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jae    137a <coplanar_tri_tri+0x27a>
xorps  %xmm0,%xmm0
ucomiss -0x78(%rbp),%xmm0
jbe    1420 <coplanar_tri_tri+0x320>
xorps  %xmm0,%xmm0
ucomiss -0x74(%rbp),%xmm0
jb     1420 <coplanar_tri_tri+0x320>
movss  -0x74(%rbp),%xmm0
ucomiss -0x78(%rbp),%xmm0
jb     1420 <coplanar_tri_tri+0x320>
movss  -0x58(%rbp),%xmm0
movss  -0x6c(%rbp),%xmm2
movss  -0x5c(%rbp),%xmm1
mulss  -0x68(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x70(%rbp)
movss  -0x78(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    13ee <coplanar_tri_tri+0x2ee>
movss  -0x70(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     13e9 <coplanar_tri_tri+0x2e9>
movss  -0x70(%rbp),%xmm1
movss  -0x78(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     13e9 <coplanar_tri_tri+0x2e9>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    141b <coplanar_tri_tri+0x31b>
xorps  %xmm0,%xmm0
ucomiss -0x70(%rbp),%xmm0
jb     1416 <coplanar_tri_tri+0x316>
movss  -0x70(%rbp),%xmm0
ucomiss -0x78(%rbp),%xmm0
jb     1416 <coplanar_tri_tri+0x316>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    141b <coplanar_tri_tri+0x31b>
jmp    1420 <coplanar_tri_tri+0x320>
mov    -0x38(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x60(%rbp)
mov    -0x38(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x64(%rbp)
mov    -0x18(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  -0x5c(%rbp),%xmm0
movss  -0x60(%rbp),%xmm2
movss  -0x58(%rbp),%xmm1
mulss  -0x64(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x78(%rbp)
movss  -0x64(%rbp),%xmm0
movss  -0x68(%rbp),%xmm2
movss  -0x60(%rbp),%xmm1
mulss  -0x6c(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x74(%rbp)
movss  -0x78(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1545 <coplanar_tri_tri+0x445>
movss  -0x74(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1545 <coplanar_tri_tri+0x445>
movss  -0x74(%rbp),%xmm1
movss  -0x78(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jae    156e <coplanar_tri_tri+0x46e>
xorps  %xmm0,%xmm0
ucomiss -0x78(%rbp),%xmm0
jbe    1614 <coplanar_tri_tri+0x514>
xorps  %xmm0,%xmm0
ucomiss -0x74(%rbp),%xmm0
jb     1614 <coplanar_tri_tri+0x514>
movss  -0x74(%rbp),%xmm0
ucomiss -0x78(%rbp),%xmm0
jb     1614 <coplanar_tri_tri+0x514>
movss  -0x58(%rbp),%xmm0
movss  -0x6c(%rbp),%xmm2
movss  -0x5c(%rbp),%xmm1
mulss  -0x68(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x70(%rbp)
movss  -0x78(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    15e2 <coplanar_tri_tri+0x4e2>
movss  -0x70(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     15dd <coplanar_tri_tri+0x4dd>
movss  -0x70(%rbp),%xmm1
movss  -0x78(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     15dd <coplanar_tri_tri+0x4dd>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    160f <coplanar_tri_tri+0x50f>
xorps  %xmm0,%xmm0
ucomiss -0x70(%rbp),%xmm0
jb     160a <coplanar_tri_tri+0x50a>
movss  -0x70(%rbp),%xmm0
ucomiss -0x78(%rbp),%xmm0
jb     160a <coplanar_tri_tri+0x50a>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    160f <coplanar_tri_tri+0x50f>
jmp    1614 <coplanar_tri_tri+0x514>
mov    0x10(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x60(%rbp)
mov    0x10(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x64(%rbp)
mov    -0x18(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  -0x5c(%rbp),%xmm0
movss  -0x60(%rbp),%xmm2
movss  -0x58(%rbp),%xmm1
mulss  -0x64(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x78(%rbp)
movss  -0x64(%rbp),%xmm0
movss  -0x68(%rbp),%xmm2
movss  -0x60(%rbp),%xmm1
mulss  -0x6c(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x74(%rbp)
movss  -0x78(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1739 <coplanar_tri_tri+0x639>
movss  -0x74(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1739 <coplanar_tri_tri+0x639>
movss  -0x74(%rbp),%xmm1
movss  -0x78(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jae    1762 <coplanar_tri_tri+0x662>
xorps  %xmm0,%xmm0
ucomiss -0x78(%rbp),%xmm0
jbe    1808 <coplanar_tri_tri+0x708>
xorps  %xmm0,%xmm0
ucomiss -0x74(%rbp),%xmm0
jb     1808 <coplanar_tri_tri+0x708>
movss  -0x74(%rbp),%xmm0
ucomiss -0x78(%rbp),%xmm0
jb     1808 <coplanar_tri_tri+0x708>
movss  -0x58(%rbp),%xmm0
movss  -0x6c(%rbp),%xmm2
movss  -0x5c(%rbp),%xmm1
mulss  -0x68(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x70(%rbp)
movss  -0x78(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    17d6 <coplanar_tri_tri+0x6d6>
movss  -0x70(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     17d1 <coplanar_tri_tri+0x6d1>
movss  -0x70(%rbp),%xmm1
movss  -0x78(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     17d1 <coplanar_tri_tri+0x6d1>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    1803 <coplanar_tri_tri+0x703>
xorps  %xmm0,%xmm0
ucomiss -0x70(%rbp),%xmm0
jb     17fe <coplanar_tri_tri+0x6fe>
movss  -0x70(%rbp),%xmm0
ucomiss -0x78(%rbp),%xmm0
jb     17fe <coplanar_tri_tri+0x6fe>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    1803 <coplanar_tri_tri+0x703>
jmp    1808 <coplanar_tri_tri+0x708>
mov    -0x28(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x20(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x7c(%rbp)
mov    -0x28(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x20(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x84(%rbp)
ff
mov    -0x30(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
mov    -0x20(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
mov    -0x20(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x90(%rbp)
ff
movss  -0x80(%rbp),%xmm0
movss  -0x84(%rbp),%xmm2
ff
movss  -0x7c(%rbp),%xmm1
mulss  -0x88(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
movss  -0x88(%rbp),%xmm0
ff
movss  -0x8c(%rbp),%xmm2
ff
movss  -0x84(%rbp),%xmm1
ff
mulss  -0x90(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x98(%rbp)
ff
movss  -0x9c(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    19a7 <coplanar_tri_tri+0x8a7>
movss  -0x98(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     19a7 <coplanar_tri_tri+0x8a7>
movss  -0x98(%rbp),%xmm1
ff
movss  -0x9c(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    19dc <coplanar_tri_tri+0x8dc>
xorps  %xmm0,%xmm0
ucomiss -0x9c(%rbp),%xmm0
jbe    1aa0 <coplanar_tri_tri+0x9a0>
xorps  %xmm0,%xmm0
ucomiss -0x98(%rbp),%xmm0
jb     1aa0 <coplanar_tri_tri+0x9a0>
movss  -0x98(%rbp),%xmm0
ff
ucomiss -0x9c(%rbp),%xmm0
jb     1aa0 <coplanar_tri_tri+0x9a0>
movss  -0x7c(%rbp),%xmm0
movss  -0x90(%rbp),%xmm2
ff
movss  -0x80(%rbp),%xmm1
mulss  -0x8c(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x94(%rbp)
ff
movss  -0x9c(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1a65 <coplanar_tri_tri+0x965>
movss  -0x94(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1a60 <coplanar_tri_tri+0x960>
movss  -0x94(%rbp),%xmm1
ff
movss  -0x9c(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     1a60 <coplanar_tri_tri+0x960>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    1a9b <coplanar_tri_tri+0x99b>
xorps  %xmm0,%xmm0
ucomiss -0x94(%rbp),%xmm0
jb     1a96 <coplanar_tri_tri+0x996>
movss  -0x94(%rbp),%xmm0
ff
ucomiss -0x9c(%rbp),%xmm0
jb     1a96 <coplanar_tri_tri+0x996>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    1a9b <coplanar_tri_tri+0x99b>
jmp    1aa0 <coplanar_tri_tri+0x9a0>
mov    -0x38(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x84(%rbp)
ff
mov    -0x38(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
mov    -0x20(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
mov    -0x20(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x90(%rbp)
ff
movss  -0x80(%rbp),%xmm0
movss  -0x84(%rbp),%xmm2
ff
movss  -0x7c(%rbp),%xmm1
mulss  -0x88(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
movss  -0x88(%rbp),%xmm0
ff
movss  -0x8c(%rbp),%xmm2
ff
movss  -0x84(%rbp),%xmm1
ff
mulss  -0x90(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x98(%rbp)
ff
movss  -0x9c(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1bf5 <coplanar_tri_tri+0xaf5>
movss  -0x98(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1bf5 <coplanar_tri_tri+0xaf5>
movss  -0x98(%rbp),%xmm1
ff
movss  -0x9c(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    1c2a <coplanar_tri_tri+0xb2a>
xorps  %xmm0,%xmm0
ucomiss -0x9c(%rbp),%xmm0
jbe    1cee <coplanar_tri_tri+0xbee>
xorps  %xmm0,%xmm0
ucomiss -0x98(%rbp),%xmm0
jb     1cee <coplanar_tri_tri+0xbee>
movss  -0x98(%rbp),%xmm0
ff
ucomiss -0x9c(%rbp),%xmm0
jb     1cee <coplanar_tri_tri+0xbee>
movss  -0x7c(%rbp),%xmm0
movss  -0x90(%rbp),%xmm2
ff
movss  -0x80(%rbp),%xmm1
mulss  -0x8c(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x94(%rbp)
ff
movss  -0x9c(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1cb3 <coplanar_tri_tri+0xbb3>
movss  -0x94(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1cae <coplanar_tri_tri+0xbae>
movss  -0x94(%rbp),%xmm1
ff
movss  -0x9c(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     1cae <coplanar_tri_tri+0xbae>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    1ce9 <coplanar_tri_tri+0xbe9>
xorps  %xmm0,%xmm0
ucomiss -0x94(%rbp),%xmm0
jb     1ce4 <coplanar_tri_tri+0xbe4>
movss  -0x94(%rbp),%xmm0
ff
ucomiss -0x9c(%rbp),%xmm0
jb     1ce4 <coplanar_tri_tri+0xbe4>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    1ce9 <coplanar_tri_tri+0xbe9>
jmp    1cee <coplanar_tri_tri+0xbee>
mov    0x10(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x84(%rbp)
ff
mov    0x10(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
mov    -0x20(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
mov    -0x20(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x90(%rbp)
ff
movss  -0x80(%rbp),%xmm0
movss  -0x84(%rbp),%xmm2
ff
movss  -0x7c(%rbp),%xmm1
mulss  -0x88(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
movss  -0x88(%rbp),%xmm0
ff
movss  -0x8c(%rbp),%xmm2
ff
movss  -0x84(%rbp),%xmm1
ff
mulss  -0x90(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x98(%rbp)
ff
movss  -0x9c(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1e43 <coplanar_tri_tri+0xd43>
movss  -0x98(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1e43 <coplanar_tri_tri+0xd43>
movss  -0x98(%rbp),%xmm1
ff
movss  -0x9c(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    1e78 <coplanar_tri_tri+0xd78>
xorps  %xmm0,%xmm0
ucomiss -0x9c(%rbp),%xmm0
jbe    1f3c <coplanar_tri_tri+0xe3c>
xorps  %xmm0,%xmm0
ucomiss -0x98(%rbp),%xmm0
jb     1f3c <coplanar_tri_tri+0xe3c>
movss  -0x98(%rbp),%xmm0
ff
ucomiss -0x9c(%rbp),%xmm0
jb     1f3c <coplanar_tri_tri+0xe3c>
movss  -0x7c(%rbp),%xmm0
movss  -0x90(%rbp),%xmm2
ff
movss  -0x80(%rbp),%xmm1
mulss  -0x8c(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x94(%rbp)
ff
movss  -0x9c(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1f01 <coplanar_tri_tri+0xe01>
movss  -0x94(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1efc <coplanar_tri_tri+0xdfc>
movss  -0x94(%rbp),%xmm1
ff
movss  -0x9c(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     1efc <coplanar_tri_tri+0xdfc>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    1f37 <coplanar_tri_tri+0xe37>
xorps  %xmm0,%xmm0
ucomiss -0x94(%rbp),%xmm0
jb     1f32 <coplanar_tri_tri+0xe32>
movss  -0x94(%rbp),%xmm0
ff
ucomiss -0x9c(%rbp),%xmm0
jb     1f32 <coplanar_tri_tri+0xe32>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    1f37 <coplanar_tri_tri+0xe37>
jmp    1f3c <coplanar_tri_tri+0xe3c>
mov    -0x18(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x28(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x28(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xa4(%rbp)
ff
mov    -0x30(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xa8(%rbp)
ff
mov    -0x30(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xac(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xb0(%rbp)
mov    -0x28(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xb4(%rbp)
ff
movss  -0xa4(%rbp),%xmm0
ff
movss  -0xa8(%rbp),%xmm2
ff
movss  -0xa0(%rbp),%xmm1
ff
mulss  -0xac(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xc0(%rbp)
ff
movss  -0xac(%rbp),%xmm0
ff
movss  -0xb0(%rbp),%xmm2
ff
movss  -0xa8(%rbp),%xmm1
ff
mulss  -0xb4(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xbc(%rbp)
ff
movss  -0xc0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    20e7 <coplanar_tri_tri+0xfe7>
movss  -0xbc(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     20e7 <coplanar_tri_tri+0xfe7>
movss  -0xbc(%rbp),%xmm1
ff
movss  -0xc0(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    211c <coplanar_tri_tri+0x101c>
xorps  %xmm0,%xmm0
ucomiss -0xc0(%rbp),%xmm0
jbe    21e6 <coplanar_tri_tri+0x10e6>
xorps  %xmm0,%xmm0
ucomiss -0xbc(%rbp),%xmm0
jb     21e6 <coplanar_tri_tri+0x10e6>
movss  -0xbc(%rbp),%xmm0
ff
ucomiss -0xc0(%rbp),%xmm0
jb     21e6 <coplanar_tri_tri+0x10e6>
movss  -0xa0(%rbp),%xmm0
ff
movss  -0xb4(%rbp),%xmm2
ff
movss  -0xa4(%rbp),%xmm1
ff
mulss  -0xb0(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xb8(%rbp)
ff
movss  -0xc0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    21ab <coplanar_tri_tri+0x10ab>
movss  -0xb8(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     21a6 <coplanar_tri_tri+0x10a6>
movss  -0xb8(%rbp),%xmm1
ff
movss  -0xc0(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     21a6 <coplanar_tri_tri+0x10a6>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    21e1 <coplanar_tri_tri+0x10e1>
xorps  %xmm0,%xmm0
ucomiss -0xb8(%rbp),%xmm0
jb     21dc <coplanar_tri_tri+0x10dc>
movss  -0xb8(%rbp),%xmm0
ff
ucomiss -0xc0(%rbp),%xmm0
jb     21dc <coplanar_tri_tri+0x10dc>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    21e1 <coplanar_tri_tri+0x10e1>
jmp    21e6 <coplanar_tri_tri+0x10e6>
mov    -0x38(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xa8(%rbp)
ff
mov    -0x38(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xac(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xb4(%rbp)
ff
movss  -0xa4(%rbp),%xmm0
ff
movss  -0xa8(%rbp),%xmm2
ff
movss  -0xa0(%rbp),%xmm1
ff
mulss  -0xac(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xc0(%rbp)
ff
movss  -0xac(%rbp),%xmm0
ff
movss  -0xb0(%rbp),%xmm2
ff
movss  -0xa8(%rbp),%xmm1
ff
mulss  -0xb4(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xbc(%rbp)
ff
movss  -0xc0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    2341 <coplanar_tri_tri+0x1241>
movss  -0xbc(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     2341 <coplanar_tri_tri+0x1241>
movss  -0xbc(%rbp),%xmm1
ff
movss  -0xc0(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    2376 <coplanar_tri_tri+0x1276>
xorps  %xmm0,%xmm0
ucomiss -0xc0(%rbp),%xmm0
jbe    2440 <coplanar_tri_tri+0x1340>
xorps  %xmm0,%xmm0
ucomiss -0xbc(%rbp),%xmm0
jb     2440 <coplanar_tri_tri+0x1340>
movss  -0xbc(%rbp),%xmm0
ff
ucomiss -0xc0(%rbp),%xmm0
jb     2440 <coplanar_tri_tri+0x1340>
movss  -0xa0(%rbp),%xmm0
ff
movss  -0xb4(%rbp),%xmm2
ff
movss  -0xa4(%rbp),%xmm1
ff
mulss  -0xb0(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xb8(%rbp)
ff
movss  -0xc0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    2405 <coplanar_tri_tri+0x1305>
movss  -0xb8(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     2400 <coplanar_tri_tri+0x1300>
movss  -0xb8(%rbp),%xmm1
ff
movss  -0xc0(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     2400 <coplanar_tri_tri+0x1300>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    243b <coplanar_tri_tri+0x133b>
xorps  %xmm0,%xmm0
ucomiss -0xb8(%rbp),%xmm0
jb     2436 <coplanar_tri_tri+0x1336>
movss  -0xb8(%rbp),%xmm0
ff
ucomiss -0xc0(%rbp),%xmm0
jb     2436 <coplanar_tri_tri+0x1336>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    243b <coplanar_tri_tri+0x133b>
jmp    2440 <coplanar_tri_tri+0x1340>
mov    0x10(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xa8(%rbp)
ff
mov    0x10(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xac(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xb4(%rbp)
ff
movss  -0xa4(%rbp),%xmm0
ff
movss  -0xa8(%rbp),%xmm2
ff
movss  -0xa0(%rbp),%xmm1
ff
mulss  -0xac(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xc0(%rbp)
ff
movss  -0xac(%rbp),%xmm0
ff
movss  -0xb0(%rbp),%xmm2
ff
movss  -0xa8(%rbp),%xmm1
ff
mulss  -0xb4(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xbc(%rbp)
ff
movss  -0xc0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    259b <coplanar_tri_tri+0x149b>
movss  -0xbc(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     259b <coplanar_tri_tri+0x149b>
movss  -0xbc(%rbp),%xmm1
ff
movss  -0xc0(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    25d0 <coplanar_tri_tri+0x14d0>
xorps  %xmm0,%xmm0
ucomiss -0xc0(%rbp),%xmm0
jbe    269a <coplanar_tri_tri+0x159a>
xorps  %xmm0,%xmm0
ucomiss -0xbc(%rbp),%xmm0
jb     269a <coplanar_tri_tri+0x159a>
movss  -0xbc(%rbp),%xmm0
ff
ucomiss -0xc0(%rbp),%xmm0
jb     269a <coplanar_tri_tri+0x159a>
movss  -0xa0(%rbp),%xmm0
ff
movss  -0xb4(%rbp),%xmm2
ff
movss  -0xa4(%rbp),%xmm1
ff
mulss  -0xb0(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xb8(%rbp)
ff
movss  -0xc0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    265f <coplanar_tri_tri+0x155f>
movss  -0xb8(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     265a <coplanar_tri_tri+0x155a>
movss  -0xb8(%rbp),%xmm1
ff
movss  -0xc0(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     265a <coplanar_tri_tri+0x155a>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    2695 <coplanar_tri_tri+0x1595>
xorps  %xmm0,%xmm0
ucomiss -0xb8(%rbp),%xmm0
jb     2690 <coplanar_tri_tri+0x1590>
movss  -0xb8(%rbp),%xmm0
ff
ucomiss -0xc0(%rbp),%xmm0
jb     2690 <coplanar_tri_tri+0x1590>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    2695 <coplanar_tri_tri+0x1595>
jmp    269a <coplanar_tri_tri+0x159a>
mov    -0x38(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xc4(%rbp)
ff
mov    -0x38(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xc8(%rbp)
movss  -0xc4(%rbp),%xmm0
ff
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
cvtss2sd %xmm0,%xmm0
mov    -0x30(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movss  -0xc8(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
mov    -0x30(%rbp),%rax
movswq -0x54(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xcc(%rbp)
ff
movss  -0xc4(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
mov    -0x18(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movss  -0xc8(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
mov    -0x18(%rbp),%rax
movswq -0x54(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movss  -0xcc(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xd0(%rbp)
ff
mov    0x10(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xc4(%rbp)
ff
mov    0x10(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xc8(%rbp)
ff
movss  -0xc4(%rbp),%xmm0
ff
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
cvtss2sd %xmm0,%xmm0
mov    -0x38(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movss  -0xc8(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
mov    -0x38(%rbp),%rax
movswq -0x54(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xcc(%rbp)
ff
movss  -0xc4(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
mov    -0x18(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movss  -0xc8(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
mov    -0x18(%rbp),%rax
movswq -0x54(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movss  -0xcc(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xd4(%rbp)
ff
mov    -0x30(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xc4(%rbp)
ff
mov    -0x30(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xc8(%rbp)
ff
movss  -0xc4(%rbp),%xmm0
ff
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
cvtss2sd %xmm0,%xmm0
mov    0x10(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movss  -0xc8(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
mov    0x10(%rbp),%rax
movswq -0x54(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xcc(%rbp)
ff
movss  -0xc4(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
mov    -0x18(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movss  -0xc8(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
mov    -0x18(%rbp),%rax
movswq -0x54(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movss  -0xcc(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xd8(%rbp)
ff
movss  -0xd0(%rbp),%xmm0
ff
mulss  -0xd4(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2a6e <coplanar_tri_tri+0x196e>
movss  -0xd0(%rbp),%xmm0
ff
mulss  -0xd8(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2a69 <coplanar_tri_tri+0x1969>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    2a6e <coplanar_tri_tri+0x196e>
mov    -0x20(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x18(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xdc(%rbp)
ff
mov    -0x20(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x18(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xe0(%rbp)
ff
movss  -0xdc(%rbp),%xmm0
ff
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
cvtss2sd %xmm0,%xmm0
mov    -0x18(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movss  -0xe0(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
mov    -0x18(%rbp),%rax
movswq -0x54(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xe4(%rbp)
ff
movss  -0xdc(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
mov    -0x30(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movss  -0xe0(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
mov    -0x30(%rbp),%rax
movswq -0x54(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movss  -0xe4(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xe8(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x20(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xdc(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x20(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xe0(%rbp)
ff
movss  -0xdc(%rbp),%xmm0
ff
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
cvtss2sd %xmm0,%xmm0
mov    -0x20(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movss  -0xe0(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
mov    -0x20(%rbp),%rax
movswq -0x54(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xe4(%rbp)
ff
movss  -0xdc(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
mov    -0x30(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movss  -0xe0(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
mov    -0x30(%rbp),%rax
movswq -0x54(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movss  -0xe4(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xec(%rbp)
ff
mov    -0x18(%rbp),%rax
movswq -0x54(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x28(%rbp),%rax
movswq -0x54(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xdc(%rbp)
ff
mov    -0x18(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x28(%rbp),%rax
movswq -0x52(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xe0(%rbp)
ff
movss  -0xdc(%rbp),%xmm0
ff
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
cvtss2sd %xmm0,%xmm0
mov    -0x28(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movss  -0xe0(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
mov    -0x28(%rbp),%rax
movswq -0x54(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xe4(%rbp)
ff
movss  -0xdc(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
mov    -0x30(%rbp),%rax
movswq -0x52(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movss  -0xe0(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
mov    -0x30(%rbp),%rax
movswq -0x54(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movss  -0xe4(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xf0(%rbp)
ff
movss  -0xe8(%rbp),%xmm0
ff
mulss  -0xec(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2e42 <coplanar_tri_tri+0x1d42>
movss  -0xe8(%rbp),%xmm0
ff
mulss  -0xf0(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2e3d <coplanar_tri_tri+0x1d3d>
movl   $0x1,-0x4(%rbp)
jmp    2e49 <coplanar_tri_tri+0x1d49>
jmp    2e42 <coplanar_tri_tri+0x1d42>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x70,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<coplanar_tri_tri>:
sub    $0x98,%rsp
movdqu (%rdi),%xmm0
movdqa 0xeed(%rip),%xmm2
pand   %xmm2,%xmm0
movq   0x10(%rdi),%xmm1
pand   %xmm2,%xmm1
pshufd $0xee,%xmm0,%xmm2
ucomisd %xmm2,%xmm0
jbe    113b <coplanar_tri_tri+0x3b>
xor    %edi,%edi
ucomisd %xmm1,%xmm0
seta   %dil
lea    0x1(%rdi),%r10
jmp    114f <coplanar_tri_tri+0x4f>
xor    %eax,%eax
ucomisd %xmm2,%xmm1
seta   %al
mov    $0x2,%r10d
sub    %rax,%r10
xor    %edi,%edi
movsd  (%rdx,%rdi,8),%xmm0
movsd  (%rsi,%rdi,8),%xmm4
movapd %xmm0,(%rsp)
subsd  %xmm4,%xmm0
cvtsd2ss %xmm0,%xmm7
movsd  (%rdx,%r10,8),%xmm0
movsd  (%rsi,%r10,8),%xmm12
movapd %xmm0,-0x10(%rsp)
subsd  %xmm12,%xmm0
xorps  %xmm1,%xmm1
cvtsd2ss %xmm0,%xmm1
movsd  (%r8,%rdi,8),%xmm2
movsd  (%r9,%rdi,8),%xmm3
movapd %xmm2,%xmm0
movapd %xmm3,0x20(%rsp)
subsd  %xmm3,%xmm0
cvtsd2ss %xmm0,%xmm15
movsd  (%r8,%r10,8),%xmm5
movsd  (%r9,%r10,8),%xmm3
movapd %xmm5,%xmm0
movapd %xmm3,0x10(%rsp)
subsd  %xmm3,%xmm0
cvtsd2ss %xmm0,%xmm11
movapd %xmm4,-0x40(%rsp)
movapd %xmm4,%xmm0
movapd %xmm2,-0x60(%rsp)
subsd  %xmm2,%xmm0
xorps  %xmm3,%xmm3
cvtsd2ss %xmm0,%xmm3
movapd %xmm12,%xmm0
movapd %xmm5,-0x70(%rsp)
subsd  %xmm5,%xmm0
cvtsd2ss %xmm0,%xmm0
movaps %xmm7,%xmm2
mulss  %xmm11,%xmm2
movaps %xmm1,%xmm6
mulss  %xmm15,%xmm6
subss  %xmm2,%xmm6
movaps %xmm15,%xmm2
mulss  %xmm0,%xmm2
movaps %xmm11,%xmm5
mulss  %xmm3,%xmm5
subss  %xmm2,%xmm5
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm6
jbe    122a <coplanar_tri_tri+0x12a>
ucomiss %xmm2,%xmm5
jb     122a <coplanar_tri_tri+0x12a>
ucomiss %xmm5,%xmm6
jae    123c <coplanar_tri_tri+0x13c>
ucomiss %xmm6,%xmm2
jbe    1276 <coplanar_tri_tri+0x176>
xorps  %xmm2,%xmm2
ucomiss %xmm5,%xmm2
jb     1276 <coplanar_tri_tri+0x176>
ucomiss %xmm6,%xmm5
jb     1276 <coplanar_tri_tri+0x176>
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm6
mulss  %xmm1,%xmm3
mulss  %xmm7,%xmm0
subss  %xmm3,%xmm0
jbe    1267 <coplanar_tri_tri+0x167>
ucomiss %xmm2,%xmm0
jb     1276 <coplanar_tri_tri+0x176>
mov    $0x1,%eax
ucomiss %xmm0,%xmm6
jb     1276 <coplanar_tri_tri+0x176>
add    $0x98,%rsp
ret
ucomiss %xmm0,%xmm2
jb     1276 <coplanar_tri_tri+0x176>
mov    $0x1,%eax
ucomiss %xmm6,%xmm0
jae    125f <coplanar_tri_tri+0x15f>
mov    0xa0(%rsp),%rax
movaps %xmm7,%xmm3
xorps  0xd88(%rip),%xmm3
movsd  (%rax,%rdi,8),%xmm6
movsd  (%rax,%r10,8),%xmm2
movapd 0x10(%rsp),%xmm5
movapd %xmm5,%xmm0
movapd %xmm2,-0x30(%rsp)
subsd  %xmm2,%xmm0
xorps  %xmm4,%xmm4
cvtsd2ss %xmm0,%xmm4
movapd -0x40(%rsp),%xmm0
movapd 0x20(%rsp),%xmm2
unpcklpd %xmm2,%xmm0
movapd %xmm6,-0x20(%rsp)
unpcklpd %xmm6,%xmm2
movapd %xmm2,0x80(%rsp)
subpd  %xmm2,%xmm0
cvtpd2ps %xmm0,%xmm14
movapd %xmm14,%xmm10
shufps $0x55,%xmm14,%xmm10
movapd %xmm12,%xmm0
subsd  %xmm5,%xmm0
cvtsd2ss %xmm0,%xmm0
xorps  0xd17(%rip),%xmm10
movaps %xmm0,%xmm2
movaps %xmm3,0x60(%rsp)
unpcklps %xmm3,%xmm2
movaps %xmm10,%xmm9
unpcklps %xmm4,%xmm9
mulps  %xmm9,%xmm2
movaps %xmm4,0x50(%rsp)
movaps %xmm4,%xmm3
unpcklps %xmm1,%xmm3
mulps  %xmm14,%xmm3
addps  %xmm2,%xmm3
movaps %xmm3,%xmm6
shufps $0x55,%xmm3,%xmm6
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm6
jbe    133b <coplanar_tri_tri+0x23b>
ucomiss %xmm2,%xmm3
jb     133b <coplanar_tri_tri+0x23b>
ucomiss %xmm3,%xmm6
jae    134d <coplanar_tri_tri+0x24d>
ucomiss %xmm6,%xmm2
jbe    138d <coplanar_tri_tri+0x28d>
xorps  %xmm2,%xmm2
ucomiss %xmm3,%xmm2
jb     138d <coplanar_tri_tri+0x28d>
ucomiss %xmm6,%xmm3
jb     138d <coplanar_tri_tri+0x28d>
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm6
movaps %xmm14,%xmm3
mulss  %xmm1,%xmm3
mulss  %xmm7,%xmm0
subss  %xmm3,%xmm0
jbe    137a <coplanar_tri_tri+0x27a>
ucomiss %xmm2,%xmm0
jb     138d <coplanar_tri_tri+0x28d>
mov    $0x1,%eax
ucomiss %xmm0,%xmm6
jae    125f <coplanar_tri_tri+0x15f>
jmp    138d <coplanar_tri_tri+0x28d>
ucomiss %xmm0,%xmm2
jb     138d <coplanar_tri_tri+0x28d>
mov    $0x1,%eax
ucomiss %xmm6,%xmm0
jae    125f <coplanar_tri_tri+0x15f>
movapd -0x20(%rsp),%xmm3
movapd %xmm3,%xmm0
subsd  -0x60(%rsp),%xmm0
xorps  %xmm5,%xmm5
cvtsd2ss %xmm0,%xmm5
movapd -0x30(%rsp),%xmm2
movapd %xmm2,%xmm0
subsd  -0x70(%rsp),%xmm0
xorps  %xmm4,%xmm4
cvtsd2ss %xmm0,%xmm4
movapd -0x40(%rsp),%xmm0
subsd  %xmm3,%xmm0
xorps  %xmm3,%xmm3
cvtsd2ss %xmm0,%xmm3
movapd %xmm12,%xmm0
subsd  %xmm2,%xmm0
xorps  %xmm6,%xmm6
cvtsd2ss %xmm0,%xmm6
movaps 0x60(%rsp),%xmm2
mulss  %xmm4,%xmm2
movaps %xmm1,%xmm0
mulss  %xmm5,%xmm0
addss  %xmm2,%xmm0
movaps %xmm5,0x40(%rsp)
movaps %xmm5,%xmm2
mulss  %xmm6,%xmm2
movaps %xmm4,%xmm5
mulss  %xmm3,%xmm5
subss  %xmm2,%xmm5
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm0
jbe    1419 <coplanar_tri_tri+0x319>
ucomiss %xmm2,%xmm5
jb     1419 <coplanar_tri_tri+0x319>
ucomiss %xmm5,%xmm0
jae    142b <coplanar_tri_tri+0x32b>
ucomiss %xmm0,%xmm2
jbe    1467 <coplanar_tri_tri+0x367>
xorps  %xmm2,%xmm2
ucomiss %xmm5,%xmm2
jb     1467 <coplanar_tri_tri+0x367>
ucomiss %xmm0,%xmm5
jb     1467 <coplanar_tri_tri+0x367>
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm0
mulss  %xmm1,%xmm3
mulss  %xmm6,%xmm7
subss  %xmm3,%xmm7
jbe    1454 <coplanar_tri_tri+0x354>
ucomiss %xmm2,%xmm7
jb     1467 <coplanar_tri_tri+0x367>
mov    $0x1,%eax
ucomiss %xmm7,%xmm0
jae    125f <coplanar_tri_tri+0x15f>
jmp    1467 <coplanar_tri_tri+0x367>
ucomiss %xmm7,%xmm2
jb     1467 <coplanar_tri_tri+0x367>
mov    $0x1,%eax
ucomiss %xmm0,%xmm7
jae    125f <coplanar_tri_tri+0x15f>
movaps %xmm15,%xmm8
movsd  (%rcx,%rdi,8),%xmm0
movsd  %xmm0,-0x78(%rsp)
movapd (%rsp),%xmm2
subsd  %xmm2,%xmm0
xorps  %xmm5,%xmm5
cvtsd2ss %xmm0,%xmm5
movsd  (%rcx,%r10,8),%xmm0
movsd  %xmm0,-0x80(%rsp)
movapd -0x10(%rsp),%xmm3
subsd  %xmm3,%xmm0
xorps  %xmm7,%xmm7
cvtsd2ss %xmm0,%xmm7
xorps  0xb65(%rip),%xmm8
movapd %xmm2,%xmm0
subsd  -0x60(%rsp),%xmm0
cvtsd2ss %xmm0,%xmm0
movapd %xmm3,%xmm2
subsd  -0x70(%rsp),%xmm2
cvtsd2ss %xmm2,%xmm13
movaps 0xb41(%rip),%xmm3
xorps  %xmm5,%xmm3
unpcklps %xmm11,%xmm8
movaps %xmm13,%xmm2
movaps %xmm3,0x30(%rsp)
unpcklps %xmm3,%xmm2
mulps  %xmm8,%xmm2
movaps %xmm11,%xmm6
movaps %xmm7,-0x50(%rsp)
unpcklps %xmm7,%xmm6
movaps %xmm0,%xmm3
unpcklps %xmm15,%xmm3
mulps  %xmm6,%xmm3
addps  %xmm2,%xmm3
movaps %xmm3,%xmm6
shufps $0x55,%xmm3,%xmm6
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm6
jbe    1518 <coplanar_tri_tri+0x418>
ucomiss %xmm2,%xmm3
jb     1518 <coplanar_tri_tri+0x418>
ucomiss %xmm3,%xmm6
jae    152a <coplanar_tri_tri+0x42a>
ucomiss %xmm6,%xmm2
jbe    156e <coplanar_tri_tri+0x46e>
xorps  %xmm2,%xmm2
ucomiss %xmm3,%xmm2
jb     156e <coplanar_tri_tri+0x46e>
ucomiss %xmm6,%xmm3
jb     156e <coplanar_tri_tri+0x46e>
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm6
mulss  -0x50(%rsp),%xmm0
mulss  %xmm5,%xmm13
subss  %xmm0,%xmm13
jbe    1559 <coplanar_tri_tri+0x459>
ucomiss %xmm2,%xmm13
jb     156e <coplanar_tri_tri+0x46e>
mov    $0x1,%eax
ucomiss %xmm13,%xmm6
jae    125f <coplanar_tri_tri+0x15f>
jmp    156e <coplanar_tri_tri+0x46e>
ucomiss %xmm13,%xmm2
jb     156e <coplanar_tri_tri+0x46e>
mov    $0x1,%eax
ucomiss %xmm6,%xmm13
jae    125f <coplanar_tri_tri+0x15f>
movapd (%rsp),%xmm0
subsd  0x20(%rsp),%xmm0
xorps  %xmm6,%xmm6
cvtsd2ss %xmm0,%xmm6
movapd -0x10(%rsp),%xmm0
subsd  0x10(%rsp),%xmm0
cvtsd2ss %xmm0,%xmm0
movaps %xmm0,%xmm2
movaps 0x50(%rsp),%xmm3
unpcklps %xmm3,%xmm2
movaps 0x30(%rsp),%xmm7
movlhps %xmm10,%xmm7
shufps $0xe2,%xmm10,%xmm7
mulps  %xmm2,%xmm7
movaps %xmm3,%xmm2
unpcklps -0x50(%rsp),%xmm2
movaps %xmm14,%xmm3
movss  %xmm6,%xmm3
mulps  %xmm2,%xmm3
addps  %xmm7,%xmm3
movaps %xmm3,%xmm7
shufps $0x55,%xmm3,%xmm7
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm7
jbe    15db <coplanar_tri_tri+0x4db>
ucomiss %xmm2,%xmm3
jb     15db <coplanar_tri_tri+0x4db>
ucomiss %xmm3,%xmm7
jae    15ed <coplanar_tri_tri+0x4ed>
ucomiss %xmm7,%xmm2
jbe    162b <coplanar_tri_tri+0x52b>
xorps  %xmm2,%xmm2
ucomiss %xmm3,%xmm2
jb     162b <coplanar_tri_tri+0x52b>
ucomiss %xmm7,%xmm3
jb     162b <coplanar_tri_tri+0x52b>
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm7
mulss  -0x50(%rsp),%xmm6
mulss  %xmm5,%xmm0
subss  %xmm6,%xmm0
jbe    1618 <coplanar_tri_tri+0x518>
ucomiss %xmm2,%xmm0
jb     162b <coplanar_tri_tri+0x52b>
mov    $0x1,%eax
ucomiss %xmm0,%xmm7
jae    125f <coplanar_tri_tri+0x15f>
jmp    162b <coplanar_tri_tri+0x52b>
ucomiss %xmm0,%xmm2
jb     162b <coplanar_tri_tri+0x52b>
mov    $0x1,%eax
ucomiss %xmm7,%xmm0
jae    125f <coplanar_tri_tri+0x15f>
movapd (%rsp),%xmm0
subsd  -0x20(%rsp),%xmm0
cvtsd2ss %xmm0,%xmm0
movaps 0x9cf(%rip),%xmm3
movapd -0x10(%rsp),%xmm2
subsd  -0x30(%rsp),%xmm2
cvtsd2ss %xmm2,%xmm10
movaps 0x40(%rsp),%xmm6
xorps  %xmm6,%xmm3
unpcklps %xmm4,%xmm3
movaps %xmm10,%xmm2
unpcklps 0x30(%rsp),%xmm2
movaps %xmm3,0x70(%rsp)
mulps  %xmm3,%xmm2
movaps %xmm4,%xmm3
unpcklps -0x50(%rsp),%xmm3
movaps %xmm0,%xmm7
unpcklps %xmm6,%xmm7
mulps  %xmm3,%xmm7
addps  %xmm2,%xmm7
movaps %xmm7,%xmm3
shufps $0x55,%xmm7,%xmm3
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm3
jbe    169b <coplanar_tri_tri+0x59b>
ucomiss %xmm2,%xmm7
jb     169b <coplanar_tri_tri+0x59b>
ucomiss %xmm7,%xmm3
jae    16ad <coplanar_tri_tri+0x5ad>
ucomiss %xmm3,%xmm2
jbe    16ec <coplanar_tri_tri+0x5ec>
xorps  %xmm2,%xmm2
ucomiss %xmm7,%xmm2
jb     16ec <coplanar_tri_tri+0x5ec>
ucomiss %xmm3,%xmm7
jb     16ec <coplanar_tri_tri+0x5ec>
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm3
mulss  -0x50(%rsp),%xmm0
mulss  %xmm10,%xmm5
subss  %xmm0,%xmm5
jbe    16d9 <coplanar_tri_tri+0x5d9>
ucomiss %xmm2,%xmm5
jb     16ec <coplanar_tri_tri+0x5ec>
mov    $0x1,%eax
ucomiss %xmm5,%xmm3
jae    125f <coplanar_tri_tri+0x15f>
jmp    16ec <coplanar_tri_tri+0x5ec>
ucomiss %xmm5,%xmm2
jb     16ec <coplanar_tri_tri+0x5ec>
mov    $0x1,%eax
ucomiss %xmm3,%xmm5
jae    125f <coplanar_tri_tri+0x15f>
movapd -0x40(%rsp),%xmm0
movsd  -0x78(%rsp),%xmm2
subsd  %xmm2,%xmm0
xorps  %xmm10,%xmm10
cvtsd2ss %xmm0,%xmm10
movapd %xmm12,%xmm0
movsd  -0x80(%rsp),%xmm3
subsd  %xmm3,%xmm0
cvtsd2ss %xmm0,%xmm13
shufps $0x0,%xmm15,%xmm15
movapd %xmm2,%xmm0
subsd  -0x60(%rsp),%xmm0
cvtsd2ss %xmm0,%xmm0
movapd %xmm3,%xmm2
subsd  -0x70(%rsp),%xmm2
xorps  %xmm7,%xmm7
cvtsd2ss %xmm2,%xmm7
movaps 0x8cc(%rip),%xmm3
xorps  %xmm10,%xmm3
movaps %xmm7,%xmm2
unpcklps %xmm3,%xmm2
mulps  %xmm2,%xmm8
movaps %xmm13,%xmm2
movlhps %xmm11,%xmm2
shufps $0xe2,%xmm11,%xmm2
movaps %xmm3,%xmm11
movss  %xmm0,%xmm15
mulps  %xmm2,%xmm15
addps  %xmm8,%xmm15
movaps %xmm15,%xmm3
shufps $0x55,%xmm15,%xmm3
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm3
jbe    178d <coplanar_tri_tri+0x68d>
ucomiss %xmm2,%xmm15
jb     178d <coplanar_tri_tri+0x68d>
ucomiss %xmm15,%xmm3
jae    17a1 <coplanar_tri_tri+0x6a1>
ucomiss %xmm3,%xmm2
jbe    17df <coplanar_tri_tri+0x6df>
xorps  %xmm2,%xmm2
ucomiss %xmm15,%xmm2
jb     17df <coplanar_tri_tri+0x6df>
ucomiss %xmm3,%xmm15
jb     17df <coplanar_tri_tri+0x6df>
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm3
mulss  %xmm13,%xmm0
mulss  %xmm10,%xmm7
subss  %xmm0,%xmm7
jbe    17cc <coplanar_tri_tri+0x6cc>
ucomiss %xmm2,%xmm7
jb     17df <coplanar_tri_tri+0x6df>
mov    $0x1,%eax
ucomiss %xmm7,%xmm3
jae    125f <coplanar_tri_tri+0x15f>
jmp    17df <coplanar_tri_tri+0x6df>
ucomiss %xmm7,%xmm2
jb     17df <coplanar_tri_tri+0x6df>
mov    $0x1,%eax
ucomiss %xmm3,%xmm7
jae    125f <coplanar_tri_tri+0x15f>
movsd  -0x78(%rsp),%xmm0
subsd  0x20(%rsp),%xmm0
xorps  %xmm6,%xmm6
cvtsd2ss %xmm0,%xmm6
movsd  -0x80(%rsp),%xmm0
subsd  0x10(%rsp),%xmm0
cvtsd2ss %xmm0,%xmm0
movaps %xmm0,%xmm2
unpcklps %xmm11,%xmm2
mulps  %xmm2,%xmm9
movaps %xmm13,%xmm2
movaps 0x50(%rsp),%xmm3
movlhps %xmm3,%xmm2
shufps $0xe2,%xmm3,%xmm2
movss  %xmm6,%xmm14
mulps  %xmm2,%xmm14
addps  %xmm9,%xmm14
movaps %xmm14,%xmm3
shufps $0x55,%xmm14,%xmm3
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm3
jbe    1847 <coplanar_tri_tri+0x747>
ucomiss %xmm2,%xmm14
jb     1847 <coplanar_tri_tri+0x747>
ucomiss %xmm14,%xmm3
jae    185b <coplanar_tri_tri+0x75b>
ucomiss %xmm3,%xmm2
jbe    1899 <coplanar_tri_tri+0x799>
xorps  %xmm2,%xmm2
ucomiss %xmm14,%xmm2
jb     1899 <coplanar_tri_tri+0x799>
ucomiss %xmm3,%xmm14
jb     1899 <coplanar_tri_tri+0x799>
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm3
mulss  %xmm13,%xmm6
mulss  %xmm10,%xmm0
subss  %xmm6,%xmm0
jbe    1886 <coplanar_tri_tri+0x786>
ucomiss %xmm2,%xmm0
jb     1899 <coplanar_tri_tri+0x799>
mov    $0x1,%eax
ucomiss %xmm0,%xmm3
jae    125f <coplanar_tri_tri+0x15f>
jmp    1899 <coplanar_tri_tri+0x799>
ucomiss %xmm0,%xmm2
jb     1899 <coplanar_tri_tri+0x799>
mov    $0x1,%eax
ucomiss %xmm3,%xmm0
jae    125f <coplanar_tri_tri+0x15f>
movsd  -0x78(%rsp),%xmm0
subsd  -0x20(%rsp),%xmm0
cvtsd2ss %xmm0,%xmm0
movaps 0x40(%rsp),%xmm5
shufps $0x0,%xmm5,%xmm5
movaps %xmm11,%xmm2
movsd  -0x80(%rsp),%xmm3
subsd  -0x30(%rsp),%xmm3
xorps  %xmm6,%xmm6
cvtsd2ss %xmm3,%xmm6
shufps $0x0,%xmm11,%xmm2
movss  %xmm6,%xmm2
movaps 0x70(%rsp),%xmm3
mulps  %xmm2,%xmm3
movaps %xmm13,%xmm2
movlhps %xmm4,%xmm2
shufps $0xe2,%xmm4,%xmm2
movss  %xmm0,%xmm5
mulps  %xmm2,%xmm5
addps  %xmm3,%xmm5
movaps %xmm5,%xmm7
movaps %xmm5,%xmm3
shufps $0x55,%xmm5,%xmm3
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm3
jbe    190b <coplanar_tri_tri+0x80b>
ucomiss %xmm2,%xmm7
jb     190b <coplanar_tri_tri+0x80b>
ucomiss %xmm7,%xmm3
jae    191d <coplanar_tri_tri+0x81d>
ucomiss %xmm3,%xmm2
jbe    1960 <coplanar_tri_tri+0x860>
xorps  %xmm2,%xmm2
ucomiss %xmm7,%xmm2
jb     1960 <coplanar_tri_tri+0x860>
ucomiss %xmm3,%xmm7
jb     1960 <coplanar_tri_tri+0x860>
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm3
mulss  %xmm13,%xmm0
mulss  %xmm6,%xmm10
subss  %xmm0,%xmm10
jbe    194b <coplanar_tri_tri+0x84b>
ucomiss %xmm2,%xmm10
jb     1960 <coplanar_tri_tri+0x860>
mov    $0x1,%eax
ucomiss %xmm10,%xmm3
jae    125f <coplanar_tri_tri+0x15f>
jmp    1960 <coplanar_tri_tri+0x860>
ucomiss %xmm10,%xmm2
jb     1960 <coplanar_tri_tri+0x860>
mov    $0x1,%eax
ucomiss %xmm3,%xmm10
jae    125f <coplanar_tri_tri+0x15f>
movapd -0x70(%rsp),%xmm0
movapd 0x10(%rsp),%xmm2
unpcklpd %xmm2,%xmm0
unpcklpd -0x30(%rsp),%xmm2
subpd  %xmm0,%xmm2
cvtpd2ps %xmm2,%xmm2
movapd -0x60(%rsp),%xmm3
unpcklpd 0x20(%rsp),%xmm3
movapd 0x80(%rsp),%xmm5
subpd  %xmm3,%xmm5
cvtpd2ps %xmm5,%xmm5
cvtps2pd %xmm2,%xmm6
movapd 0x66a(%rip),%xmm7
xorpd  %xmm7,%xmm2
cvtps2pd %xmm2,%xmm2
xorpd  %xmm7,%xmm5
cvtps2pd %xmm5,%xmm5
mulpd  %xmm5,%xmm0
mulpd  %xmm3,%xmm2
subpd  %xmm0,%xmm2
cvtpd2ps %xmm2,%xmm0
movapd %xmm12,%xmm2
unpcklpd %xmm12,%xmm2
mulpd  %xmm5,%xmm2
movapd -0x40(%rsp),%xmm3
unpcklpd %xmm3,%xmm3
mulpd  %xmm6,%xmm3
addpd  %xmm2,%xmm3
cvtps2pd %xmm0,%xmm0
addpd  %xmm3,%xmm0
cvtpd2ps %xmm0,%xmm0
movapd %xmm0,%xmm2
shufps $0x55,%xmm0,%xmm2
mulss  %xmm0,%xmm2
xorps  %xmm8,%xmm8
ucomiss %xmm8,%xmm2
jbe    1a93 <coplanar_tri_tri+0x993>
movapd -0x70(%rsp),%xmm2
movapd -0x30(%rsp),%xmm3
subsd  %xmm3,%xmm2
cvtsd2ss %xmm2,%xmm2
movapd -0x60(%rsp),%xmm5
movapd -0x20(%rsp),%xmm9
subsd  %xmm9,%xmm5
cvtsd2ss %xmm5,%xmm5
xorps  0x5d6(%rip),%xmm5
cvtss2sd %xmm5,%xmm5
xorps  %xmm6,%xmm6
cvtss2sd %xmm2,%xmm6
movapd %xmm12,%xmm7
mulsd  %xmm5,%xmm7
mulsd  -0x40(%rsp),%xmm6
addsd  %xmm7,%xmm6
xorps  0x5b1(%rip),%xmm2
cvtss2sd %xmm2,%xmm2
mulsd  %xmm5,%xmm3
mulsd  %xmm9,%xmm2
subsd  %xmm3,%xmm2
cvtsd2ss %xmm2,%xmm2
cvtss2sd %xmm2,%xmm2
addsd  %xmm6,%xmm2
cvtsd2ss %xmm2,%xmm2
mulss  %xmm2,%xmm0
mov    $0x1,%eax
ucomiss %xmm8,%xmm0
ja     125f <coplanar_tri_tri+0x15f>
unpcklps -0x50(%rsp),%xmm1
cvtps2pd %xmm1,%xmm0
xorps  0x56e(%rip),%xmm1
cvtps2pd %xmm1,%xmm1
movaps 0x60(%rsp),%xmm2
unpcklps 0x30(%rsp),%xmm2
cvtps2pd %xmm2,%xmm2
unpcklpd -0x10(%rsp),%xmm12
mulpd  %xmm2,%xmm12
movapd -0x40(%rsp),%xmm3
unpcklpd (%rsp),%xmm3
mulpd  %xmm1,%xmm3
subpd  %xmm12,%xmm3
cvtpd2ps %xmm3,%xmm1
movapd -0x70(%rsp),%xmm4
unpcklpd %xmm4,%xmm4
mulpd  %xmm2,%xmm4
movapd -0x60(%rsp),%xmm2
unpcklpd %xmm2,%xmm2
mulpd  %xmm0,%xmm2
cvtps2pd %xmm1,%xmm0
addpd  %xmm4,%xmm2
addpd  %xmm2,%xmm0
cvtpd2ps %xmm0,%xmm0
movapd %xmm0,%xmm1
shufps $0x55,%xmm0,%xmm1
mulss  %xmm0,%xmm1
ucomiss %xmm8,%xmm1
jbe    1b83 <coplanar_tri_tri+0xa83>
xorps  %xmm1,%xmm1
cvtss2sd %xmm11,%xmm1
xorps  %xmm2,%xmm2
cvtss2sd %xmm13,%xmm2
movapd -0x70(%rsp),%xmm3
mulsd  %xmm1,%xmm3
mulsd  -0x60(%rsp),%xmm2
xorps  0x4d5(%rip),%xmm13
addsd  %xmm3,%xmm2
xorps  %xmm3,%xmm3
cvtss2sd %xmm13,%xmm3
movsd  -0x80(%rsp),%xmm4
mulsd  %xmm1,%xmm4
mulsd  -0x78(%rsp),%xmm3
subsd  %xmm4,%xmm3
xorps  %xmm1,%xmm1
cvtsd2ss %xmm3,%xmm1
cvtss2sd %xmm1,%xmm1
addsd  %xmm2,%xmm1
cvtsd2ss %xmm1,%xmm1
mulss  %xmm1,%xmm0
mov    $0x1,%eax
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
ja     125f <coplanar_tri_tri+0x15f>
xor    %eax,%eax
add    $0x98,%rsp
ret

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

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