#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

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


x86 assembly (clang, -O0):
<coplanar_tri_tri>:
push   %rbp
mov    %rsp,%rbp
sub    $0xf0,%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
call   1030 <fabs@plt>
movss  %xmm0,-0x44(%rbp)
mov    -0x10(%rbp),%rax
movss  0x4(%rax),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movss  0x8(%rax),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0x3c(%rbp)
movss  -0x44(%rbp),%xmm0
ucomiss -0x40(%rbp),%xmm0
jbe    11af <coplanar_tri_tri+0x9f>
movss  -0x44(%rbp),%xmm0
ucomiss -0x3c(%rbp),%xmm0
jbe    119e <coplanar_tri_tri+0x8e>
movw   $0x1,-0x46(%rbp)
movw   $0x2,-0x48(%rbp)
jmp    11aa <coplanar_tri_tri+0x9a>
movw   $0x0,-0x46(%rbp)
movw   $0x1,-0x48(%rbp)
jmp    11e0 <coplanar_tri_tri+0xd0>
movss  -0x3c(%rbp),%xmm0
ucomiss -0x40(%rbp),%xmm0
jbe    11cf <coplanar_tri_tri+0xbf>
movw   $0x0,-0x46(%rbp)
movw   $0x1,-0x48(%rbp)
jmp    11db <coplanar_tri_tri+0xcb>
movw   $0x0,-0x46(%rbp)
movw   $0x2,-0x48(%rbp)
jmp    11e0 <coplanar_tri_tri+0xd0>
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    1337 <coplanar_tri_tri+0x227>
movss  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1337 <coplanar_tri_tri+0x227>
movss  -0x68(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jae    1360 <coplanar_tri_tri+0x250>
xorps  %xmm0,%xmm0
ucomiss -0x6c(%rbp),%xmm0
jbe    1406 <coplanar_tri_tri+0x2f6>
xorps  %xmm0,%xmm0
ucomiss -0x68(%rbp),%xmm0
jb     1406 <coplanar_tri_tri+0x2f6>
movss  -0x68(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     1406 <coplanar_tri_tri+0x2f6>
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    13d4 <coplanar_tri_tri+0x2c4>
movss  -0x64(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     13cf <coplanar_tri_tri+0x2bf>
movss  -0x64(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     13cf <coplanar_tri_tri+0x2bf>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    1401 <coplanar_tri_tri+0x2f1>
xorps  %xmm0,%xmm0
ucomiss -0x64(%rbp),%xmm0
jb     13fc <coplanar_tri_tri+0x2ec>
movss  -0x64(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     13fc <coplanar_tri_tri+0x2ec>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    1401 <coplanar_tri_tri+0x2f1>
jmp    1406 <coplanar_tri_tri+0x2f6>
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    151b <coplanar_tri_tri+0x40b>
movss  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     151b <coplanar_tri_tri+0x40b>
movss  -0x68(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jae    1544 <coplanar_tri_tri+0x434>
xorps  %xmm0,%xmm0
ucomiss -0x6c(%rbp),%xmm0
jbe    15ea <coplanar_tri_tri+0x4da>
xorps  %xmm0,%xmm0
ucomiss -0x68(%rbp),%xmm0
jb     15ea <coplanar_tri_tri+0x4da>
movss  -0x68(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     15ea <coplanar_tri_tri+0x4da>
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    15b8 <coplanar_tri_tri+0x4a8>
movss  -0x64(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     15b3 <coplanar_tri_tri+0x4a3>
movss  -0x64(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     15b3 <coplanar_tri_tri+0x4a3>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    15e5 <coplanar_tri_tri+0x4d5>
xorps  %xmm0,%xmm0
ucomiss -0x64(%rbp),%xmm0
jb     15e0 <coplanar_tri_tri+0x4d0>
movss  -0x64(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     15e0 <coplanar_tri_tri+0x4d0>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    15e5 <coplanar_tri_tri+0x4d5>
jmp    15ea <coplanar_tri_tri+0x4da>
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    16ff <coplanar_tri_tri+0x5ef>
movss  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     16ff <coplanar_tri_tri+0x5ef>
movss  -0x68(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jae    1728 <coplanar_tri_tri+0x618>
xorps  %xmm0,%xmm0
ucomiss -0x6c(%rbp),%xmm0
jbe    17ce <coplanar_tri_tri+0x6be>
xorps  %xmm0,%xmm0
ucomiss -0x68(%rbp),%xmm0
jb     17ce <coplanar_tri_tri+0x6be>
movss  -0x68(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     17ce <coplanar_tri_tri+0x6be>
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    179c <coplanar_tri_tri+0x68c>
movss  -0x64(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1797 <coplanar_tri_tri+0x687>
movss  -0x64(%rbp),%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     1797 <coplanar_tri_tri+0x687>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    17c9 <coplanar_tri_tri+0x6b9>
xorps  %xmm0,%xmm0
ucomiss -0x64(%rbp),%xmm0
jb     17c4 <coplanar_tri_tri+0x6b4>
movss  -0x64(%rbp),%xmm0
ucomiss -0x6c(%rbp),%xmm0
jb     17c4 <coplanar_tri_tri+0x6b4>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    17c9 <coplanar_tri_tri+0x6b9>
jmp    17ce <coplanar_tri_tri+0x6be>
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    193d <coplanar_tri_tri+0x82d>
movss  -0x8c(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     193d <coplanar_tri_tri+0x82d>
movss  -0x8c(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    1972 <coplanar_tri_tri+0x862>
xorps  %xmm0,%xmm0
ucomiss -0x90(%rbp),%xmm0
jbe    1a33 <coplanar_tri_tri+0x923>
xorps  %xmm0,%xmm0
ucomiss -0x8c(%rbp),%xmm0
jb     1a33 <coplanar_tri_tri+0x923>
movss  -0x8c(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1a33 <coplanar_tri_tri+0x923>
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    19f8 <coplanar_tri_tri+0x8e8>
movss  -0x88(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     19f3 <coplanar_tri_tri+0x8e3>
movss  -0x88(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     19f3 <coplanar_tri_tri+0x8e3>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    1a2e <coplanar_tri_tri+0x91e>
xorps  %xmm0,%xmm0
ucomiss -0x88(%rbp),%xmm0
jb     1a29 <coplanar_tri_tri+0x919>
movss  -0x88(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1a29 <coplanar_tri_tri+0x919>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    1a2e <coplanar_tri_tri+0x91e>
jmp    1a33 <coplanar_tri_tri+0x923>
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    1b60 <coplanar_tri_tri+0xa50>
movss  -0x8c(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1b60 <coplanar_tri_tri+0xa50>
movss  -0x8c(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    1b95 <coplanar_tri_tri+0xa85>
xorps  %xmm0,%xmm0
ucomiss -0x90(%rbp),%xmm0
jbe    1c56 <coplanar_tri_tri+0xb46>
xorps  %xmm0,%xmm0
ucomiss -0x8c(%rbp),%xmm0
jb     1c56 <coplanar_tri_tri+0xb46>
movss  -0x8c(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1c56 <coplanar_tri_tri+0xb46>
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    1c1b <coplanar_tri_tri+0xb0b>
movss  -0x88(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1c16 <coplanar_tri_tri+0xb06>
movss  -0x88(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     1c16 <coplanar_tri_tri+0xb06>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    1c51 <coplanar_tri_tri+0xb41>
xorps  %xmm0,%xmm0
ucomiss -0x88(%rbp),%xmm0
jb     1c4c <coplanar_tri_tri+0xb3c>
movss  -0x88(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1c4c <coplanar_tri_tri+0xb3c>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    1c51 <coplanar_tri_tri+0xb41>
jmp    1c56 <coplanar_tri_tri+0xb46>
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    1d83 <coplanar_tri_tri+0xc73>
movss  -0x8c(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1d83 <coplanar_tri_tri+0xc73>
movss  -0x8c(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    1db8 <coplanar_tri_tri+0xca8>
xorps  %xmm0,%xmm0
ucomiss -0x90(%rbp),%xmm0
jbe    1e79 <coplanar_tri_tri+0xd69>
xorps  %xmm0,%xmm0
ucomiss -0x8c(%rbp),%xmm0
jb     1e79 <coplanar_tri_tri+0xd69>
movss  -0x8c(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1e79 <coplanar_tri_tri+0xd69>
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    1e3e <coplanar_tri_tri+0xd2e>
movss  -0x88(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1e39 <coplanar_tri_tri+0xd29>
movss  -0x88(%rbp),%xmm1
ff
movss  -0x90(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     1e39 <coplanar_tri_tri+0xd29>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    1e74 <coplanar_tri_tri+0xd64>
xorps  %xmm0,%xmm0
ucomiss -0x88(%rbp),%xmm0
jb     1e6f <coplanar_tri_tri+0xd5f>
movss  -0x88(%rbp),%xmm0
ff
ucomiss -0x90(%rbp),%xmm0
jb     1e6f <coplanar_tri_tri+0xd5f>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    1e74 <coplanar_tri_tri+0xd64>
jmp    1e79 <coplanar_tri_tri+0xd69>
mov    -0x18(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x94(%rbp)
ff
mov    -0x18(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x98(%rbp)
ff
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xa0(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x46(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x46(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xa4(%rbp)
ff
mov    -0x28(%rbp),%rax
movswq -0x48(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movswq -0x48(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xa8(%rbp)
ff
movss  -0x98(%rbp),%xmm0
ff
movss  -0x9c(%rbp),%xmm2
ff
movss  -0x94(%rbp),%xmm1
ff
mulss  -0xa0(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xb4(%rbp)
ff
movss  -0xa0(%rbp),%xmm0
ff
movss  -0xa4(%rbp),%xmm2
ff
movss  -0x9c(%rbp),%xmm1
ff
mulss  -0xa8(%rbp),%xmm1
ff
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xb0(%rbp)
ff
movss  -0xb4(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    200c <coplanar_tri_tri+0xefc>
movss  -0xb0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     200c <coplanar_tri_tri+0xefc>
movss  -0xb0(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jae    2041 <coplanar_tri_tri+0xf31>
xorps  %xmm0,%xmm0
ucomiss -0xb4(%rbp),%xmm0
jbe    210b <coplanar_tri_tri+0xffb>
xorps  %xmm0,%xmm0
ucomiss -0xb0(%rbp),%xmm0
jb     210b <coplanar_tri_tri+0xffb>
movss  -0xb0(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     210b <coplanar_tri_tri+0xffb>
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    20d0 <coplanar_tri_tri+0xfc0>
movss  -0xac(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     20cb <coplanar_tri_tri+0xfbb>
movss  -0xac(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     20cb <coplanar_tri_tri+0xfbb>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    2106 <coplanar_tri_tri+0xff6>
xorps  %xmm0,%xmm0
ucomiss -0xac(%rbp),%xmm0
jb     2101 <coplanar_tri_tri+0xff1>
movss  -0xac(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     2101 <coplanar_tri_tri+0xff1>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    2106 <coplanar_tri_tri+0xff6>
jmp    210b <coplanar_tri_tri+0xffb>
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    2256 <coplanar_tri_tri+0x1146>
movss  -0xb0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     2256 <coplanar_tri_tri+0x1146>
movss  -0xb0(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    228b <coplanar_tri_tri+0x117b>
xorps  %xmm0,%xmm0
ucomiss -0xb4(%rbp),%xmm0
jbe    2355 <coplanar_tri_tri+0x1245>
xorps  %xmm0,%xmm0
ucomiss -0xb0(%rbp),%xmm0
jb     2355 <coplanar_tri_tri+0x1245>
movss  -0xb0(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     2355 <coplanar_tri_tri+0x1245>
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    231a <coplanar_tri_tri+0x120a>
movss  -0xac(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     2315 <coplanar_tri_tri+0x1205>
movss  -0xac(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     2315 <coplanar_tri_tri+0x1205>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    2350 <coplanar_tri_tri+0x1240>
xorps  %xmm0,%xmm0
ucomiss -0xac(%rbp),%xmm0
jb     234b <coplanar_tri_tri+0x123b>
movss  -0xac(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     234b <coplanar_tri_tri+0x123b>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    2350 <coplanar_tri_tri+0x1240>
jmp    2355 <coplanar_tri_tri+0x1245>
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    24a0 <coplanar_tri_tri+0x1390>
movss  -0xb0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     24a0 <coplanar_tri_tri+0x1390>
movss  -0xb0(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jae    24d5 <coplanar_tri_tri+0x13c5>
xorps  %xmm0,%xmm0
ucomiss -0xb4(%rbp),%xmm0
jbe    259f <coplanar_tri_tri+0x148f>
xorps  %xmm0,%xmm0
ucomiss -0xb0(%rbp),%xmm0
jb     259f <coplanar_tri_tri+0x148f>
movss  -0xb0(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     259f <coplanar_tri_tri+0x148f>
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    2564 <coplanar_tri_tri+0x1454>
movss  -0xac(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     255f <coplanar_tri_tri+0x144f>
movss  -0xac(%rbp),%xmm1
ff
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jb     255f <coplanar_tri_tri+0x144f>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    259a <coplanar_tri_tri+0x148a>
xorps  %xmm0,%xmm0
ucomiss -0xac(%rbp),%xmm0
jb     2595 <coplanar_tri_tri+0x1485>
movss  -0xac(%rbp),%xmm0
ff
ucomiss -0xb4(%rbp),%xmm0
jb     2595 <coplanar_tri_tri+0x1485>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    259a <coplanar_tri_tri+0x148a>
jmp    259f <coplanar_tri_tri+0x148f>
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    28bf <coplanar_tri_tri+0x17af>
movss  -0xc4(%rbp),%xmm0
ff
mulss  -0xcc(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    28ba <coplanar_tri_tri+0x17aa>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    28bf <coplanar_tri_tri+0x17af>
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    2bdf <coplanar_tri_tri+0x1acf>
movss  -0xdc(%rbp),%xmm0
ff
mulss  -0xe4(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2bda <coplanar_tri_tri+0x1aca>
movl   $0x1,-0x4(%rbp)
jmp    2be6 <coplanar_tri_tri+0x1ad6>
jmp    2bdf <coplanar_tri_tri+0x1acf>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0xf0,%rsp
pop    %rbp
ret

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

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

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