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


x86 assembly (clang, -O0):
<coplanar_tri_tri>:
push   %rbp
mov    %rsp,%rbp
sub    $0x70,%rsp
mov    0x10(%rbp),%rax
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    %rcx,-0x28(%rbp)
mov    %r8,-0x30(%rbp)
mov    %r9,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     114d <coplanar_tri_tri+0x4d>
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0xe8(%rbp)
ff
jmp    116a <coplanar_tri_tri+0x6a>
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0xe8(%rbp)
ff
movss  -0xe8(%rbp),%xmm0
ff
movss  %xmm0,-0x44(%rbp)
mov    -0x10(%rbp),%rax
movss  0x4(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     11a2 <coplanar_tri_tri+0xa2>
mov    -0x10(%rbp),%rax
movss  0x4(%rax),%xmm0
movss  %xmm0,-0xec(%rbp)
ff
jmp    11c0 <coplanar_tri_tri+0xc0>
mov    -0x10(%rbp),%rax
movss  0x4(%rax),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0xec(%rbp)
ff
movss  -0xec(%rbp),%xmm0
ff
movss  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movss  0x8(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     11f8 <coplanar_tri_tri+0xf8>
mov    -0x10(%rbp),%rax
movss  0x8(%rax),%xmm0
movss  %xmm0,-0xf0(%rbp)
ff
jmp    1216 <coplanar_tri_tri+0x116>
mov    -0x10(%rbp),%rax
movss  0x8(%rax),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0xf0(%rbp)
ff
movss  -0xf0(%rbp),%xmm0
ff
movss  %xmm0,-0x3c(%rbp)
movss  -0x44(%rbp),%xmm0
ucomiss -0x40(%rbp),%xmm0
jbe    1263 <coplanar_tri_tri+0x163>
movss  -0x44(%rbp),%xmm0
ucomiss -0x3c(%rbp),%xmm0
jbe    1252 <coplanar_tri_tri+0x152>
movw   $0x1,-0x46(%rbp)
movw   $0x2,-0x48(%rbp)
jmp    125e <coplanar_tri_tri+0x15e>
movw   $0x0,-0x46(%rbp)
movw   $0x1,-0x48(%rbp)
jmp    1294 <coplanar_tri_tri+0x194>
movss  -0x3c(%rbp),%xmm0
ucomiss -0x40(%rbp),%xmm0
jbe    1283 <coplanar_tri_tri+0x183>
movw   $0x0,-0x46(%rbp)
movw   $0x1,-0x48(%rbp)
jmp    128f <coplanar_tri_tri+0x18f>
movw   $0x0,-0x46(%rbp)
movw   $0x2,-0x48(%rbp)
jmp    1294 <coplanar_tri_tri+0x194>
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    13eb <coplanar_tri_tri+0x2eb>
movss  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     13eb <coplanar_tri_tri+0x2eb>
movss  -0x68(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jae    1414 <coplanar_tri_tri+0x314>
xorps  %xmm0,%xmm0
ucomiss -0x6c(%rbp),%xmm0
jbe    14ba <coplanar_tri_tri+0x3ba>
xorps  %xmm0,%xmm0
ucomiss -0x68(%rbp),%xmm0
jb     14ba <coplanar_tri_tri+0x3ba>
movss  -0x68(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     14ba <coplanar_tri_tri+0x3ba>
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    1488 <coplanar_tri_tri+0x388>
movss  -0x64(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1483 <coplanar_tri_tri+0x383>
movss  -0x64(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     1483 <coplanar_tri_tri+0x383>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    14b5 <coplanar_tri_tri+0x3b5>
xorps  %xmm0,%xmm0
ucomiss -0x64(%rbp),%xmm0
jb     14b0 <coplanar_tri_tri+0x3b0>
movss  -0x64(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     14b0 <coplanar_tri_tri+0x3b0>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    14b5 <coplanar_tri_tri+0x3b5>
jmp    14ba <coplanar_tri_tri+0x3ba>
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    15cf <coplanar_tri_tri+0x4cf>
movss  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     15cf <coplanar_tri_tri+0x4cf>
movss  -0x68(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jae    15f8 <coplanar_tri_tri+0x4f8>
xorps  %xmm0,%xmm0
ucomiss -0x6c(%rbp),%xmm0
jbe    169e <coplanar_tri_tri+0x59e>
xorps  %xmm0,%xmm0
ucomiss -0x68(%rbp),%xmm0
jb     169e <coplanar_tri_tri+0x59e>
movss  -0x68(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     169e <coplanar_tri_tri+0x59e>
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    166c <coplanar_tri_tri+0x56c>
movss  -0x64(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1667 <coplanar_tri_tri+0x567>
movss  -0x64(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     1667 <coplanar_tri_tri+0x567>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    1699 <coplanar_tri_tri+0x599>
xorps  %xmm0,%xmm0
ucomiss -0x64(%rbp),%xmm0
jb     1694 <coplanar_tri_tri+0x594>
movss  -0x64(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     1694 <coplanar_tri_tri+0x594>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    1699 <coplanar_tri_tri+0x599>
jmp    169e <coplanar_tri_tri+0x59e>
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    17b3 <coplanar_tri_tri+0x6b3>
movss  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     17b3 <coplanar_tri_tri+0x6b3>
movss  -0x68(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jae    17dc <coplanar_tri_tri+0x6dc>
xorps  %xmm0,%xmm0
ucomiss -0x6c(%rbp),%xmm0
jbe    1882 <coplanar_tri_tri+0x782>
xorps  %xmm0,%xmm0
ucomiss -0x68(%rbp),%xmm0
jb     1882 <coplanar_tri_tri+0x782>
movss  -0x68(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     1882 <coplanar_tri_tri+0x782>
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    1850 <coplanar_tri_tri+0x750>
movss  -0x64(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     184b <coplanar_tri_tri+0x74b>
movss  -0x64(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     184b <coplanar_tri_tri+0x74b>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    187d <coplanar_tri_tri+0x77d>
xorps  %xmm0,%xmm0
ucomiss -0x64(%rbp),%xmm0
jb     1878 <coplanar_tri_tri+0x778>
movss  -0x64(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     1878 <coplanar_tri_tri+0x778>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    187d <coplanar_tri_tri+0x77d>
jmp    1882 <coplanar_tri_tri+0x782>
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    19f1 <coplanar_tri_tri+0x8f1>
movss  -0x8c(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     19f1 <coplanar_tri_tri+0x8f1>
movss  -0x8c(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    1a26 <coplanar_tri_tri+0x926>
xorps  %xmm0,%xmm0
ucomiss -0x90(%rbp),%xmm0
jbe    1ae7 <coplanar_tri_tri+0x9e7>
xorps  %xmm0,%xmm0
ucomiss -0x8c(%rbp),%xmm0
jb     1ae7 <coplanar_tri_tri+0x9e7>
movss  -0x8c(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1ae7 <coplanar_tri_tri+0x9e7>
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    1aac <coplanar_tri_tri+0x9ac>
movss  -0x88(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1aa7 <coplanar_tri_tri+0x9a7>
movss  -0x88(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     1aa7 <coplanar_tri_tri+0x9a7>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    1ae2 <coplanar_tri_tri+0x9e2>
xorps  %xmm0,%xmm0
ucomiss -0x88(%rbp),%xmm0
jb     1add <coplanar_tri_tri+0x9dd>
movss  -0x88(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1add <coplanar_tri_tri+0x9dd>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    1ae2 <coplanar_tri_tri+0x9e2>
jmp    1ae7 <coplanar_tri_tri+0x9e7>
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    1c14 <coplanar_tri_tri+0xb14>
movss  -0x8c(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1c14 <coplanar_tri_tri+0xb14>
movss  -0x8c(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    1c49 <coplanar_tri_tri+0xb49>
xorps  %xmm0,%xmm0
ucomiss -0x90(%rbp),%xmm0
jbe    1d0a <coplanar_tri_tri+0xc0a>
xorps  %xmm0,%xmm0
ucomiss -0x8c(%rbp),%xmm0
jb     1d0a <coplanar_tri_tri+0xc0a>
movss  -0x8c(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1d0a <coplanar_tri_tri+0xc0a>
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    1ccf <coplanar_tri_tri+0xbcf>
movss  -0x88(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1cca <coplanar_tri_tri+0xbca>
movss  -0x88(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     1cca <coplanar_tri_tri+0xbca>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    1d05 <coplanar_tri_tri+0xc05>
xorps  %xmm0,%xmm0
ucomiss -0x88(%rbp),%xmm0
jb     1d00 <coplanar_tri_tri+0xc00>
movss  -0x88(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1d00 <coplanar_tri_tri+0xc00>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    1d05 <coplanar_tri_tri+0xc05>
jmp    1d0a <coplanar_tri_tri+0xc0a>
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    1e37 <coplanar_tri_tri+0xd37>
movss  -0x8c(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1e37 <coplanar_tri_tri+0xd37>
movss  -0x8c(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    1e6c <coplanar_tri_tri+0xd6c>
xorps  %xmm0,%xmm0
ucomiss -0x90(%rbp),%xmm0
jbe    1f2d <coplanar_tri_tri+0xe2d>
xorps  %xmm0,%xmm0
ucomiss -0x8c(%rbp),%xmm0
jb     1f2d <coplanar_tri_tri+0xe2d>
movss  -0x8c(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1f2d <coplanar_tri_tri+0xe2d>
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    1ef2 <coplanar_tri_tri+0xdf2>
movss  -0x88(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1eed <coplanar_tri_tri+0xded>
movss  -0x88(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     1eed <coplanar_tri_tri+0xded>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    1f28 <coplanar_tri_tri+0xe28>
xorps  %xmm0,%xmm0
ucomiss -0x88(%rbp),%xmm0
jb     1f23 <coplanar_tri_tri+0xe23>
movss  -0x88(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1f23 <coplanar_tri_tri+0xe23>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    1f28 <coplanar_tri_tri+0xe28>
jmp    1f2d <coplanar_tri_tri+0xe2d>
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)
movss  -0x98(%rbp),%xmm0
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    20c0 <coplanar_tri_tri+0xfc0>
movss  -0xb0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     20c0 <coplanar_tri_tri+0xfc0>
movss  -0xb0(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    20f5 <coplanar_tri_tri+0xff5>
xorps  %xmm0,%xmm0
ucomiss -0xb4(%rbp),%xmm0
jbe    21bf <coplanar_tri_tri+0x10bf>
xorps  %xmm0,%xmm0
ucomiss -0xb0(%rbp),%xmm0
jb     21bf <coplanar_tri_tri+0x10bf>
movss  -0xb0(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     21bf <coplanar_tri_tri+0x10bf>
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    2184 <coplanar_tri_tri+0x1084>
movss  -0xac(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     217f <coplanar_tri_tri+0x107f>
movss  -0xac(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     217f <coplanar_tri_tri+0x107f>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    21ba <coplanar_tri_tri+0x10ba>
xorps  %xmm0,%xmm0
ucomiss -0xac(%rbp),%xmm0
jb     21b5 <coplanar_tri_tri+0x10b5>
movss  -0xac(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     21b5 <coplanar_tri_tri+0x10b5>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    21ba <coplanar_tri_tri+0x10ba>
jmp    21bf <coplanar_tri_tri+0x10bf>
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    230a <coplanar_tri_tri+0x120a>
movss  -0xb0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     230a <coplanar_tri_tri+0x120a>
movss  -0xb0(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jae    233f <coplanar_tri_tri+0x123f>
xorps  %xmm0,%xmm0
ucomiss -0xb4(%rbp),%xmm0
jbe    2409 <coplanar_tri_tri+0x1309>
xorps  %xmm0,%xmm0
ucomiss -0xb0(%rbp),%xmm0
jb     2409 <coplanar_tri_tri+0x1309>
movss  -0xb0(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     2409 <coplanar_tri_tri+0x1309>
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    23ce <coplanar_tri_tri+0x12ce>
movss  -0xac(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     23c9 <coplanar_tri_tri+0x12c9>
movss  -0xac(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     23c9 <coplanar_tri_tri+0x12c9>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    2404 <coplanar_tri_tri+0x1304>
xorps  %xmm0,%xmm0
ucomiss -0xac(%rbp),%xmm0
jb     23ff <coplanar_tri_tri+0x12ff>
movss  -0xac(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     23ff <coplanar_tri_tri+0x12ff>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    2404 <coplanar_tri_tri+0x1304>
jmp    2409 <coplanar_tri_tri+0x1309>
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    2554 <coplanar_tri_tri+0x1454>
movss  -0xb0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     2554 <coplanar_tri_tri+0x1454>
movss  -0xb0(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    2589 <coplanar_tri_tri+0x1489>
xorps  %xmm0,%xmm0
ucomiss -0xb4(%rbp),%xmm0
jbe    2653 <coplanar_tri_tri+0x1553>
xorps  %xmm0,%xmm0
ucomiss -0xb0(%rbp),%xmm0
jb     2653 <coplanar_tri_tri+0x1553>
movss  -0xb0(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     2653 <coplanar_tri_tri+0x1553>
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    2618 <coplanar_tri_tri+0x1518>
movss  -0xac(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     2613 <coplanar_tri_tri+0x1513>
movss  -0xac(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     2613 <coplanar_tri_tri+0x1513>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    264e <coplanar_tri_tri+0x154e>
xorps  %xmm0,%xmm0
ucomiss -0xac(%rbp),%xmm0
jb     2649 <coplanar_tri_tri+0x1549>
movss  -0xac(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     2649 <coplanar_tri_tri+0x1549>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    264e <coplanar_tri_tri+0x154e>
jmp    2653 <coplanar_tri_tri+0x1553>
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    2973 <coplanar_tri_tri+0x1873>
movss  -0xc4(%rbp),%xmm0
ff
mulss  -0xcc(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    296e <coplanar_tri_tri+0x186e>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    2973 <coplanar_tri_tri+0x1873>
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    2c93 <coplanar_tri_tri+0x1b93>
movss  -0xdc(%rbp),%xmm0
ff
mulss  -0xe4(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2c8e <coplanar_tri_tri+0x1b8e>
movl   $0x1,-0x4(%rbp)
jmp    2c9a <coplanar_tri_tri+0x1b9a>
jmp    2c93 <coplanar_tri_tri+0x1b93>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x70,%rsp
pop    %rbp
ret

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

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