int coplanar_tri_tri(float N[3], float V0[3], float V1[3], float V2[3],
                     float U0[3], float U1[3], float U2[3]) {
  float A[3];
  short i0, i1;
#pragma warning(disable : 4244)
  A[0] = fabs(N[0]);
  A[1] = fabs(N[1]);
  A[2] = fabs(N[2]);
#pragma warning(default : 4244)
  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    $0x68,%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
movss  (%rax),%xmm0
cvtss2sd %xmm0,%xmm0
movaps 0x1ec9(%rip),%xmm1
pand   %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x44(%rbp)
mov    -0x10(%rbp),%rax
movss  0x4(%rax),%xmm0
cvtss2sd %xmm0,%xmm0
movaps 0x1ea8(%rip),%xmm1
pand   %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movss  0x8(%rax),%xmm0
cvtss2sd %xmm0,%xmm0
movaps 0x1e87(%rip),%xmm1
pand   %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x44(%rbp),%xmm0
ucomiss -0x40(%rbp),%xmm0
jbe    11c6 <coplanar_tri_tri+0xc6>
movss  -0x44(%rbp),%xmm0
ucomiss -0x3c(%rbp),%xmm0
jbe    11b5 <coplanar_tri_tri+0xb5>
movw   $0x1,-0x46(%rbp)
movw   $0x2,-0x48(%rbp)
jmp    11c1 <coplanar_tri_tri+0xc1>
movw   $0x0,-0x46(%rbp)
movw   $0x1,-0x48(%rbp)
jmp    11f7 <coplanar_tri_tri+0xf7>
movss  -0x3c(%rbp),%xmm0
ucomiss -0x40(%rbp),%xmm0
jbe    11e6 <coplanar_tri_tri+0xe6>
movw   $0x0,-0x46(%rbp)
movw   $0x1,-0x48(%rbp)
jmp    11f2 <coplanar_tri_tri+0xf2>
movw   $0x0,-0x46(%rbp)
movw   $0x2,-0x48(%rbp)
jmp    11f7 <coplanar_tri_tri+0xf7>
mov    -0x20(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x18(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
mov    -0x20(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x18(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x50(%rbp)
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x54(%rbp)
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x5c(%rbp)
mov    -0x18(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x60(%rbp)
movss  -0x50(%rbp),%xmm0
movss  -0x54(%rbp),%xmm2
movss  -0x4c(%rbp),%xmm1
mulss  -0x58(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  -0x58(%rbp),%xmm0
movss  -0x5c(%rbp),%xmm2
movss  -0x54(%rbp),%xmm1
mulss  -0x60(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x68(%rbp)
movss  -0x6c(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    134e <coplanar_tri_tri+0x24e>
movss  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     134e <coplanar_tri_tri+0x24e>
movss  -0x68(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jae    1377 <coplanar_tri_tri+0x277>
xorps  %xmm0,%xmm0
ucomiss -0x6c(%rbp),%xmm0
jbe    141d <coplanar_tri_tri+0x31d>
xorps  %xmm0,%xmm0
ucomiss -0x68(%rbp),%xmm0
jb     141d <coplanar_tri_tri+0x31d>
movss  -0x68(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     141d <coplanar_tri_tri+0x31d>
movss  -0x4c(%rbp),%xmm0
movss  -0x60(%rbp),%xmm2
movss  -0x50(%rbp),%xmm1
mulss  -0x5c(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x64(%rbp)
movss  -0x6c(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    13eb <coplanar_tri_tri+0x2eb>
movss  -0x64(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     13e6 <coplanar_tri_tri+0x2e6>
movss  -0x64(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     13e6 <coplanar_tri_tri+0x2e6>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    1418 <coplanar_tri_tri+0x318>
xorps  %xmm0,%xmm0
ucomiss -0x64(%rbp),%xmm0
jb     1413 <coplanar_tri_tri+0x313>
movss  -0x64(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     1413 <coplanar_tri_tri+0x313>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    1418 <coplanar_tri_tri+0x318>
jmp    141d <coplanar_tri_tri+0x31d>
mov    -0x38(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x54(%rbp)
mov    -0x38(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x5c(%rbp)
mov    -0x18(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x60(%rbp)
movss  -0x50(%rbp),%xmm0
movss  -0x54(%rbp),%xmm2
movss  -0x4c(%rbp),%xmm1
mulss  -0x58(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  -0x58(%rbp),%xmm0
movss  -0x5c(%rbp),%xmm2
movss  -0x54(%rbp),%xmm1
mulss  -0x60(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x68(%rbp)
movss  -0x6c(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1532 <coplanar_tri_tri+0x432>
movss  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1532 <coplanar_tri_tri+0x432>
movss  -0x68(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jae    155b <coplanar_tri_tri+0x45b>
xorps  %xmm0,%xmm0
ucomiss -0x6c(%rbp),%xmm0
jbe    1601 <coplanar_tri_tri+0x501>
xorps  %xmm0,%xmm0
ucomiss -0x68(%rbp),%xmm0
jb     1601 <coplanar_tri_tri+0x501>
movss  -0x68(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     1601 <coplanar_tri_tri+0x501>
movss  -0x4c(%rbp),%xmm0
movss  -0x60(%rbp),%xmm2
movss  -0x50(%rbp),%xmm1
mulss  -0x5c(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x64(%rbp)
movss  -0x6c(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    15cf <coplanar_tri_tri+0x4cf>
movss  -0x64(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     15ca <coplanar_tri_tri+0x4ca>
movss  -0x64(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     15ca <coplanar_tri_tri+0x4ca>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    15fc <coplanar_tri_tri+0x4fc>
xorps  %xmm0,%xmm0
ucomiss -0x64(%rbp),%xmm0
jb     15f7 <coplanar_tri_tri+0x4f7>
movss  -0x64(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     15f7 <coplanar_tri_tri+0x4f7>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    15fc <coplanar_tri_tri+0x4fc>
jmp    1601 <coplanar_tri_tri+0x501>
mov    0x10(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x54(%rbp)
mov    0x10(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x5c(%rbp)
mov    -0x18(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x60(%rbp)
movss  -0x50(%rbp),%xmm0
movss  -0x54(%rbp),%xmm2
movss  -0x4c(%rbp),%xmm1
mulss  -0x58(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  -0x58(%rbp),%xmm0
movss  -0x5c(%rbp),%xmm2
movss  -0x54(%rbp),%xmm1
mulss  -0x60(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x68(%rbp)
movss  -0x6c(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1716 <coplanar_tri_tri+0x616>
movss  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1716 <coplanar_tri_tri+0x616>
movss  -0x68(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jae    173f <coplanar_tri_tri+0x63f>
xorps  %xmm0,%xmm0
ucomiss -0x6c(%rbp),%xmm0
jbe    17e5 <coplanar_tri_tri+0x6e5>
xorps  %xmm0,%xmm0
ucomiss -0x68(%rbp),%xmm0
jb     17e5 <coplanar_tri_tri+0x6e5>
movss  -0x68(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     17e5 <coplanar_tri_tri+0x6e5>
movss  -0x4c(%rbp),%xmm0
movss  -0x60(%rbp),%xmm2
movss  -0x50(%rbp),%xmm1
mulss  -0x5c(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x64(%rbp)
movss  -0x6c(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    17b3 <coplanar_tri_tri+0x6b3>
movss  -0x64(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     17ae <coplanar_tri_tri+0x6ae>
movss  -0x64(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     17ae <coplanar_tri_tri+0x6ae>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    17e0 <coplanar_tri_tri+0x6e0>
xorps  %xmm0,%xmm0
ucomiss -0x64(%rbp),%xmm0
jb     17db <coplanar_tri_tri+0x6db>
movss  -0x64(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     17db <coplanar_tri_tri+0x6db>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    17e0 <coplanar_tri_tri+0x6e0>
jmp    17e5 <coplanar_tri_tri+0x6e5>
mov    -0x28(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x70(%rbp)
mov    -0x28(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x74(%rbp)
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x7c(%rbp)
mov    -0x20(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x80(%rbp)
mov    -0x20(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x84(%rbp)
ff
movss  -0x74(%rbp),%xmm0
movss  -0x78(%rbp),%xmm2
movss  -0x70(%rbp),%xmm1
mulss  -0x7c(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x90(%rbp)
ff
movss  -0x7c(%rbp),%xmm0
movss  -0x80(%rbp),%xmm2
movss  -0x78(%rbp),%xmm1
mulss  -0x84(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
movss  -0x90(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1954 <coplanar_tri_tri+0x854>
movss  -0x8c(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1954 <coplanar_tri_tri+0x854>
movss  -0x8c(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    1989 <coplanar_tri_tri+0x889>
xorps  %xmm0,%xmm0
ucomiss -0x90(%rbp),%xmm0
jbe    1a4a <coplanar_tri_tri+0x94a>
xorps  %xmm0,%xmm0
ucomiss -0x8c(%rbp),%xmm0
jb     1a4a <coplanar_tri_tri+0x94a>
movss  -0x8c(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1a4a <coplanar_tri_tri+0x94a>
movss  -0x70(%rbp),%xmm0
movss  -0x84(%rbp),%xmm2
ff
movss  -0x74(%rbp),%xmm1
mulss  -0x80(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
movss  -0x90(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1a0f <coplanar_tri_tri+0x90f>
movss  -0x88(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1a0a <coplanar_tri_tri+0x90a>
movss  -0x88(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     1a0a <coplanar_tri_tri+0x90a>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    1a45 <coplanar_tri_tri+0x945>
xorps  %xmm0,%xmm0
ucomiss -0x88(%rbp),%xmm0
jb     1a40 <coplanar_tri_tri+0x940>
movss  -0x88(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1a40 <coplanar_tri_tri+0x940>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    1a45 <coplanar_tri_tri+0x945>
jmp    1a4a <coplanar_tri_tri+0x94a>
mov    -0x38(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x7c(%rbp)
mov    -0x20(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x80(%rbp)
mov    -0x20(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x84(%rbp)
ff
movss  -0x74(%rbp),%xmm0
movss  -0x78(%rbp),%xmm2
movss  -0x70(%rbp),%xmm1
mulss  -0x7c(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x90(%rbp)
ff
movss  -0x7c(%rbp),%xmm0
movss  -0x80(%rbp),%xmm2
movss  -0x78(%rbp),%xmm1
mulss  -0x84(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
movss  -0x90(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1b77 <coplanar_tri_tri+0xa77>
movss  -0x8c(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1b77 <coplanar_tri_tri+0xa77>
movss  -0x8c(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    1bac <coplanar_tri_tri+0xaac>
xorps  %xmm0,%xmm0
ucomiss -0x90(%rbp),%xmm0
jbe    1c6d <coplanar_tri_tri+0xb6d>
xorps  %xmm0,%xmm0
ucomiss -0x8c(%rbp),%xmm0
jb     1c6d <coplanar_tri_tri+0xb6d>
movss  -0x8c(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1c6d <coplanar_tri_tri+0xb6d>
movss  -0x70(%rbp),%xmm0
movss  -0x84(%rbp),%xmm2
ff
movss  -0x74(%rbp),%xmm1
mulss  -0x80(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
movss  -0x90(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1c32 <coplanar_tri_tri+0xb32>
movss  -0x88(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1c2d <coplanar_tri_tri+0xb2d>
movss  -0x88(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     1c2d <coplanar_tri_tri+0xb2d>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    1c68 <coplanar_tri_tri+0xb68>
xorps  %xmm0,%xmm0
ucomiss -0x88(%rbp),%xmm0
jb     1c63 <coplanar_tri_tri+0xb63>
movss  -0x88(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1c63 <coplanar_tri_tri+0xb63>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    1c68 <coplanar_tri_tri+0xb68>
jmp    1c6d <coplanar_tri_tri+0xb6d>
mov    0x10(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x78(%rbp)
mov    0x10(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x7c(%rbp)
mov    -0x20(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x80(%rbp)
mov    -0x20(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x84(%rbp)
ff
movss  -0x74(%rbp),%xmm0
movss  -0x78(%rbp),%xmm2
movss  -0x70(%rbp),%xmm1
mulss  -0x7c(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x90(%rbp)
ff
movss  -0x7c(%rbp),%xmm0
movss  -0x80(%rbp),%xmm2
movss  -0x78(%rbp),%xmm1
mulss  -0x84(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
movss  -0x90(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1d9a <coplanar_tri_tri+0xc9a>
movss  -0x8c(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1d9a <coplanar_tri_tri+0xc9a>
movss  -0x8c(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    1dcf <coplanar_tri_tri+0xccf>
xorps  %xmm0,%xmm0
ucomiss -0x90(%rbp),%xmm0
jbe    1e90 <coplanar_tri_tri+0xd90>
xorps  %xmm0,%xmm0
ucomiss -0x8c(%rbp),%xmm0
jb     1e90 <coplanar_tri_tri+0xd90>
movss  -0x8c(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1e90 <coplanar_tri_tri+0xd90>
movss  -0x70(%rbp),%xmm0
movss  -0x84(%rbp),%xmm2
ff
movss  -0x74(%rbp),%xmm1
mulss  -0x80(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
movss  -0x90(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    1e55 <coplanar_tri_tri+0xd55>
movss  -0x88(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1e50 <coplanar_tri_tri+0xd50>
movss  -0x88(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     1e50 <coplanar_tri_tri+0xd50>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    1e8b <coplanar_tri_tri+0xd8b>
xorps  %xmm0,%xmm0
ucomiss -0x88(%rbp),%xmm0
jb     1e86 <coplanar_tri_tri+0xd86>
movss  -0x88(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1e86 <coplanar_tri_tri+0xd86>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    1e8b <coplanar_tri_tri+0xd8b>
jmp    1e90 <coplanar_tri_tri+0xd90>
mov    -0x18(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x94(%rbp)
ff
mov    -0x18(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x98(%rbp)
ff
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xa0(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xa4(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xa8(%rbp)
ff
movss  -0x98(%rbp),%xmm0
ff
movss  -0x9c(%rbp),%xmm2
ff
movss  -0x94(%rbp),%xmm1
ff
mulss  -0xa0(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xb4(%rbp)
ff
movss  -0xa0(%rbp),%xmm0
ff
movss  -0xa4(%rbp),%xmm2
ff
movss  -0x9c(%rbp),%xmm1
ff
mulss  -0xa8(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xb0(%rbp)
ff
movss  -0xb4(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    2023 <coplanar_tri_tri+0xf23>
movss  -0xb0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     2023 <coplanar_tri_tri+0xf23>
movss  -0xb0(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    2058 <coplanar_tri_tri+0xf58>
xorps  %xmm0,%xmm0
ucomiss -0xb4(%rbp),%xmm0
jbe    2122 <coplanar_tri_tri+0x1022>
xorps  %xmm0,%xmm0
ucomiss -0xb0(%rbp),%xmm0
jb     2122 <coplanar_tri_tri+0x1022>
movss  -0xb0(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     2122 <coplanar_tri_tri+0x1022>
movss  -0x94(%rbp),%xmm0
ff
movss  -0xa8(%rbp),%xmm2
ff
movss  -0x98(%rbp),%xmm1
ff
mulss  -0xa4(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xac(%rbp)
ff
movss  -0xb4(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    20e7 <coplanar_tri_tri+0xfe7>
movss  -0xac(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     20e2 <coplanar_tri_tri+0xfe2>
movss  -0xac(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     20e2 <coplanar_tri_tri+0xfe2>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    211d <coplanar_tri_tri+0x101d>
xorps  %xmm0,%xmm0
ucomiss -0xac(%rbp),%xmm0
jb     2118 <coplanar_tri_tri+0x1018>
movss  -0xac(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     2118 <coplanar_tri_tri+0x1018>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    211d <coplanar_tri_tri+0x101d>
jmp    2122 <coplanar_tri_tri+0x1022>
mov    -0x38(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
mov    -0x38(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xa0(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xa4(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xa8(%rbp)
ff
movss  -0x98(%rbp),%xmm0
ff
movss  -0x9c(%rbp),%xmm2
ff
movss  -0x94(%rbp),%xmm1
ff
mulss  -0xa0(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xb4(%rbp)
ff
movss  -0xa0(%rbp),%xmm0
ff
movss  -0xa4(%rbp),%xmm2
ff
movss  -0x9c(%rbp),%xmm1
ff
mulss  -0xa8(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xb0(%rbp)
ff
movss  -0xb4(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    226d <coplanar_tri_tri+0x116d>
movss  -0xb0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     226d <coplanar_tri_tri+0x116d>
movss  -0xb0(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    22a2 <coplanar_tri_tri+0x11a2>
xorps  %xmm0,%xmm0
ucomiss -0xb4(%rbp),%xmm0
jbe    236c <coplanar_tri_tri+0x126c>
xorps  %xmm0,%xmm0
ucomiss -0xb0(%rbp),%xmm0
jb     236c <coplanar_tri_tri+0x126c>
movss  -0xb0(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     236c <coplanar_tri_tri+0x126c>
movss  -0x94(%rbp),%xmm0
ff
movss  -0xa8(%rbp),%xmm2
ff
movss  -0x98(%rbp),%xmm1
ff
mulss  -0xa4(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xac(%rbp)
ff
movss  -0xb4(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    2331 <coplanar_tri_tri+0x1231>
movss  -0xac(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     232c <coplanar_tri_tri+0x122c>
movss  -0xac(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     232c <coplanar_tri_tri+0x122c>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    2367 <coplanar_tri_tri+0x1267>
xorps  %xmm0,%xmm0
ucomiss -0xac(%rbp),%xmm0
jb     2362 <coplanar_tri_tri+0x1262>
movss  -0xac(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     2362 <coplanar_tri_tri+0x1262>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    2367 <coplanar_tri_tri+0x1267>
jmp    236c <coplanar_tri_tri+0x126c>
mov    0x10(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
mov    0x10(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xa0(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xa4(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xa8(%rbp)
ff
movss  -0x98(%rbp),%xmm0
ff
movss  -0x9c(%rbp),%xmm2
ff
movss  -0x94(%rbp),%xmm1
ff
mulss  -0xa0(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xb4(%rbp)
ff
movss  -0xa0(%rbp),%xmm0
ff
movss  -0xa4(%rbp),%xmm2
ff
movss  -0x9c(%rbp),%xmm1
ff
mulss  -0xa8(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xb0(%rbp)
ff
movss  -0xb4(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    24b7 <coplanar_tri_tri+0x13b7>
movss  -0xb0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     24b7 <coplanar_tri_tri+0x13b7>
movss  -0xb0(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    24ec <coplanar_tri_tri+0x13ec>
xorps  %xmm0,%xmm0
ucomiss -0xb4(%rbp),%xmm0
jbe    25b6 <coplanar_tri_tri+0x14b6>
xorps  %xmm0,%xmm0
ucomiss -0xb0(%rbp),%xmm0
jb     25b6 <coplanar_tri_tri+0x14b6>
movss  -0xb0(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     25b6 <coplanar_tri_tri+0x14b6>
movss  -0x94(%rbp),%xmm0
ff
movss  -0xa8(%rbp),%xmm2
ff
movss  -0x98(%rbp),%xmm1
ff
mulss  -0xa4(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xac(%rbp)
ff
movss  -0xb4(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    257b <coplanar_tri_tri+0x147b>
movss  -0xac(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     2576 <coplanar_tri_tri+0x1476>
movss  -0xac(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     2576 <coplanar_tri_tri+0x1476>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    25b1 <coplanar_tri_tri+0x14b1>
xorps  %xmm0,%xmm0
ucomiss -0xac(%rbp),%xmm0
jb     25ac <coplanar_tri_tri+0x14ac>
movss  -0xac(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     25ac <coplanar_tri_tri+0x14ac>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    25b1 <coplanar_tri_tri+0x14b1>
jmp    25b6 <coplanar_tri_tri+0x14b6>
mov    -0x38(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xb8(%rbp)
ff
mov    -0x38(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0xbc(%rbp)
ff
movss  -0xb8(%rbp),%xmm0
ff
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm2
movss  -0xbc(%rbp),%xmm1
ff
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
mulss  (%rax,%rcx,4),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xc0(%rbp)
ff
movss  -0xb8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm2
movss  -0xbc(%rbp),%xmm1
ff
mov    -0x18(%rbp),%rax
movswq -0x48(%rbp),%rcx
mulss  (%rax,%rcx,4),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  -0xc0(%rbp),%xmm0
ff
movss  %xmm0,-0xc4(%rbp)
ff
mov    0x10(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xb8(%rbp)
ff
mov    0x10(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0xbc(%rbp)
ff
movss  -0xb8(%rbp),%xmm0
ff
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mov    -0x38(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm2
movss  -0xbc(%rbp),%xmm1
ff
mov    -0x38(%rbp),%rax
movswq -0x48(%rbp),%rcx
mulss  (%rax,%rcx,4),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xc0(%rbp)
ff
movss  -0xb8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm2
movss  -0xbc(%rbp),%xmm1
ff
mov    -0x18(%rbp),%rax
movswq -0x48(%rbp),%rcx
mulss  (%rax,%rcx,4),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  -0xc0(%rbp),%xmm0
ff
movss  %xmm0,-0xc8(%rbp)
ff
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xb8(%rbp)
ff
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0xbc(%rbp)
ff
movss  -0xb8(%rbp),%xmm0
ff
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mov    0x10(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm2
movss  -0xbc(%rbp),%xmm1
ff
mov    0x10(%rbp),%rax
movswq -0x48(%rbp),%rcx
mulss  (%rax,%rcx,4),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xc0(%rbp)
ff
movss  -0xb8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm2
movss  -0xbc(%rbp),%xmm1
ff
mov    -0x18(%rbp),%rax
movswq -0x48(%rbp),%rcx
mulss  (%rax,%rcx,4),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  -0xc0(%rbp),%xmm0
ff
movss  %xmm0,-0xcc(%rbp)
ff
movss  -0xc4(%rbp),%xmm0
ff
mulss  -0xc8(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    28d6 <coplanar_tri_tri+0x17d6>
movss  -0xc4(%rbp),%xmm0
ff
mulss  -0xcc(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    28d1 <coplanar_tri_tri+0x17d1>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    28d6 <coplanar_tri_tri+0x17d6>
mov    -0x20(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x18(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xd0(%rbp)
ff
mov    -0x20(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x18(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0xd4(%rbp)
ff
movss  -0xd0(%rbp),%xmm0
ff
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mov    -0x18(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm2
movss  -0xd4(%rbp),%xmm1
ff
mov    -0x18(%rbp),%rax
movswq -0x48(%rbp),%rcx
mulss  (%rax,%rcx,4),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xd8(%rbp)
ff
movss  -0xd0(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm2
movss  -0xd4(%rbp),%xmm1
ff
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
mulss  (%rax,%rcx,4),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  -0xd8(%rbp),%xmm0
ff
movss  %xmm0,-0xdc(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xd0(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0xd4(%rbp)
ff
movss  -0xd0(%rbp),%xmm0
ff
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mov    -0x20(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm2
movss  -0xd4(%rbp),%xmm1
ff
mov    -0x20(%rbp),%rax
movswq -0x48(%rbp),%rcx
mulss  (%rax,%rcx,4),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xd8(%rbp)
ff
movss  -0xd0(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm2
movss  -0xd4(%rbp),%xmm1
ff
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
mulss  (%rax,%rcx,4),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  -0xd8(%rbp),%xmm0
ff
movss  %xmm0,-0xe0(%rbp)
ff
mov    -0x18(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xd0(%rbp)
ff
mov    -0x18(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0xd4(%rbp)
ff
movss  -0xd0(%rbp),%xmm0
ff
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mov    -0x28(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm2
movss  -0xd4(%rbp),%xmm1
ff
mov    -0x28(%rbp),%rax
movswq -0x48(%rbp),%rcx
mulss  (%rax,%rcx,4),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xd8(%rbp)
ff
movss  -0xd0(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm2
movss  -0xd4(%rbp),%xmm1
ff
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
mulss  (%rax,%rcx,4),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  -0xd8(%rbp),%xmm0
ff
movss  %xmm0,-0xe4(%rbp)
ff
movss  -0xdc(%rbp),%xmm0
ff
mulss  -0xe0(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2bf6 <coplanar_tri_tri+0x1af6>
movss  -0xdc(%rbp),%xmm0
ff
mulss  -0xe4(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2bf1 <coplanar_tri_tri+0x1af1>
movl   $0x1,-0x4(%rbp)
jmp    2bfd <coplanar_tri_tri+0x1afd>
jmp    2bf6 <coplanar_tri_tri+0x1af6>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x68,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<coplanar_tri_tri>:
sub    $0xc8,%rsp
movq   (%rdi),%xmm0
movdqa 0xeed(%rip),%xmm2
pand   %xmm2,%xmm0
movd   0x8(%rdi),%xmm1
pand   %xmm2,%xmm1
pshufd $0x55,%xmm0,%xmm2
ucomiss %xmm2,%xmm0
jbe    1139 <coplanar_tri_tri+0x39>
xor    %edi,%edi
ucomiss %xmm1,%xmm0
seta   %dil
lea    0x1(%rdi),%r10
jmp    114c <coplanar_tri_tri+0x4c>
xor    %eax,%eax
ucomiss %xmm2,%xmm1
seta   %al
mov    $0x2,%r10d
sub    %rax,%r10
xor    %edi,%edi
movss  (%rdx,%rdi,4),%xmm12
movss  (%rsi,%rdi,4),%xmm10
movaps %xmm12,0x30(%rsp)
subss  %xmm10,%xmm12
movss  (%rdx,%r10,4),%xmm13
movss  (%rsi,%r10,4),%xmm14
movaps %xmm13,0x20(%rsp)
subss  %xmm14,%xmm13
movss  (%r8,%rdi,4),%xmm2
movss  (%r9,%rdi,4),%xmm1
movaps %xmm2,%xmm0
movaps %xmm1,0x40(%rsp)
subss  %xmm1,%xmm0
movss  (%r8,%r10,4),%xmm3
movss  (%r9,%r10,4),%xmm4
movaps %xmm3,%xmm8
subss  %xmm4,%xmm8
movaps %xmm10,%xmm5
movaps %xmm2,-0x70(%rsp)
subss  %xmm2,%xmm5
movaps %xmm14,%xmm2
movaps %xmm3,-0x80(%rsp)
subss  %xmm3,%xmm2
movaps %xmm8,%xmm6
mulss  %xmm12,%xmm6
movaps %xmm13,%xmm3
mulss  %xmm0,%xmm3
subss  %xmm6,%xmm3
movaps %xmm2,%xmm7
mulss  %xmm0,%xmm7
movaps %xmm8,%xmm6
mulss  %xmm5,%xmm6
subss  %xmm7,%xmm6
xorps  %xmm7,%xmm7
ucomiss %xmm7,%xmm3
jbe    11fb <coplanar_tri_tri+0xfb>
ucomiss %xmm7,%xmm6
jb     11fb <coplanar_tri_tri+0xfb>
ucomiss %xmm6,%xmm3
jae    120d <coplanar_tri_tri+0x10d>
ucomiss %xmm3,%xmm7
jbe    1249 <coplanar_tri_tri+0x149>
xorps  %xmm7,%xmm7
ucomiss %xmm6,%xmm7
jb     1249 <coplanar_tri_tri+0x149>
ucomiss %xmm3,%xmm6
jb     1249 <coplanar_tri_tri+0x149>
xorps  %xmm6,%xmm6
ucomiss %xmm6,%xmm3
mulss  %xmm13,%xmm5
mulss  %xmm12,%xmm2
subss  %xmm5,%xmm2
jbe    123a <coplanar_tri_tri+0x13a>
ucomiss %xmm6,%xmm2
jb     1249 <coplanar_tri_tri+0x149>
mov    $0x1,%eax
ucomiss %xmm2,%xmm3
jb     1249 <coplanar_tri_tri+0x149>
add    $0xc8,%rsp
ret
ucomiss %xmm2,%xmm6
jb     1249 <coplanar_tri_tri+0x149>
mov    $0x1,%eax
ucomiss %xmm3,%xmm2
jae    1232 <coplanar_tri_tri+0x132>
mov    0xd0(%rsp),%rax
movaps %xmm12,%xmm6
xorps  0xdb4(%rip),%xmm6
movss  (%rax,%rdi,4),%xmm2
movaps 0x40(%rsp),%xmm1
movaps %xmm1,%xmm11
movaps %xmm2,-0x30(%rsp)
subss  %xmm2,%xmm11
movss  (%rax,%r10,4),%xmm2
movaps %xmm4,%xmm15
movaps %xmm2,-0x40(%rsp)
subss  %xmm2,%xmm15
movaps %xmm10,%xmm5
subss  %xmm1,%xmm5
movaps %xmm14,%xmm3
subss  %xmm4,%xmm3
movaps %xmm15,%xmm2
movaps %xmm6,0x90(%rsp)
mulss  %xmm6,%xmm2
movaps %xmm13,%xmm6
mulss  %xmm11,%xmm6
addss  %xmm2,%xmm6
movaps %xmm3,%xmm7
mulss  %xmm11,%xmm7
movaps %xmm15,%xmm2
mulss  %xmm5,%xmm2
subss  %xmm7,%xmm2
xorps  %xmm7,%xmm7
ucomiss %xmm7,%xmm6
jbe    12db <coplanar_tri_tri+0x1db>
ucomiss %xmm7,%xmm2
jb     12db <coplanar_tri_tri+0x1db>
ucomiss %xmm2,%xmm6
jae    12ed <coplanar_tri_tri+0x1ed>
ucomiss %xmm6,%xmm7
jbe    132b <coplanar_tri_tri+0x22b>
xorps  %xmm7,%xmm7
ucomiss %xmm2,%xmm7
jb     132b <coplanar_tri_tri+0x22b>
ucomiss %xmm6,%xmm2
jb     132b <coplanar_tri_tri+0x22b>
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm6
mulss  %xmm13,%xmm5
mulss  %xmm12,%xmm3
subss  %xmm5,%xmm3
jbe    1318 <coplanar_tri_tri+0x218>
ucomiss %xmm2,%xmm3
jb     132b <coplanar_tri_tri+0x22b>
mov    $0x1,%eax
ucomiss %xmm3,%xmm6
jae    1232 <coplanar_tri_tri+0x132>
jmp    132b <coplanar_tri_tri+0x22b>
ucomiss %xmm3,%xmm2
jb     132b <coplanar_tri_tri+0x22b>
mov    $0x1,%eax
ucomiss %xmm6,%xmm3
jae    1232 <coplanar_tri_tri+0x132>
movaps -0x30(%rsp),%xmm3
movaps %xmm3,%xmm1
subss  -0x70(%rsp),%xmm1
movaps -0x40(%rsp),%xmm6
movaps %xmm6,%xmm2
subss  -0x80(%rsp),%xmm2
movaps %xmm10,%xmm5
subss  %xmm3,%xmm5
movaps %xmm14,%xmm3
subss  %xmm6,%xmm3
movaps %xmm2,%xmm7
mulss  0x90(%rsp),%xmm7
movaps %xmm13,%xmm6
mulss  %xmm1,%xmm6
addss  %xmm7,%xmm6
movaps %xmm3,%xmm7
movaps %xmm1,0x80(%rsp)
mulss  %xmm1,%xmm7
movaps %xmm2,0x70(%rsp)
mulss  %xmm5,%xmm2
subss  %xmm7,%xmm2
xorps  %xmm7,%xmm7
ucomiss %xmm7,%xmm6
jbe    139d <coplanar_tri_tri+0x29d>
ucomiss %xmm7,%xmm2
jb     139d <coplanar_tri_tri+0x29d>
ucomiss %xmm2,%xmm6
jae    13af <coplanar_tri_tri+0x2af>
ucomiss %xmm6,%xmm7
jbe    13ed <coplanar_tri_tri+0x2ed>
xorps  %xmm7,%xmm7
ucomiss %xmm2,%xmm7
jb     13ed <coplanar_tri_tri+0x2ed>
ucomiss %xmm6,%xmm2
jb     13ed <coplanar_tri_tri+0x2ed>
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm6
mulss  %xmm13,%xmm5
mulss  %xmm12,%xmm3
subss  %xmm5,%xmm3
jbe    13da <coplanar_tri_tri+0x2da>
ucomiss %xmm2,%xmm3
jb     13ed <coplanar_tri_tri+0x2ed>
mov    $0x1,%eax
ucomiss %xmm3,%xmm6
jae    1232 <coplanar_tri_tri+0x132>
jmp    13ed <coplanar_tri_tri+0x2ed>
ucomiss %xmm3,%xmm2
jb     13ed <coplanar_tri_tri+0x2ed>
mov    $0x1,%eax
ucomiss %xmm6,%xmm3
jae    1232 <coplanar_tri_tri+0x132>
movaps %xmm0,%xmm9
xorps  0xc17(%rip),%xmm9
movss  (%rcx,%rdi,4),%xmm2
movaps %xmm2,(%rsp)
movaps %xmm2,%xmm7
movaps 0x30(%rsp),%xmm6
subss  %xmm6,%xmm7
movss  (%rcx,%r10,4),%xmm2
movaps %xmm2,-0x10(%rsp)
movaps %xmm4,%xmm1
movaps %xmm2,%xmm4
movaps 0x20(%rsp),%xmm3
subss  %xmm3,%xmm4
subss  -0x70(%rsp),%xmm6
subss  -0x80(%rsp),%xmm3
movaps 0xbd5(%rip),%xmm5
movaps %xmm7,0x10(%rsp)
xorps  %xmm7,%xmm5
movaps %xmm3,%xmm2
unpcklps %xmm8,%xmm2
movaps %xmm9,%xmm7
movaps %xmm5,0x60(%rsp)
unpcklps %xmm5,%xmm7
mulps  %xmm2,%xmm7
movaps %xmm8,%xmm2
movaps %xmm4,-0x50(%rsp)
unpcklps %xmm4,%xmm2
movaps %xmm1,%xmm4
movaps %xmm6,%xmm5
unpcklps %xmm0,%xmm5
mulps  %xmm2,%xmm5
addps  %xmm7,%xmm5
movaps %xmm5,%xmm2
shufps $0x55,%xmm5,%xmm2
xorps  %xmm7,%xmm7
ucomiss %xmm7,%xmm2
jbe    148d <coplanar_tri_tri+0x38d>
ucomiss %xmm7,%xmm5
jb     148d <coplanar_tri_tri+0x38d>
ucomiss %xmm5,%xmm2
jae    149f <coplanar_tri_tri+0x39f>
ucomiss %xmm2,%xmm7
jbe    14df <coplanar_tri_tri+0x3df>
xorps  %xmm7,%xmm7
ucomiss %xmm5,%xmm7
jb     14df <coplanar_tri_tri+0x3df>
ucomiss %xmm2,%xmm5
jb     14df <coplanar_tri_tri+0x3df>
xorps  %xmm5,%xmm5
ucomiss %xmm5,%xmm2
mulss  -0x50(%rsp),%xmm6
mulss  0x10(%rsp),%xmm3
subss  %xmm6,%xmm3
jbe    14cc <coplanar_tri_tri+0x3cc>
ucomiss %xmm5,%xmm3
jb     14df <coplanar_tri_tri+0x3df>
mov    $0x1,%eax
ucomiss %xmm3,%xmm2
jae    1232 <coplanar_tri_tri+0x132>
jmp    14df <coplanar_tri_tri+0x3df>
ucomiss %xmm3,%xmm5
jb     14df <coplanar_tri_tri+0x3df>
mov    $0x1,%eax
ucomiss %xmm2,%xmm3
jae    1232 <coplanar_tri_tri+0x132>
movaps 0xb2a(%rip),%xmm5
xorps  %xmm11,%xmm5
movaps 0x30(%rsp),%xmm6
subss  0x40(%rsp),%xmm6
movaps 0x20(%rsp),%xmm3
subss  %xmm4,%xmm3
movaps %xmm3,%xmm2
unpcklps %xmm15,%xmm2
movaps %xmm5,0xb0(%rsp)
unpcklps 0x60(%rsp),%xmm5
mulps  %xmm2,%xmm5
movaps %xmm15,%xmm7
unpcklps -0x50(%rsp),%xmm7
movaps %xmm6,%xmm2
unpcklps %xmm11,%xmm2
mulps  %xmm7,%xmm2
addps  %xmm5,%xmm2
movaps %xmm2,%xmm5
shufps $0x55,%xmm2,%xmm5
xorps  %xmm7,%xmm7
ucomiss %xmm7,%xmm5
jbe    1544 <coplanar_tri_tri+0x444>
ucomiss %xmm7,%xmm2
jb     1544 <coplanar_tri_tri+0x444>
ucomiss %xmm2,%xmm5
jae    1556 <coplanar_tri_tri+0x456>
ucomiss %xmm5,%xmm7
jbe    1596 <coplanar_tri_tri+0x496>
xorps  %xmm7,%xmm7
ucomiss %xmm2,%xmm7
jb     1596 <coplanar_tri_tri+0x496>
ucomiss %xmm5,%xmm2
jb     1596 <coplanar_tri_tri+0x496>
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm5
mulss  -0x50(%rsp),%xmm6
mulss  0x10(%rsp),%xmm3
subss  %xmm6,%xmm3
jbe    1583 <coplanar_tri_tri+0x483>
ucomiss %xmm2,%xmm3
jb     1596 <coplanar_tri_tri+0x496>
mov    $0x1,%eax
ucomiss %xmm3,%xmm5
jae    1232 <coplanar_tri_tri+0x132>
jmp    1596 <coplanar_tri_tri+0x496>
ucomiss %xmm3,%xmm2
jb     1596 <coplanar_tri_tri+0x496>
mov    $0x1,%eax
ucomiss %xmm5,%xmm3
jae    1232 <coplanar_tri_tri+0x132>
movaps 0xa73(%rip),%xmm5
movaps 0x80(%rsp),%xmm1
xorps  %xmm1,%xmm5
movaps 0x30(%rsp),%xmm6
subss  -0x30(%rsp),%xmm6
movaps 0x20(%rsp),%xmm3
subss  -0x40(%rsp),%xmm3
movaps %xmm3,%xmm2
movaps 0x70(%rsp),%xmm7
unpcklps %xmm7,%xmm2
movaps %xmm5,0xa0(%rsp)
unpcklps 0x60(%rsp),%xmm5
mulps  %xmm2,%xmm5
unpcklps -0x50(%rsp),%xmm7
movaps %xmm6,%xmm2
unpcklps %xmm1,%xmm2
mulps  %xmm7,%xmm2
addps  %xmm5,%xmm2
movaps %xmm2,%xmm5
shufps $0x55,%xmm2,%xmm5
xorps  %xmm7,%xmm7
ucomiss %xmm7,%xmm5
jbe    1603 <coplanar_tri_tri+0x503>
ucomiss %xmm7,%xmm2
jb     1603 <coplanar_tri_tri+0x503>
ucomiss %xmm2,%xmm5
jae    1615 <coplanar_tri_tri+0x515>
ucomiss %xmm5,%xmm7
jbe    1655 <coplanar_tri_tri+0x555>
xorps  %xmm7,%xmm7
ucomiss %xmm2,%xmm7
jb     1655 <coplanar_tri_tri+0x555>
ucomiss %xmm5,%xmm2
jb     1655 <coplanar_tri_tri+0x555>
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm5
mulss  -0x50(%rsp),%xmm6
mulss  0x10(%rsp),%xmm3
subss  %xmm6,%xmm3
jbe    1642 <coplanar_tri_tri+0x542>
ucomiss %xmm2,%xmm3
jb     1655 <coplanar_tri_tri+0x555>
mov    $0x1,%eax
ucomiss %xmm3,%xmm5
jae    1232 <coplanar_tri_tri+0x132>
jmp    1655 <coplanar_tri_tri+0x555>
ucomiss %xmm3,%xmm2
jb     1655 <coplanar_tri_tri+0x555>
mov    $0x1,%eax
ucomiss %xmm5,%xmm3
jae    1232 <coplanar_tri_tri+0x132>
movaps %xmm8,%xmm2
shufps $0x0,%xmm8,%xmm2
shufps $0x0,%xmm0,%xmm0
movaps %xmm10,%xmm1
movaps (%rsp),%xmm3
subss  %xmm3,%xmm1
movaps %xmm14,%xmm6
movaps %xmm9,%xmm7
movaps -0x10(%rsp),%xmm9
subss  %xmm9,%xmm6
subss  -0x70(%rsp),%xmm3
subss  -0x80(%rsp),%xmm9
movaps 0x97b(%rip),%xmm5
movaps %xmm1,-0x20(%rsp)
xorps  %xmm1,%xmm5
movss  %xmm9,%xmm2
movaps %xmm5,0x50(%rsp)
movlhps %xmm7,%xmm5
shufps $0xe2,%xmm7,%xmm5
mulps  %xmm2,%xmm5
movaps %xmm6,-0x60(%rsp)
movaps %xmm6,%xmm2
movlhps %xmm8,%xmm2
shufps $0xe2,%xmm8,%xmm2
movss  %xmm3,%xmm0
mulps  %xmm2,%xmm0
addps  %xmm5,%xmm0
movaps %xmm0,%xmm1
shufps $0x55,%xmm0,%xmm1
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm1
jbe    16e5 <coplanar_tri_tri+0x5e5>
ucomiss %xmm2,%xmm0
jb     16e5 <coplanar_tri_tri+0x5e5>
ucomiss %xmm0,%xmm1
jae    16f7 <coplanar_tri_tri+0x5f7>
ucomiss %xmm1,%xmm2
jbe    173d <coplanar_tri_tri+0x63d>
xorps  %xmm2,%xmm2
ucomiss %xmm0,%xmm2
jb     173d <coplanar_tri_tri+0x63d>
ucomiss %xmm1,%xmm0
jb     173d <coplanar_tri_tri+0x63d>
xorps  %xmm0,%xmm0
ucomiss %xmm0,%xmm1
mulss  -0x60(%rsp),%xmm3
mulss  -0x20(%rsp),%xmm9
subss  %xmm3,%xmm9
jbe    1728 <coplanar_tri_tri+0x628>
ucomiss %xmm0,%xmm9
jb     173d <coplanar_tri_tri+0x63d>
mov    $0x1,%eax
ucomiss %xmm9,%xmm1
jae    1232 <coplanar_tri_tri+0x132>
jmp    173d <coplanar_tri_tri+0x63d>
ucomiss %xmm9,%xmm0
jb     173d <coplanar_tri_tri+0x63d>
mov    $0x1,%eax
ucomiss %xmm1,%xmm9
jae    1232 <coplanar_tri_tri+0x132>
movaps %xmm15,%xmm2
shufps $0x0,%xmm15,%xmm2
shufps $0x0,%xmm11,%xmm11
movaps (%rsp),%xmm1
subss  0x40(%rsp),%xmm1
movaps -0x10(%rsp),%xmm0
subss  %xmm4,%xmm0
movss  %xmm0,%xmm2
movaps 0x50(%rsp),%xmm3
movaps 0xb0(%rsp),%xmm5
movlhps %xmm5,%xmm3
shufps $0xe2,%xmm5,%xmm3
mulps  %xmm2,%xmm3
movaps -0x60(%rsp),%xmm2
movlhps %xmm15,%xmm2
shufps $0xe2,%xmm15,%xmm2
movss  %xmm1,%xmm11
mulps  %xmm2,%xmm11
addps  %xmm3,%xmm11
movaps %xmm11,%xmm2
shufps $0x55,%xmm11,%xmm2
xorps  %xmm3,%xmm3
ucomiss %xmm3,%xmm2
jbe    17b1 <coplanar_tri_tri+0x6b1>
ucomiss %xmm3,%xmm11
jb     17b1 <coplanar_tri_tri+0x6b1>
ucomiss %xmm11,%xmm2
jae    17c5 <coplanar_tri_tri+0x6c5>
ucomiss %xmm2,%xmm3
jbe    1805 <coplanar_tri_tri+0x705>
xorps  %xmm3,%xmm3
ucomiss %xmm11,%xmm3
jb     1805 <coplanar_tri_tri+0x705>
ucomiss %xmm2,%xmm11
jb     1805 <coplanar_tri_tri+0x705>
xorps  %xmm3,%xmm3
ucomiss %xmm3,%xmm2
mulss  -0x60(%rsp),%xmm1
mulss  -0x20(%rsp),%xmm0
subss  %xmm1,%xmm0
jbe    17f2 <coplanar_tri_tri+0x6f2>
ucomiss %xmm3,%xmm0
jb     1805 <coplanar_tri_tri+0x705>
mov    $0x1,%eax
ucomiss %xmm0,%xmm2
jae    1232 <coplanar_tri_tri+0x132>
jmp    1805 <coplanar_tri_tri+0x705>
ucomiss %xmm0,%xmm3
jb     1805 <coplanar_tri_tri+0x705>
mov    $0x1,%eax
ucomiss %xmm2,%xmm0
jae    1232 <coplanar_tri_tri+0x132>
movaps 0x70(%rsp),%xmm6
movaps %xmm6,%xmm2
shufps $0x0,%xmm6,%xmm2
movaps 0x80(%rsp),%xmm5
shufps $0x0,%xmm5,%xmm5
movaps (%rsp),%xmm1
subss  -0x30(%rsp),%xmm1
movaps -0x10(%rsp),%xmm0
subss  -0x40(%rsp),%xmm0
movss  %xmm0,%xmm2
movaps 0x50(%rsp),%xmm3
movaps %xmm4,%xmm7
movaps 0xa0(%rsp),%xmm4
movlhps %xmm4,%xmm3
shufps $0xe2,%xmm4,%xmm3
movaps %xmm7,%xmm4
mulps  %xmm2,%xmm3
movaps -0x60(%rsp),%xmm2
movlhps %xmm6,%xmm2
shufps $0xe2,%xmm6,%xmm2
movss  %xmm1,%xmm5
mulps  %xmm2,%xmm5
addps  %xmm3,%xmm5
movaps %xmm5,%xmm6
movaps %xmm5,%xmm2
shufps $0x55,%xmm5,%xmm2
xorps  %xmm3,%xmm3
ucomiss %xmm3,%xmm2
jbe    1885 <coplanar_tri_tri+0x785>
ucomiss %xmm3,%xmm6
jb     1885 <coplanar_tri_tri+0x785>
ucomiss %xmm6,%xmm2
jae    1897 <coplanar_tri_tri+0x797>
ucomiss %xmm2,%xmm3
jbe    18d7 <coplanar_tri_tri+0x7d7>
xorps  %xmm3,%xmm3
ucomiss %xmm6,%xmm3
jb     18d7 <coplanar_tri_tri+0x7d7>
ucomiss %xmm2,%xmm6
jb     18d7 <coplanar_tri_tri+0x7d7>
xorps  %xmm3,%xmm3
ucomiss %xmm3,%xmm2
mulss  -0x60(%rsp),%xmm1
mulss  -0x20(%rsp),%xmm0
subss  %xmm1,%xmm0
jbe    18c4 <coplanar_tri_tri+0x7c4>
ucomiss %xmm3,%xmm0
jb     18d7 <coplanar_tri_tri+0x7d7>
mov    $0x1,%eax
ucomiss %xmm0,%xmm2
jae    1232 <coplanar_tri_tri+0x132>
jmp    18d7 <coplanar_tri_tri+0x7d7>
ucomiss %xmm0,%xmm3
jb     18d7 <coplanar_tri_tri+0x7d7>
mov    $0x1,%eax
ucomiss %xmm2,%xmm0
jae    1232 <coplanar_tri_tri+0x132>
movaps -0x80(%rsp),%xmm0
unpcklps %xmm4,%xmm0
unpcklps -0x40(%rsp),%xmm4
subps  %xmm0,%xmm4
movaps -0x70(%rsp),%xmm1
movaps 0x40(%rsp),%xmm3
unpcklps %xmm3,%xmm1
unpcklps -0x30(%rsp),%xmm3
subps  %xmm1,%xmm3
mulps  %xmm3,%xmm0
mulps  %xmm4,%xmm1
subps  %xmm1,%xmm0
movaps %xmm14,%xmm2
shufps $0x0,%xmm14,%xmm2
mulps  %xmm3,%xmm2
movaps %xmm10,%xmm1
shufps $0x0,%xmm10,%xmm1
mulps  %xmm4,%xmm1
subps  %xmm2,%xmm1
addps  %xmm0,%xmm1
movaps %xmm1,%xmm2
shufps $0x55,%xmm1,%xmm2
mulss  %xmm1,%xmm2
xorps  %xmm8,%xmm8
ucomiss %xmm8,%xmm2
jbe    19a9 <coplanar_tri_tri+0x8a9>
movaps -0x80(%rsp),%xmm2
movaps -0x40(%rsp),%xmm7
subss  %xmm7,%xmm2
movaps -0x70(%rsp),%xmm3
movaps -0x30(%rsp),%xmm0
subss  %xmm0,%xmm3
movaps %xmm3,%xmm5
movaps 0x6b1(%rip),%xmm9
xorps  %xmm9,%xmm5
movaps %xmm2,%xmm6
xorps  %xmm9,%xmm6
movlhps %xmm14,%xmm7
shufps $0xe2,%xmm14,%xmm7
unpcklps %xmm3,%xmm5
mulps  %xmm7,%xmm5
unpcklps %xmm6,%xmm2
movlhps %xmm10,%xmm0
shufps $0xe2,%xmm10,%xmm0
mulps  %xmm2,%xmm0
addps  %xmm5,%xmm0
movaps %xmm0,%xmm2
shufps $0x55,%xmm0,%xmm2
addss  %xmm0,%xmm2
mulss  %xmm2,%xmm1
mov    $0x1,%eax
ucomiss %xmm8,%xmm1
ja     1232 <coplanar_tri_tri+0x132>
movaps %xmm13,%xmm2
movaps 0x65c(%rip),%xmm5
xorps  %xmm5,%xmm2
movaps -0x50(%rsp),%xmm4
xorps  %xmm4,%xmm5
movaps -0x80(%rsp),%xmm3
movaps 0x20(%rsp),%xmm1
movlhps %xmm3,%xmm1
shufps $0xe2,%xmm3,%xmm1
movaps 0x90(%rsp),%xmm6
unpcklps 0x10(%rsp),%xmm6
mulps  %xmm1,%xmm6
unpcklps %xmm5,%xmm13
movaps -0x70(%rsp),%xmm1
movaps 0x30(%rsp),%xmm5
movlhps %xmm1,%xmm5
shufps $0xe2,%xmm1,%xmm5
mulps  %xmm13,%xmm5
addps  %xmm6,%xmm5
unpcklps %xmm3,%xmm12
movaps 0x60(%rsp),%xmm0
movlhps %xmm14,%xmm0
shufps $0xe2,%xmm14,%xmm0
mulps  %xmm12,%xmm0
unpcklps %xmm4,%xmm2
movlhps %xmm10,%xmm1
shufps $0xe2,%xmm10,%xmm1
mulps  %xmm2,%xmm1
addps  %xmm0,%xmm1
addps  %xmm5,%xmm1
movaps %xmm1,%xmm2
shufps $0x55,%xmm1,%xmm2
mulss  %xmm1,%xmm2
ucomiss %xmm8,%xmm2
jbe    1a9e <coplanar_tri_tri+0x99e>
movaps 0x5d1(%rip),%xmm0
movaps -0x60(%rsp),%xmm5
xorps  %xmm5,%xmm0
movaps -0x80(%rsp),%xmm2
movaps -0x10(%rsp),%xmm3
movlhps %xmm2,%xmm3
shufps $0xe2,%xmm2,%xmm3
movaps 0x50(%rsp),%xmm4
unpcklps -0x20(%rsp),%xmm4
mulps  %xmm3,%xmm4
unpcklps %xmm0,%xmm5
movaps -0x70(%rsp),%xmm0
movaps (%rsp),%xmm2
movlhps %xmm0,%xmm2
shufps $0xe2,%xmm0,%xmm2
mulps  %xmm5,%xmm2
addps  %xmm4,%xmm2
movaps %xmm2,%xmm0
shufps $0x55,%xmm2,%xmm0
addss  %xmm2,%xmm0
mulss  %xmm0,%xmm1
mov    $0x1,%eax
xorps  %xmm0,%xmm0
ucomiss %xmm0,%xmm1
ja     1232 <coplanar_tri_tri+0x132>
xor    %eax,%eax
add    $0xc8,%rsp
ret

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

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