int clipSegment(pX, pY, qX, qY, Pclip, Qclip, H, V)
float *pX, *pY, *qX, *qY;
int Pclip, Qclip;
float H, V;
{
  register float PX, PY, QX, QY, dx, dy;
  PX = *pX;
  QX = *qX;
  PY = *pY;
  QY = *qY;
  dx = QX - PX;
  dy = QY - PY;
  switch (Pclip) {
  case 1: {
    PX += ((dx * (V - PY)) / dy);
    PY = V;
  }
    if ((PX < -H) || (PX > H))
      return 0;
    break;
  case 2: {
    PX -= ((dx * (V + PY)) / dy);
    PY = -V;
  }
    if ((PX < -H) || (PX > H))
      return 0;
    break;
  case 4: {
    PY -= ((dy * (H + PX)) / dx);
    PX = -H;
  }
    if ((PY < -V) || (PY > V))
      return 0;
    break;
  case 5: {
    PX += ((dx * (V - PY)) / dy);
    PY = V;
  }
    if ((PX < -H) || (PX > H)) {
      {
        PY -= ((dy * (H + PX)) / dx);
        PX = -H;
      }
      if ((PY < -V) || (PY > V))
        return 0;
    }
    break;
  case 6: {
    PX -= ((dx * (V + PY)) / dy);
    PY = -V;
  }
    if ((PX < -H) || (PX > H)) {
      {
        PY -= ((dy * (H + PX)) / dx);
        PX = -H;
      }
      if ((PY < -V) || (PY > V))
        return 0;
    }
    break;
  case 8: {
    PY += ((dy * (H - PX)) / dx);
    PX = H;
  }
    if ((PY < -V) || (PY > V))
      return 0;
    break;
  case 9: {
    PX += ((dx * (V - PY)) / dy);
    PY = V;
  }
    if ((PX < -H) || (PX > H)) {
      {
        PY += ((dy * (H - PX)) / dx);
        PX = H;
      }
      if ((PY < -V) || (PY > V))
        return 0;
    }
    break;
  case 10: {
    PX -= ((dx * (V + PY)) / dy);
    PY = -V;
  }
    if ((PX < -H) || (PX > H)) {
      {
        PY += ((dy * (H - PX)) / dx);
        PX = H;
      }
      if ((PY < -V) || (PY > V))
        return 0;
    }
    break;
  }
  switch (Qclip) {
  case 1: {
    QX += ((dx * (V - QY)) / dy);
    QY = V;
  } break;
  case 2: {
    QX -= ((dx * (V + QY)) / dy);
    QY = -V;
  } break;
  case 4: {
    QY -= ((dy * (H + QX)) / dx);
    QX = -H;
  } break;
  case 5: {
    QX += ((dx * (V - QY)) / dy);
    QY = V;
  }
    if (QX < -H) {
      QY -= ((dy * (H + QX)) / dx);
      QX = -H;
    }
    break;
  case 6: {
    QX -= ((dx * (V + QY)) / dy);
    QY = -V;
  }
    if (QX < -H) {
      QY -= ((dy * (H + QX)) / dx);
      QX = -H;
    }
    break;
  case 8: {
    QY += ((dy * (H - QX)) / dx);
    QX = H;
  } break;
  case 9: {
    QX += ((dx * (V - QY)) / dy);
    QY = V;
  }
    if (QX > H) {
      QY += ((dy * (H - QX)) / dx);
      QX = H;
    }
    break;
  case 10: {
    QX -= ((dx * (V + QY)) / dy);
    QY = -V;
  }
    if (QX > H) {
      QY += ((dy * (H - QX)) / dx);
      QX = H;
    }
    break;
  case 21: {
    QX += ((dx * (V - QY)) / dy);
    QY = V;
  }
    if (QX < -H) {
      QY -= ((dy * (H + QX)) / dx);
      QX = -H;
    }
    break;
  case 22: {
    QX -= ((dx * (V + QY)) / dy);
    QY = -V;
  }
    if (QX < -H) {
      QY -= ((dy * (H + QX)) / dx);
      QX = -H;
    }
    break;
  case 23:
    if (QY < PY) {
      QX += ((dx * (V - QY)) / dy);
      QY = V;
    } else {
      QX -= ((dx * (V + QY)) / dy);
      QY = -V;
    }
    if (QX < -H) {
      QY -= ((dy * (H + QX)) / dx);
      QX = -H;
    }
    break;
  case 25: {
    QX += ((dx * (V - QY)) / dy);
    QY = V;
  }
    if (QX > H) {
      QY += ((dy * (H - QX)) / dx);
      QX = H;
    }
    break;
  case 26: {
    QX -= ((dx * (V + QY)) / dy);
    QY = -V;
  }
    if (QX > H) {
      QY += ((dy * (H - QX)) / dx);
      QX = H;
    }
    break;
  case 27:
    if (QY < PY) {
      QX += ((dx * (V - QY)) / dy);
      QY = V;
    } else {
      QX -= ((dx * (V + QY)) / dy);
      QY = -V;
    }
    if (QX > H) {
      QY += ((dy * (H - QX)) / dx);
      QX = H;
    }
    break;
  case 29:
    if (QX < PX) {
      QY += ((dy * (H - QX)) / dx);
      QX = H;
    } else {
      QY -= ((dy * (H + QX)) / dx);
      QX = -H;
    }
    if (QY > V) {
      QX += ((dx * (V - QY)) / dy);
      QY = V;
    }
    break;
  case 30:
    if (QX < PX) {
      QY += ((dy * (H - QX)) / dx);
      QX = H;
    } else {
      QY -= ((dy * (H + QX)) / dx);
      QX = -H;
    }
    if (QY < -V) {
      QX -= ((dx * (V + QY)) / dy);
      QY = -V;
    }
    break;
  case 31:
    if (QX < PX) {
      QY += ((dy * (H - QX)) / dx);
      QX = H;
    } else {
      QY -= ((dy * (H + QX)) / dx);
      QX = -H;
    }
    if ((QY < -V) || (QY > V)) {
      if (*qY < PY) {
        QX += ((dx * (V - QY)) / dy);
        QY = V;
      } else {
        QX -= ((dx * (V + QY)) / dy);
        QY = -V;
      }
    }
    break;
  }
  *pX = PX;
  *qX = QX;
  *pY = PY;
  *qY = QY;
  return 1;
}


x86 assembly (clang, -O0):
<clipSegment>:
push   %rbp
mov    %rsp,%rbp
movsd  %xmm1,-0x60(%rbp)
movaps %xmm0,%xmm1
movsd  -0x60(%rbp),%xmm0
cvtsd2ss %xmm1,%xmm1
cvtsd2ss %xmm0,%xmm0
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    %rcx,-0x28(%rbp)
mov    %r8d,-0x2c(%rbp)
mov    %r9d,-0x30(%rbp)
movss  %xmm1,-0x34(%rbp)
movss  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x3c(%rbp)
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x44(%rbp)
mov    -0x18(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x40(%rbp)
mov    -0x28(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x44(%rbp),%xmm0
movss  -0x3c(%rbp),%xmm1
subss  %xmm1,%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x48(%rbp),%xmm0
movss  -0x40(%rbp),%xmm1
subss  %xmm1,%xmm0
movss  %xmm0,-0x50(%rbp)
mov    -0x2c(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,%ecx
mov    %rcx,-0x58(%rbp)
sub    $0x9,%eax
ja     1704 <clipSegment+0x604>
mov    -0x58(%rbp),%rax
lea    0x1e4b(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movss  -0x4c(%rbp),%xmm0
movss  -0x38(%rbp),%xmm1
subss  -0x40(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x50(%rbp),%xmm0
addss  -0x3c(%rbp),%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x3c(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
ja     1219 <clipSegment+0x119>
movss  -0x3c(%rbp),%xmm0
ucomiss -0x34(%rbp),%xmm0
jbe    1225 <clipSegment+0x125>
movl   $0x0,-0x4(%rbp)
jmp    2100 <clipSegment+0x1000>
jmp    1704 <clipSegment+0x604>
movss  -0x4c(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
addss  -0x40(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x50(%rbp),%xmm1
movss  -0x3c(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x3c(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
ja     1296 <clipSegment+0x196>
movss  -0x3c(%rbp),%xmm0
ucomiss -0x34(%rbp),%xmm0
jbe    12a2 <clipSegment+0x1a2>
movl   $0x0,-0x4(%rbp)
jmp    2100 <clipSegment+0x1000>
jmp    1704 <clipSegment+0x604>
movss  -0x50(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
addss  -0x3c(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x4c(%rbp),%xmm1
movss  -0x40(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x40(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
ja     1313 <clipSegment+0x213>
movss  -0x40(%rbp),%xmm0
ucomiss -0x38(%rbp),%xmm0
jbe    131f <clipSegment+0x21f>
movl   $0x0,-0x4(%rbp)
jmp    2100 <clipSegment+0x1000>
jmp    1704 <clipSegment+0x604>
movss  -0x4c(%rbp),%xmm0
movss  -0x38(%rbp),%xmm1
subss  -0x40(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x50(%rbp),%xmm0
addss  -0x3c(%rbp),%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x3c(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
ja     137f <clipSegment+0x27f>
movss  -0x3c(%rbp),%xmm0
ucomiss -0x34(%rbp),%xmm0
jbe    13fc <clipSegment+0x2fc>
movss  -0x50(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
addss  -0x3c(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x4c(%rbp),%xmm1
movss  -0x40(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x40(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
ja     13eb <clipSegment+0x2eb>
movss  -0x40(%rbp),%xmm0
ucomiss -0x38(%rbp),%xmm0
jbe    13f7 <clipSegment+0x2f7>
movl   $0x0,-0x4(%rbp)
jmp    2100 <clipSegment+0x1000>
jmp    13fc <clipSegment+0x2fc>
jmp    1704 <clipSegment+0x604>
movss  -0x4c(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
addss  -0x40(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x50(%rbp),%xmm1
movss  -0x3c(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x3c(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
ja     146d <clipSegment+0x36d>
movss  -0x3c(%rbp),%xmm0
ucomiss -0x34(%rbp),%xmm0
jbe    14ea <clipSegment+0x3ea>
movss  -0x50(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
addss  -0x3c(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x4c(%rbp),%xmm1
movss  -0x40(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x40(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
ja     14d9 <clipSegment+0x3d9>
movss  -0x40(%rbp),%xmm0
ucomiss -0x38(%rbp),%xmm0
jbe    14e5 <clipSegment+0x3e5>
movl   $0x0,-0x4(%rbp)
jmp    2100 <clipSegment+0x1000>
jmp    14ea <clipSegment+0x3ea>
jmp    1704 <clipSegment+0x604>
movss  -0x50(%rbp),%xmm0
movss  -0x34(%rbp),%xmm1
subss  -0x3c(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x4c(%rbp),%xmm0
addss  -0x40(%rbp),%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x40(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
ja     154a <clipSegment+0x44a>
movss  -0x40(%rbp),%xmm0
ucomiss -0x38(%rbp),%xmm0
jbe    1556 <clipSegment+0x456>
movl   $0x0,-0x4(%rbp)
jmp    2100 <clipSegment+0x1000>
jmp    1704 <clipSegment+0x604>
movss  -0x4c(%rbp),%xmm0
movss  -0x38(%rbp),%xmm1
subss  -0x40(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x50(%rbp),%xmm0
addss  -0x3c(%rbp),%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x3c(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
ja     15b6 <clipSegment+0x4b6>
movss  -0x3c(%rbp),%xmm0
ucomiss -0x34(%rbp),%xmm0
jbe    1622 <clipSegment+0x522>
movss  -0x50(%rbp),%xmm0
movss  -0x34(%rbp),%xmm1
subss  -0x3c(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x4c(%rbp),%xmm0
addss  -0x40(%rbp),%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x40(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
ja     1611 <clipSegment+0x511>
movss  -0x40(%rbp),%xmm0
ucomiss -0x38(%rbp),%xmm0
jbe    161d <clipSegment+0x51d>
movl   $0x0,-0x4(%rbp)
jmp    2100 <clipSegment+0x1000>
jmp    1622 <clipSegment+0x522>
jmp    1704 <clipSegment+0x604>
movss  -0x4c(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
addss  -0x40(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x50(%rbp),%xmm1
movss  -0x3c(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x3c(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
ja     1693 <clipSegment+0x593>
movss  -0x3c(%rbp),%xmm0
ucomiss -0x34(%rbp),%xmm0
jbe    16ff <clipSegment+0x5ff>
movss  -0x50(%rbp),%xmm0
movss  -0x34(%rbp),%xmm1
subss  -0x3c(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x4c(%rbp),%xmm0
addss  -0x40(%rbp),%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x40(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
ja     16ee <clipSegment+0x5ee>
movss  -0x40(%rbp),%xmm0
ucomiss -0x38(%rbp),%xmm0
jbe    16fa <clipSegment+0x5fa>
movl   $0x0,-0x4(%rbp)
jmp    2100 <clipSegment+0x1000>
jmp    16ff <clipSegment+0x5ff>
jmp    1704 <clipSegment+0x604>
mov    -0x30(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,%ecx
mov    %rcx,-0x68(%rbp)
sub    $0x1e,%eax
ja     20c5 <clipSegment+0xfc5>
mov    -0x68(%rbp),%rax
lea    0x1904(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movss  -0x4c(%rbp),%xmm0
movss  -0x38(%rbp),%xmm1
subss  -0x48(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x50(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
jmp    20c5 <clipSegment+0xfc5>
movss  -0x4c(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x50(%rbp),%xmm1
movss  -0x44(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x48(%rbp)
jmp    20c5 <clipSegment+0xfc5>
movss  -0x50(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x4c(%rbp),%xmm1
movss  -0x48(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x44(%rbp)
jmp    20c5 <clipSegment+0xfc5>
movss  -0x4c(%rbp),%xmm0
movss  -0x38(%rbp),%xmm1
subss  -0x48(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x50(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x44(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
jbe    186b <clipSegment+0x76b>
movss  -0x50(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x4c(%rbp),%xmm1
movss  -0x48(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x44(%rbp)
jmp    20c5 <clipSegment+0xfc5>
movss  -0x4c(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x50(%rbp),%xmm1
movss  -0x44(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x44(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
jbe    190a <clipSegment+0x80a>
movss  -0x50(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x4c(%rbp),%xmm1
movss  -0x48(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x44(%rbp)
jmp    20c5 <clipSegment+0xfc5>
movss  -0x50(%rbp),%xmm0
movss  -0x34(%rbp),%xmm1
subss  -0x44(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x4c(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
jmp    20c5 <clipSegment+0xfc5>
movss  -0x4c(%rbp),%xmm0
movss  -0x38(%rbp),%xmm1
subss  -0x48(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x50(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x44(%rbp),%xmm0
ucomiss -0x34(%rbp),%xmm0
jbe    19a7 <clipSegment+0x8a7>
movss  -0x50(%rbp),%xmm0
movss  -0x34(%rbp),%xmm1
subss  -0x44(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x4c(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
jmp    20c5 <clipSegment+0xfc5>
movss  -0x4c(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x50(%rbp),%xmm1
movss  -0x44(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x44(%rbp),%xmm0
ucomiss -0x34(%rbp),%xmm0
jbe    1a24 <clipSegment+0x924>
movss  -0x50(%rbp),%xmm0
movss  -0x34(%rbp),%xmm1
subss  -0x44(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x4c(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
jmp    20c5 <clipSegment+0xfc5>
movss  -0x4c(%rbp),%xmm0
movss  -0x38(%rbp),%xmm1
subss  -0x48(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x50(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x44(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
jbe    1ab2 <clipSegment+0x9b2>
movss  -0x50(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x4c(%rbp),%xmm1
movss  -0x48(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x44(%rbp)
jmp    20c5 <clipSegment+0xfc5>
movss  -0x4c(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x50(%rbp),%xmm1
movss  -0x44(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x44(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
jbe    1b51 <clipSegment+0xa51>
movss  -0x50(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x4c(%rbp),%xmm1
movss  -0x48(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x44(%rbp)
jmp    20c5 <clipSegment+0xfc5>
movss  -0x48(%rbp),%xmm1
movss  -0x40(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    1b9a <clipSegment+0xa9a>
movss  -0x4c(%rbp),%xmm0
movss  -0x38(%rbp),%xmm1
subss  -0x48(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x50(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
jmp    1bd7 <clipSegment+0xad7>
movss  -0x4c(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x50(%rbp),%xmm1
movss  -0x44(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x44(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
jbe    1c34 <clipSegment+0xb34>
movss  -0x50(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x4c(%rbp),%xmm1
movss  -0x48(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x44(%rbp)
jmp    20c5 <clipSegment+0xfc5>
movss  -0x4c(%rbp),%xmm0
movss  -0x38(%rbp),%xmm1
subss  -0x48(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x50(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x44(%rbp),%xmm0
ucomiss -0x34(%rbp),%xmm0
jbe    1ca0 <clipSegment+0xba0>
movss  -0x50(%rbp),%xmm0
movss  -0x34(%rbp),%xmm1
subss  -0x44(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x4c(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
jmp    20c5 <clipSegment+0xfc5>
movss  -0x4c(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x50(%rbp),%xmm1
movss  -0x44(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x44(%rbp),%xmm0
ucomiss -0x34(%rbp),%xmm0
jbe    1d1d <clipSegment+0xc1d>
movss  -0x50(%rbp),%xmm0
movss  -0x34(%rbp),%xmm1
subss  -0x44(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x4c(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
jmp    20c5 <clipSegment+0xfc5>
movss  -0x48(%rbp),%xmm1
movss  -0x40(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    1d66 <clipSegment+0xc66>
movss  -0x4c(%rbp),%xmm0
movss  -0x38(%rbp),%xmm1
subss  -0x48(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x50(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
jmp    1da3 <clipSegment+0xca3>
movss  -0x4c(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x50(%rbp),%xmm1
movss  -0x44(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x44(%rbp),%xmm0
ucomiss -0x34(%rbp),%xmm0
jbe    1dde <clipSegment+0xcde>
movss  -0x50(%rbp),%xmm0
movss  -0x34(%rbp),%xmm1
subss  -0x44(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x4c(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
jmp    20c5 <clipSegment+0xfc5>
movss  -0x44(%rbp),%xmm1
movss  -0x3c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    1e27 <clipSegment+0xd27>
movss  -0x50(%rbp),%xmm0
movss  -0x34(%rbp),%xmm1
subss  -0x44(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x4c(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
jmp    1e64 <clipSegment+0xd64>
movss  -0x50(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x4c(%rbp),%xmm1
movss  -0x48(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x48(%rbp),%xmm0
ucomiss -0x38(%rbp),%xmm0
jbe    1e9f <clipSegment+0xd9f>
movss  -0x4c(%rbp),%xmm0
movss  -0x38(%rbp),%xmm1
subss  -0x48(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x50(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
jmp    20c5 <clipSegment+0xfc5>
movss  -0x44(%rbp),%xmm1
movss  -0x3c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    1ee8 <clipSegment+0xde8>
movss  -0x50(%rbp),%xmm0
movss  -0x34(%rbp),%xmm1
subss  -0x44(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x4c(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
jmp    1f25 <clipSegment+0xe25>
movss  -0x50(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x4c(%rbp),%xmm1
movss  -0x48(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x48(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
jbe    1f82 <clipSegment+0xe82>
movss  -0x4c(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x50(%rbp),%xmm1
movss  -0x44(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x48(%rbp)
jmp    20c5 <clipSegment+0xfc5>
movss  -0x44(%rbp),%xmm1
movss  -0x3c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    1fcb <clipSegment+0xecb>
movss  -0x50(%rbp),%xmm0
movss  -0x34(%rbp),%xmm1
subss  -0x44(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x4c(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
jmp    2008 <clipSegment+0xf08>
movss  -0x50(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x4c(%rbp),%xmm1
movss  -0x48(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x48(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
ucomiss %xmm1,%xmm0
ja     2037 <clipSegment+0xf37>
movss  -0x48(%rbp),%xmm0
ucomiss -0x38(%rbp),%xmm0
jbe    20c0 <clipSegment+0xfc0>
mov    -0x28(%rbp),%rax
movss  (%rax),%xmm1
movss  -0x40(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    207e <clipSegment+0xf7e>
movss  -0x4c(%rbp),%xmm0
movss  -0x38(%rbp),%xmm1
subss  -0x48(%rbp),%xmm1
mulss  %xmm1,%xmm0
divss  -0x50(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
jmp    20bb <clipSegment+0xfbb>
movss  -0x4c(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
mulss  %xmm0,%xmm1
divss  -0x50(%rbp),%xmm1
movss  -0x44(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x48(%rbp)
jmp    20c0 <clipSegment+0xfc0>
jmp    20c5 <clipSegment+0xfc5>
movss  -0x3c(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movss  %xmm0,(%rax)
movss  -0x44(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movss  %xmm0,(%rax)
movss  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,(%rax)
movss  -0x48(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,(%rax)
movl   $0x1,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<clipSegment>:
cvtsd2ss %xmm0,%xmm9
cvtsd2ss %xmm1,%xmm10
movss  (%rdi),%xmm4
movss  (%rdx),%xmm6
movss  (%rsi),%xmm1
movss  (%rcx),%xmm7
movaps %xmm6,%xmm5
subss  %xmm4,%xmm5
movaps %xmm7,%xmm3
subss  %xmm1,%xmm3
add    $0xffffffff,%r8d
cmp    $0x9,%r8d
ja     1383 <clipSegment+0x283>
lea    0xed3(%rip),%r10
movslq (%r10,%r8,4),%rax
add    %r10,%rax
jmp    *%rax
movaps %xmm10,%xmm0
subss  %xmm1,%xmm0
mulss  %xmm5,%xmm0
divss  %xmm3,%xmm0
addss  %xmm0,%xmm4
movaps 0xe9f(%rip),%xmm0
xorps  %xmm9,%xmm0
xor    %eax,%eax
ucomiss %xmm4,%xmm0
ja     13e7 <clipSegment+0x2e7>
ucomiss %xmm9,%xmm4
movaps %xmm10,%xmm1
jbe    1383 <clipSegment+0x283>
jmp    13e7 <clipSegment+0x2e7>
addss  %xmm10,%xmm1
mulss  %xmm5,%xmm1
divss  %xmm3,%xmm1
subss  %xmm1,%xmm4
movaps 0xe65(%rip),%xmm1
movaps %xmm9,%xmm0
xorps  %xmm1,%xmm0
xor    %eax,%eax
ucomiss %xmm4,%xmm0
ja     13e7 <clipSegment+0x2e7>
ucomiss %xmm9,%xmm4
ja     13e7 <clipSegment+0x2e7>
xorps  %xmm10,%xmm1
jmp    1383 <clipSegment+0x283>
addss  %xmm9,%xmm4
mulss  %xmm3,%xmm4
divss  %xmm5,%xmm4
subss  %xmm4,%xmm1
movaps 0xe28(%rip),%xmm4
movaps %xmm10,%xmm0
xorps  %xmm4,%xmm0
xor    %eax,%eax
ucomiss %xmm1,%xmm0
ja     13e7 <clipSegment+0x2e7>
ucomiss %xmm10,%xmm1
ja     13e7 <clipSegment+0x2e7>
xorps  %xmm9,%xmm4
jmp    1383 <clipSegment+0x283>
movaps %xmm10,%xmm0
subss  %xmm1,%xmm0
mulss  %xmm5,%xmm0
divss  %xmm3,%xmm0
addss  %xmm0,%xmm4
movaps 0xde8(%rip),%xmm0
xorps  %xmm9,%xmm0
ucomiss %xmm4,%xmm0
ja     122b <clipSegment+0x12b>
ucomiss %xmm9,%xmm4
jbe    12d1 <clipSegment+0x1d1>
addss  %xmm9,%xmm4
mulss  %xmm3,%xmm4
divss  %xmm5,%xmm4
movaps %xmm10,%xmm1
subss  %xmm4,%xmm1
movaps 0xdb9(%rip),%xmm2
xorps  %xmm10,%xmm2
jmp    1321 <clipSegment+0x221>
addss  %xmm10,%xmm1
mulss  %xmm5,%xmm1
divss  %xmm3,%xmm1
subss  %xmm1,%xmm4
movaps 0xd98(%rip),%xmm0
movaps %xmm10,%xmm2
xorps  %xmm0,%xmm2
xorps  %xmm9,%xmm0
ucomiss %xmm4,%xmm0
ja     130d <clipSegment+0x20d>
ucomiss %xmm9,%xmm4
ja     130d <clipSegment+0x20d>
movaps %xmm2,%xmm1
jmp    1383 <clipSegment+0x283>
movaps %xmm9,%xmm0
subss  %xmm4,%xmm0
mulss  %xmm3,%xmm0
divss  %xmm5,%xmm0
addss  %xmm0,%xmm1
jmp    1350 <clipSegment+0x250>
movaps %xmm10,%xmm0
subss  %xmm1,%xmm0
mulss  %xmm5,%xmm0
divss  %xmm3,%xmm0
addss  %xmm0,%xmm4
movaps 0xd3e(%rip),%xmm0
xorps  %xmm9,%xmm0
ucomiss %xmm4,%xmm0
ja     133b <clipSegment+0x23b>
ucomiss %xmm9,%xmm4
ja     133b <clipSegment+0x23b>
movaps %xmm10,%xmm1
jmp    1383 <clipSegment+0x283>
addss  %xmm10,%xmm1
mulss  %xmm5,%xmm1
divss  %xmm3,%xmm1
subss  %xmm1,%xmm4
movaps 0xd0e(%rip),%xmm1
movaps %xmm10,%xmm0
xorps  %xmm1,%xmm0
xorps  %xmm9,%xmm1
ucomiss %xmm4,%xmm1
ja     135d <clipSegment+0x25d>
ucomiss %xmm9,%xmm4
ja     135d <clipSegment+0x25d>
movaps %xmm0,%xmm1
jmp    1383 <clipSegment+0x283>
addss  %xmm9,%xmm4
mulss  %xmm3,%xmm4
divss  %xmm5,%xmm4
movaps %xmm2,%xmm1
subss  %xmm4,%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm2
ja     13e7 <clipSegment+0x2e7>
ucomiss %xmm10,%xmm1
ja     13e7 <clipSegment+0x2e7>
movaps %xmm0,%xmm4
jmp    1383 <clipSegment+0x283>
movaps %xmm9,%xmm1
subss  %xmm4,%xmm1
mulss  %xmm3,%xmm1
divss  %xmm5,%xmm1
addss  %xmm10,%xmm1
movaps 0xca9(%rip),%xmm0
xorps  %xmm10,%xmm0
jmp    1372 <clipSegment+0x272>
movaps %xmm9,%xmm1
subss  %xmm4,%xmm1
mulss  %xmm3,%xmm1
divss  %xmm5,%xmm1
subss  %xmm10,%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
ja     13e7 <clipSegment+0x2e7>
ucomiss %xmm10,%xmm1
movaps %xmm9,%xmm4
ja     13e7 <clipSegment+0x2e7>
add    $0xffffffff,%r9d
cmp    $0x1e,%r9d
ja     16f2 <clipSegment+0x5f2>
lea    0xca0(%rip),%r8
movslq (%r8,%r9,4),%rax
add    %r8,%rax
jmp    *%rax
addss  %xmm10,%xmm7
mulss  %xmm5,%xmm7
divss  %xmm3,%xmm7
subss  %xmm7,%xmm6
movaps 0xc47(%rip),%xmm0
xorps  %xmm0,%xmm10
movaps %xmm10,%xmm7
xorps  %xmm9,%xmm0
ucomiss %xmm6,%xmm0
jbe    16f2 <clipSegment+0x5f2>
addss  %xmm9,%xmm6
mulss  %xmm6,%xmm3
divss  %xmm5,%xmm3
subss  %xmm3,%xmm7
movaps %xmm0,%xmm6
jmp    16f2 <clipSegment+0x5f2>
ret
movaps %xmm10,%xmm0
subss  %xmm7,%xmm0
mulss  %xmm5,%xmm0
divss  %xmm3,%xmm0
addss  %xmm0,%xmm6
ucomiss %xmm9,%xmm6
jbe    1605 <clipSegment+0x505>
movaps %xmm9,%xmm0
subss  %xmm6,%xmm0
mulss  %xmm0,%xmm3
divss  %xmm5,%xmm3
addss  %xmm10,%xmm3
jmp    1449 <clipSegment+0x349>
addss  %xmm10,%xmm7
mulss  %xmm5,%xmm7
divss  %xmm3,%xmm7
subss  %xmm7,%xmm6
ucomiss %xmm9,%xmm6
jbe    1483 <clipSegment+0x383>
movaps %xmm9,%xmm0
subss  %xmm6,%xmm0
mulss  %xmm0,%xmm3
divss  %xmm5,%xmm3
subss  %xmm10,%xmm3
movaps %xmm9,%xmm6
movaps %xmm3,%xmm7
jmp    16f2 <clipSegment+0x5f2>
movaps %xmm10,%xmm0
subss  %xmm7,%xmm0
mulss  %xmm0,%xmm5
divss  %xmm3,%xmm5
addss  %xmm5,%xmm6
movaps %xmm10,%xmm7
jmp    16f2 <clipSegment+0x5f2>
addss  %xmm10,%xmm7
mulss  %xmm7,%xmm5
divss  %xmm3,%xmm5
subss  %xmm5,%xmm6
xorps  0xb75(%rip),%xmm10
movaps %xmm10,%xmm7
jmp    16f2 <clipSegment+0x5f2>
addss  %xmm9,%xmm6
mulss  %xmm3,%xmm6
divss  %xmm5,%xmm6
subss  %xmm6,%xmm7
xorps  0xb53(%rip),%xmm9
movaps %xmm9,%xmm6
jmp    16f2 <clipSegment+0x5f2>
movaps %xmm9,%xmm0
subss  %xmm6,%xmm0
mulss  %xmm3,%xmm0
divss  %xmm5,%xmm0
addss  %xmm0,%xmm7
movaps %xmm9,%xmm6
jmp    16f2 <clipSegment+0x5f2>
ucomiss %xmm7,%xmm1
jbe    15ae <clipSegment+0x4ae>
movaps %xmm10,%xmm0
subss  %xmm7,%xmm0
mulss  %xmm5,%xmm0
divss  %xmm3,%xmm0
addss  %xmm0,%xmm6
movaps 0xb09(%rip),%xmm0
xorps  %xmm9,%xmm0
ucomiss %xmm6,%xmm0
jbe    1605 <clipSegment+0x505>
addss  %xmm9,%xmm6
mulss  %xmm6,%xmm3
divss  %xmm5,%xmm3
subss  %xmm3,%xmm10
movaps %xmm0,%xmm6
movaps %xmm10,%xmm7
jmp    16f2 <clipSegment+0x5f2>
ucomiss %xmm7,%xmm1
jbe    15cc <clipSegment+0x4cc>
movaps %xmm10,%xmm0
subss  %xmm7,%xmm0
mulss  %xmm5,%xmm0
divss  %xmm3,%xmm0
addss  %xmm0,%xmm6
jmp    15e5 <clipSegment+0x4e5>
ucomiss %xmm6,%xmm4
jbe    160e <clipSegment+0x50e>
movaps %xmm9,%xmm0
subss  %xmm6,%xmm0
mulss  %xmm3,%xmm0
divss  %xmm5,%xmm0
addss  %xmm0,%xmm7
jmp    1627 <clipSegment+0x527>
ucomiss %xmm6,%xmm4
jbe    163a <clipSegment+0x53a>
movaps %xmm9,%xmm0
subss  %xmm6,%xmm0
mulss  %xmm3,%xmm0
divss  %xmm5,%xmm0
addss  %xmm0,%xmm7
jmp    1653 <clipSegment+0x553>
ucomiss %xmm6,%xmm4
jbe    1674 <clipSegment+0x574>
movaps %xmm9,%xmm8
subss  %xmm6,%xmm8
mulss  %xmm3,%xmm8
divss  %xmm5,%xmm8
addss  %xmm7,%xmm8
jmp    1692 <clipSegment+0x592>
addss  %xmm10,%xmm7
mulss  %xmm5,%xmm7
divss  %xmm3,%xmm7
subss  %xmm7,%xmm6
xorps  0xa39(%rip),%xmm10
jmp    14f0 <clipSegment+0x3f0>
addss  %xmm10,%xmm7
mulss  %xmm5,%xmm7
divss  %xmm3,%xmm7
subss  %xmm7,%xmm6
xorps  0xa1b(%rip),%xmm10
ucomiss %xmm9,%xmm6
jbe    1605 <clipSegment+0x505>
movaps %xmm9,%xmm0
subss  %xmm6,%xmm0
mulss  %xmm0,%xmm3
divss  %xmm5,%xmm3
addss  %xmm3,%xmm10
jmp    16ce <clipSegment+0x5ce>
movaps %xmm10,%xmm7
jmp    16f2 <clipSegment+0x5f2>
addss  %xmm9,%xmm6
mulss  %xmm3,%xmm6
divss  %xmm5,%xmm6
subss  %xmm6,%xmm7
xorps  0x9d9(%rip),%xmm9
ucomiss %xmm10,%xmm7
jbe    166e <clipSegment+0x56e>
movaps %xmm10,%xmm0
subss  %xmm7,%xmm0
jmp    16c1 <clipSegment+0x5c1>
addss  %xmm9,%xmm6
mulss  %xmm3,%xmm6
divss  %xmm5,%xmm6
subss  %xmm6,%xmm7
xorps  0x9ad(%rip),%xmm9
movaps 0x9a6(%rip),%xmm0
xorps  %xmm10,%xmm0
ucomiss %xmm7,%xmm0
jbe    166e <clipSegment+0x56e>
addss  %xmm10,%xmm7
mulss  %xmm7,%xmm5
jmp    16e2 <clipSegment+0x5e2>
movaps %xmm9,%xmm6
jmp    16f2 <clipSegment+0x5f2>
addss  %xmm9,%xmm6
mulss  %xmm3,%xmm6
divss  %xmm5,%xmm6
movaps %xmm7,%xmm8
subss  %xmm6,%xmm8
xorps  0x96e(%rip),%xmm9
movaps 0x967(%rip),%xmm0
xorps  %xmm10,%xmm0
ucomiss %xmm8,%xmm0
ja     16b3 <clipSegment+0x5b3>
ucomiss %xmm10,%xmm8
ja     16b3 <clipSegment+0x5b3>
movaps %xmm9,%xmm6
movaps %xmm8,%xmm7
jmp    16f2 <clipSegment+0x5f2>
ucomiss %xmm7,%xmm1
jbe    16d8 <clipSegment+0x5d8>
movaps %xmm10,%xmm0
subss  %xmm8,%xmm0
mulss  %xmm0,%xmm5
divss  %xmm3,%xmm5
addss  %xmm5,%xmm9
movaps %xmm9,%xmm6
movaps %xmm10,%xmm7
jmp    16f2 <clipSegment+0x5f2>
addss  %xmm10,%xmm8
mulss  %xmm8,%xmm5
divss  %xmm3,%xmm5
subss  %xmm5,%xmm9
movaps %xmm9,%xmm6
movaps %xmm0,%xmm7
movss  %xmm4,(%rdi)
movss  %xmm6,(%rdx)
movss  %xmm1,(%rsi)
movss  %xmm7,(%rcx)
mov    $0x1,%eax
ret

LLVM IR (-O0):
define i32 @clipSegment(float* %0, float* %1, float* %2, float* %3, i32 %4, i32 %5, double %6, double %7) {
%9 = alloca i32
%10 = alloca float*
%11 = alloca float*
%12 = alloca float*
%13 = alloca float*
%14 = alloca i32
%15 = alloca i32
%16 = alloca float
%17 = alloca float
%18 = alloca float
%19 = alloca float
%20 = alloca float
%21 = alloca float
%22 = alloca float
%23 = alloca float
%24 = fptrunc double %6 to float
%25 = fptrunc double %7 to float
store float* %0, float** %10
store float* %1, float** %11
store float* %2, float** %12
store float* %3, float** %13
store i32 %4, i32* %14
store i32 %5, i32* %15
store float %24, float* %16
store float %25, float* %17
%26 = load float*, float** %10
%27 = load float, float* %26
store float %27, float* %18
%28 = load float*, float** %12
%29 = load float, float* %28
store float %29, float* %20
%30 = load float*, float** %11
%31 = load float, float* %30
store float %31, float* %19
%32 = load float*, float** %13
%33 = load float, float* %32
store float %33, float* %21
%34 = load float, float* %20
%35 = load float, float* %18
%36 = fsub float %34, %35
store float %36, float* %22
%37 = load float, float* %21
%38 = load float, float* %19
%39 = fsub float %37, %38
store float %39, float* %23
%40 = load i32, i32* %14
switch i32 %40, label %295 [
i32 1, label %41
i32 2, label %62
i32 4, label %84
i32 5, label %106
i32 6, label %148
i32 8, label %191
i32 9, label %212
i32 10, label %253
]
41: ; preds = %8
%42 = load float, float* %22
%43 = load float, float* %17
%44 = load float, float* %19
%45 = fsub float %43, %44
%46 = fmul float %42, %45
%47 = load float, float* %23
%48 = fdiv float %46, %47
%49 = load float, float* %18
%50 = fadd float %49, %48
store float %50, float* %18
%51 = load float, float* %17
store float %51, float* %19
%52 = load float, float* %18
%53 = load float, float* %16
%54 = fneg float %53
%55 = fcmp olt float %52, %54
br i1 %55, label %60, label %56
56: ; preds = %41
%57 = load float, float* %18
%58 = load float, float* %16
%59 = fcmp ogt float %57, %58
br i1 %59, label %60, label %61
60: ; preds = %56, %41
store i32 0, i32* %9
br label %814
61: ; preds = %56
br label %295
62: ; preds = %8
%63 = load float, float* %22
%64 = load float, float* %17
%65 = load float, float* %19
%66 = fadd float %64, %65
%67 = fmul float %63, %66
%68 = load float, float* %23
%69 = fdiv float %67, %68
%70 = load float, float* %18
%71 = fsub float %70, %69
store float %71, float* %18
%72 = load float, float* %17
%73 = fneg float %72
store float %73, float* %19
%74 = load float, float* %18
%75 = load float, float* %16
%76 = fneg float %75
%77 = fcmp olt float %74, %76
br i1 %77, label %82, label %78
78: ; preds = %62
%79 = load float, float* %18
%80 = load float, float* %16
%81 = fcmp ogt float %79, %80
br i1 %81, label %82, label %83
82: ; preds = %78, %62
store i32 0, i32* %9
br label %814
83: ; preds = %78
br label %295
84: ; preds = %8
%85 = load float, float* %23
%86 = load float, float* %16
%87 = load float, float* %18
%88 = fadd float %86, %87
%89 = fmul float %85, %88
%90 = load float, float* %22
%91 = fdiv float %89, %90
%92 = load float, float* %19
%93 = fsub float %92, %91
store float %93, float* %19
%94 = load float, float* %16
%95 = fneg float %94
store float %95, float* %18
%96 = load float, float* %19
%97 = load float, float* %17
%98 = fneg float %97
%99 = fcmp olt float %96, %98
br i1 %99, label %104, label %100
100: ; preds = %84
%101 = load float, float* %19
%102 = load float, float* %17
%103 = fcmp ogt float %101, %102
br i1 %103, label %104, label %105
104: ; preds = %100, %84
store i32 0, i32* %9
br label %814
105: ; preds = %100
br label %295
106: ; preds = %8
%107 = load float, float* %22
%108 = load float, float* %17
%109 = load float, float* %19
%110 = fsub float %108, %109
%111 = fmul float %107, %110
%112 = load float, float* %23
%113 = fdiv float %111, %112
%114 = load float, float* %18
%115 = fadd float %114, %113
store float %115, float* %18
%116 = load float, float* %17
store float %116, float* %19
%117 = load float, float* %18
%118 = load float, float* %16
%119 = fneg float %118
%120 = fcmp olt float %117, %119
br i1 %120, label %125, label %121
121: ; preds = %106
%122 = load float, float* %18
%123 = load float, float* %16
%124 = fcmp ogt float %122, %123
br i1 %124, label %125, label %147
125: ; preds = %121, %106
%126 = load float, float* %23
%127 = load float, float* %16
%128 = load float, float* %18
%129 = fadd float %127, %128
%130 = fmul float %126, %129
%131 = load float, float* %22
%132 = fdiv float %130, %131
%133 = load float, float* %19
%134 = fsub float %133, %132
store float %134, float* %19
%135 = load float, float* %16
%136 = fneg float %135
store float %136, float* %18
%137 = load float, float* %19
%138 = load float, float* %17
%139 = fneg float %138
%140 = fcmp olt float %137, %139
br i1 %140, label %145, label %141
141: ; preds = %125
%142 = load float, float* %19
%143 = load float, float* %17
%144 = fcmp ogt float %142, %143
br i1 %144, label %145, label %146
145: ; preds = %141, %125
store i32 0, i32* %9
br label %814
146: ; preds = %141
br label %147
147: ; preds = %146, %121
br label %295
148: ; preds = %8
%149 = load float, float* %22
%150 = load float, float* %17
%151 = load float, float* %19
%152 = fadd float %150, %151
%153 = fmul float %149, %152
%154 = load float, float* %23
%155 = fdiv float %153, %154
%156 = load float, float* %18
%157 = fsub float %156, %155
store float %157, float* %18
%158 = load float, float* %17
%159 = fneg float %158
store float %159, float* %19
%160 = load float, float* %18
%161 = load float, float* %16
%162 = fneg float %161
%163 = fcmp olt float %160, %162
br i1 %163, label %168, label %164
164: ; preds = %148
%165 = load float, float* %18
%166 = load float, float* %16
%167 = fcmp ogt float %165, %166
br i1 %167, label %168, label %190
168: ; preds = %164, %148
%169 = load float, float* %23
%170 = load float, float* %16
%171 = load float, float* %18
%172 = fadd float %170, %171
%173 = fmul float %169, %172
%174 = load float, float* %22
%175 = fdiv float %173, %174
%176 = load float, float* %19
%177 = fsub float %176, %175
store float %177, float* %19
%178 = load float, float* %16
%179 = fneg float %178
store float %179, float* %18
%180 = load float, float* %19
%181 = load float, float* %17
%182 = fneg float %181
%183 = fcmp olt float %180, %182
br i1 %183, label %188, label %184
184: ; preds = %168
%185 = load float, float* %19
%186 = load float, float* %17
%187 = fcmp ogt float %185, %186
br i1 %187, label %188, label %189
188: ; preds = %184, %168
store i32 0, i32* %9
br label %814
189: ; preds = %184
br label %190
190: ; preds = %189, %164
br label %295
191: ; preds = %8
%192 = load float, float* %23
%193 = load float, float* %16
%194 = load float, float* %18
%195 = fsub float %193, %194
%196 = fmul float %192, %195
%197 = load float, float* %22
%198 = fdiv float %196, %197
%199 = load float, float* %19
%200 = fadd float %199, %198
store float %200, float* %19
%201 = load float, float* %16
store float %201, float* %18
%202 = load float, float* %19
%203 = load float, float* %17
%204 = fneg float %203
%205 = fcmp olt float %202, %204
br i1 %205, label %210, label %206
206: ; preds = %191
%207 = load float, float* %19
%208 = load float, float* %17
%209 = fcmp ogt float %207, %208
br i1 %209, label %210, label %211
210: ; preds = %206, %191
store i32 0, i32* %9
br label %814
211: ; preds = %206
br label %295
212: ; preds = %8
%213 = load float, float* %22
%214 = load float, float* %17
%215 = load float, float* %19
%216 = fsub float %214, %215
%217 = fmul float %213, %216
%218 = load float, float* %23
%219 = fdiv float %217, %218
%220 = load float, float* %18
%221 = fadd float %220, %219
store float %221, float* %18
%222 = load float, float* %17
store float %222, float* %19
%223 = load float, float* %18
%224 = load float, float* %16
%225 = fneg float %224
%226 = fcmp olt float %223, %225
br i1 %226, label %231, label %227
227: ; preds = %212
%228 = load float, float* %18
%229 = load float, float* %16
%230 = fcmp ogt float %228, %229
br i1 %230, label %231, label %252
231: ; preds = %227, %212
%232 = load float, float* %23
%233 = load float, float* %16
%234 = load float, float* %18
%235 = fsub float %233, %234
%236 = fmul float %232, %235
%237 = load float, float* %22
%238 = fdiv float %236, %237
%239 = load float, float* %19
%240 = fadd float %239, %238
store float %240, float* %19
%241 = load float, float* %16
store float %241, float* %18
%242 = load float, float* %19
%243 = load float, float* %17
%244 = fneg float %243
%245 = fcmp olt float %242, %244
br i1 %245, label %250, label %246
246: ; preds = %231
%247 = load float, float* %19
%248 = load float, float* %17
%249 = fcmp ogt float %247, %248
br i1 %249, label %250, label %251
250: ; preds = %246, %231
store i32 0, i32* %9
br label %814
251: ; preds = %246
br label %252
252: ; preds = %251, %227
br label %295
253: ; preds = %8
%254 = load float, float* %22
%255 = load float, float* %17
%256 = load float, float* %19
%257 = fadd float %255, %256
%258 = fmul float %254, %257
%259 = load float, float* %23
%260 = fdiv float %258, %259
%261 = load float, float* %18
%262 = fsub float %261, %260
store float %262, float* %18
%263 = load float, float* %17
%264 = fneg float %263
store float %264, float* %19
%265 = load float, float* %18
%266 = load float, float* %16
%267 = fneg float %266
%268 = fcmp olt float %265, %267
br i1 %268, label %273, label %269
269: ; preds = %253
%270 = load float, float* %18
%271 = load float, float* %16
%272 = fcmp ogt float %270, %271
br i1 %272, label %273, label %294
273: ; preds = %269, %253
%274 = load float, float* %23
%275 = load float, float* %16
%276 = load float, float* %18
%277 = fsub float %275, %276
%278 = fmul float %274, %277
%279 = load float, float* %22
%280 = fdiv float %278, %279
%281 = load float, float* %19
%282 = fadd float %281, %280
store float %282, float* %19
%283 = load float, float* %16
store float %283, float* %18
%284 = load float, float* %19
%285 = load float, float* %17
%286 = fneg float %285
%287 = fcmp olt float %284, %286
br i1 %287, label %292, label %288
288: ; preds = %273
%289 = load float, float* %19
%290 = load float, float* %17
%291 = fcmp ogt float %289, %290
br i1 %291, label %292, label %293
292: ; preds = %288, %273
store i32 0, i32* %9
br label %814
293: ; preds = %288
br label %294
294: ; preds = %293, %269
br label %295
295: ; preds = %8, %294, %252, %211, %190, %147, %105, %83, %61
%296 = load i32, i32* %15
switch i32 %296, label %805 [
i32 1, label %297
i32 2, label %308
i32 4, label %320
i32 5, label %332
i32 6, label %360
i32 8, label %389
i32 9, label %400
i32 10, label %426
i32 21, label %453
i32 22, label %481
i32 23, label %510
i32 25, label %555
i32 26, label %581
i32 27, label %608
i32 29, label %651
i32 30, label %694
i32 31, label %739
]
297: ; preds = %295
%298 = load float, float* %22
%299 = load float, float* %17
%300 = load float, float* %21
%301 = fsub float %299, %300
%302 = fmul float %298, %301
%303 = load float, float* %23
%304 = fdiv float %302, %303
%305 = load float, float* %20
%306 = fadd float %305, %304
store float %306, float* %20
%307 = load float, float* %17
store float %307, float* %21
br label %805
308: ; preds = %295
%309 = load float, float* %22
%310 = load float, float* %17
%311 = load float, float* %21
%312 = fadd float %310, %311
%313 = fmul float %309, %312
%314 = load float, float* %23
%315 = fdiv float %313, %314
%316 = load float, float* %20
%317 = fsub float %316, %315
store float %317, float* %20
%318 = load float, float* %17
%319 = fneg float %318
store float %319, float* %21
br label %805
320: ; preds = %295
%321 = load float, float* %23
%322 = load float, float* %16
%323 = load float, float* %20
%324 = fadd float %322, %323
%325 = fmul float %321, %324
%326 = load float, float* %22
%327 = fdiv float %325, %326
%328 = load float, float* %21
%329 = fsub float %328, %327
store float %329, float* %21
%330 = load float, float* %16
%331 = fneg float %330
store float %331, float* %20
br label %805
332: ; preds = %295
%333 = load float, float* %22
%334 = load float, float* %17
%335 = load float, float* %21
%336 = fsub float %334, %335
%337 = fmul float %333, %336
%338 = load float, float* %23
%339 = fdiv float %337, %338
%340 = load float, float* %20
%341 = fadd float %340, %339
store float %341, float* %20
%342 = load float, float* %17
store float %342, float* %21
%343 = load float, float* %20
%344 = load float, float* %16
%345 = fneg float %344
%346 = fcmp olt float %343, %345
br i1 %346, label %347, label %359
347: ; preds = %332
%348 = load float, float* %23
%349 = load float, float* %16
%350 = load float, float* %20
%351 = fadd float %349, %350
%352 = fmul float %348, %351
%353 = load float, float* %22
%354 = fdiv float %352, %353
%355 = load float, float* %21
%356 = fsub float %355, %354
store float %356, float* %21
%357 = load float, float* %16
%358 = fneg float %357
store float %358, float* %20
br label %359
359: ; preds = %347, %332
br label %805
360: ; preds = %295
%361 = load float, float* %22
%362 = load float, float* %17
%363 = load float, float* %21
%364 = fadd float %362, %363
%365 = fmul float %361, %364
%366 = load float, float* %23
%367 = fdiv float %365, %366
%368 = load float, float* %20
%369 = fsub float %368, %367
store float %369, float* %20
%370 = load float, float* %17
%371 = fneg float %370
store float %371, float* %21
%372 = load float, float* %20
%373 = load float, float* %16
%374 = fneg float %373
%375 = fcmp olt float %372, %374
br i1 %375, label %376, label %388
376: ; preds = %360
%377 = load float, float* %23
%378 = load float, float* %16
%379 = load float, float* %20
%380 = fadd float %378, %379
%381 = fmul float %377, %380
%382 = load float, float* %22
%383 = fdiv float %381, %382
%384 = load float, float* %21
%385 = fsub float %384, %383
store float %385, float* %21
%386 = load float, float* %16
%387 = fneg float %386
store float %387, float* %20
br label %388
388: ; preds = %376, %360
br label %805
389: ; preds = %295
%390 = load float, float* %23
%391 = load float, float* %16
%392 = load float, float* %20
%393 = fsub float %391, %392
%394 = fmul float %390, %393
%395 = load float, float* %22
%396 = fdiv float %394, %395
%397 = load float, float* %21
%398 = fadd float %397, %396
store float %398, float* %21
%399 = load float, float* %16
store float %399, float* %20
br label %805
400: ; preds = %295
%401 = load float, float* %22
%402 = load float, float* %17
%403 = load float, float* %21
%404 = fsub float %402, %403
%405 = fmul float %401, %404
%406 = load float, float* %23
%407 = fdiv float %405, %406
%408 = load float, float* %20
%409 = fadd float %408, %407
store float %409, float* %20
%410 = load float, float* %17
store float %410, float* %21
%411 = load float, float* %20
%412 = load float, float* %16
%413 = fcmp ogt float %411, %412
br i1 %413, label %414, label %425
414: ; preds = %400
%415 = load float, float* %23
%416 = load float, float* %16
%417 = load float, float* %20
%418 = fsub float %416, %417
%419 = fmul float %415, %418
%420 = load float, float* %22
%421 = fdiv float %419, %420
%422 = load float, float* %21
%423 = fadd float %422, %421
store float %423, float* %21
%424 = load float, float* %16
store float %424, float* %20
br label %425
425: ; preds = %414, %400
br label %805
426: ; preds = %295
%427 = load float, float* %22
%428 = load float, float* %17
%429 = load float, float* %21
%430 = fadd float %428, %429
%431 = fmul float %427, %430
%432 = load float, float* %23
%433 = fdiv float %431, %432
%434 = load float, float* %20
%435 = fsub float %434, %433
store float %435, float* %20
%436 = load float, float* %17
%437 = fneg float %436
store float %437, float* %21
%438 = load float, float* %20
%439 = load float, float* %16
%440 = fcmp ogt float %438, %439
br i1 %440, label %441, label %452
441: ; preds = %426
%442 = load float, float* %23
%443 = load float, float* %16
%444 = load float, float* %20
%445 = fsub float %443, %444
%446 = fmul float %442, %445
%447 = load float, float* %22
%448 = fdiv float %446, %447
%449 = load float, float* %21
%450 = fadd float %449, %448
store float %450, float* %21
%451 = load float, float* %16
store float %451, float* %20
br label %452
452: ; preds = %441, %426
br label %805
453: ; preds = %295
%454 = load float, float* %22
%455 = load float, float* %17
%456 = load float, float* %21
%457 = fsub float %455, %456
%458 = fmul float %454, %457
%459 = load float, float* %23
%460 = fdiv float %458, %459
%461 = load float, float* %20
%462 = fadd float %461, %460
store float %462, float* %20
%463 = load float, float* %17
store float %463, float* %21
%464 = load float, float* %20
%465 = load float, float* %16
%466 = fneg float %465
%467 = fcmp olt float %464, %466
br i1 %467, label %468, label %480
468: ; preds = %453
%469 = load float, float* %23
%470 = load float, float* %16
%471 = load float, float* %20
%472 = fadd float %470, %471
%473 = fmul float %469, %472
%474 = load float, float* %22
%475 = fdiv float %473, %474
%476 = load float, float* %21
%477 = fsub float %476, %475
store float %477, float* %21
%478 = load float, float* %16
%479 = fneg float %478
store float %479, float* %20
br label %480
480: ; preds = %468, %453
br label %805
481: ; preds = %295
%482 = load float, float* %22
%483 = load float, float* %17
%484 = load float, float* %21
%485 = fadd float %483, %484
%486 = fmul float %482, %485
%487 = load float, float* %23
%488 = fdiv float %486, %487
%489 = load float, float* %20
%490 = fsub float %489, %488
store float %490, float* %20
%491 = load float, float* %17
%492 = fneg float %491
store float %492, float* %21
%493 = load float, float* %20
%494 = load float, float* %16
%495 = fneg float %494
%496 = fcmp olt float %493, %495
br i1 %496, label %497, label %509
497: ; preds = %481
%498 = load float, float* %23
%499 = load float, float* %16
%500 = load float, float* %20
%501 = fadd float %499, %500
%502 = fmul float %498, %501
%503 = load float, float* %22
%504 = fdiv float %502, %503
%505 = load float, float* %21
%506 = fsub float %505, %504
store float %506, float* %21
%507 = load float, float* %16
%508 = fneg float %507
store float %508, float* %20
br label %509
509: ; preds = %497, %481
br label %805
510: ; preds = %295
%511 = load float, float* %21
%512 = load float, float* %19
%513 = fcmp olt float %511, %512
br i1 %513, label %514, label %525
514: ; preds = %510
%515 = load float, float* %22
%516 = load float, float* %17
%517 = load float, float* %21
%518 = fsub float %516, %517
%519 = fmul float %515, %518
%520 = load float, float* %23
%521 = fdiv float %519, %520
%522 = load float, float* %20
%523 = fadd float %522, %521
store float %523, float* %20
%524 = load float, float* %17
store float %524, float* %21
br label %537
525: ; preds = %510
%526 = load float, float* %22
%527 = load float, float* %17
%528 = load float, float* %21
%529 = fadd float %527, %528
%530 = fmul float %526, %529
%531 = load float, float* %23
%532 = fdiv float %530, %531
%533 = load float, float* %20
%534 = fsub float %533, %532
store float %534, float* %20
%535 = load float, float* %17
%536 = fneg float %535
store float %536, float* %21
br label %537
537: ; preds = %525, %514
%538 = load float, float* %20
%539 = load float, float* %16
%540 = fneg float %539
%541 = fcmp olt float %538, %540
br i1 %541, label %542, label %554
542: ; preds = %537
%543 = load float, float* %23
%544 = load float, float* %16
%545 = load float, float* %20
%546 = fadd float %544, %545
%547 = fmul float %543, %546
%548 = load float, float* %22
%549 = fdiv float %547, %548
%550 = load float, float* %21
%551 = fsub float %550, %549
store float %551, float* %21
%552 = load float, float* %16
%553 = fneg float %552
store float %553, float* %20
br label %554
554: ; preds = %542, %537
br label %805
555: ; preds = %295
%556 = load float, float* %22
%557 = load float, float* %17
%558 = load float, float* %21
%559 = fsub float %557, %558
%560 = fmul float %556, %559
%561 = load float, float* %23
%562 = fdiv float %560, %561
%563 = load float, float* %20
%564 = fadd float %563, %562
store float %564, float* %20
%565 = load float, float* %17
store float %565, float* %21
%566 = load float, float* %20
%567 = load float, float* %16
%568 = fcmp ogt float %566, %567
br i1 %568, label %569, label %580
569: ; preds = %555
%570 = load float, float* %23
%571 = load float, float* %16
%572 = load float, float* %20
%573 = fsub float %571, %572
%574 = fmul float %570, %573
%575 = load float, float* %22
%576 = fdiv float %574, %575
%577 = load float, float* %21
%578 = fadd float %577, %576
store float %578, float* %21
%579 = load float, float* %16
store float %579, float* %20
br label %580
580: ; preds = %569, %555
br label %805
581: ; preds = %295
%582 = load float, float* %22
%583 = load float, float* %17
%584 = load float, float* %21
%585 = fadd float %583, %584
%586 = fmul float %582, %585
%587 = load float, float* %23
%588 = fdiv float %586, %587
%589 = load float, float* %20
%590 = fsub float %589, %588
store float %590, float* %20
%591 = load float, float* %17
%592 = fneg float %591
store float %592, float* %21
%593 = load float, float* %20
%594 = load float, float* %16
%595 = fcmp ogt float %593, %594
br i1 %595, label %596, label %607
596: ; preds = %581
%597 = load float, float* %23
%598 = load float, float* %16
%599 = load float, float* %20
%600 = fsub float %598, %599
%601 = fmul float %597, %600
%602 = load float, float* %22
%603 = fdiv float %601, %602
%604 = load float, float* %21
%605 = fadd float %604, %603
store float %605, float* %21
%606 = load float, float* %16
store float %606, float* %20
br label %607
607: ; preds = %596, %581
br label %805
608: ; preds = %295
%609 = load float, float* %21
%610 = load float, float* %19
%611 = fcmp olt float %609, %610
br i1 %611, label %612, label %623
612: ; preds = %608
%613 = load float, float* %22
%614 = load float, float* %17
%615 = load float, float* %21
%616 = fsub float %614, %615
%617 = fmul float %613, %616
%618 = load float, float* %23
%619 = fdiv float %617, %618
%620 = load float, float* %20
%621 = fadd float %620, %619
store float %621, float* %20
%622 = load float, float* %17
store float %622, float* %21
br label %635
623: ; preds = %608
%624 = load float, float* %22
%625 = load float, float* %17
%626 = load float, float* %21
%627 = fadd float %625, %626
%628 = fmul float %624, %627
%629 = load float, float* %23
%630 = fdiv float %628, %629
%631 = load float, float* %20
%632 = fsub float %631, %630
store float %632, float* %20
%633 = load float, float* %17
%634 = fneg float %633
store float %634, float* %21
br label %635
635: ; preds = %623, %612
%636 = load float, float* %20
%637 = load float, float* %16
%638 = fcmp ogt float %636, %637
br i1 %638, label %639, label %650
639: ; preds = %635
%640 = load float, float* %23
%641 = load float, float* %16
%642 = load float, float* %20
%643 = fsub float %641, %642
%644 = fmul float %640, %643
%645 = load float, float* %22
%646 = fdiv float %644, %645
%647 = load float, float* %21
%648 = fadd float %647, %646
store float %648, float* %21
%649 = load float, float* %16
store float %649, float* %20
br label %650
650: ; preds = %639, %635
br label %805
651: ; preds = %295
%652 = load float, float* %20
%653 = load float, float* %18
%654 = fcmp olt float %652, %653
br i1 %654, label %655, label %666
655: ; preds = %651
%656 = load float, float* %23
%657 = load float, float* %16
%658 = load float, float* %20
%659 = fsub float %657, %658
%660 = fmul float %656, %659
%661 = load float, float* %22
%662 = fdiv float %660, %661
%663 = load float, float* %21
%664 = fadd float %663, %662
store float %664, float* %21
%665 = load float, float* %16
store float %665, float* %20
br label %678
666: ; preds = %651
%667 = load float, float* %23
%668 = load float, float* %16
%669 = load float, float* %20
%670 = fadd float %668, %669
%671 = fmul float %667, %670
%672 = load float, float* %22
%673 = fdiv float %671, %672
%674 = load float, float* %21
%675 = fsub float %674, %673
store float %675, float* %21
%676 = load float, float* %16
%677 = fneg float %676
store float %677, float* %20
br label %678
678: ; preds = %666, %655
%679 = load float, float* %21
%680 = load float, float* %17
%681 = fcmp ogt float %679, %680
br i1 %681, label %682, label %693
682: ; preds = %678
%683 = load float, float* %22
%684 = load float, float* %17
%685 = load float, float* %21
%686 = fsub float %684, %685
%687 = fmul float %683, %686
%688 = load float, float* %23
%689 = fdiv float %687, %688
%690 = load float, float* %20
%691 = fadd float %690, %689
store float %691, float* %20
%692 = load float, float* %17
store float %692, float* %21
br label %693
693: ; preds = %682, %678
br label %805
694: ; preds = %295
%695 = load float, float* %20
%696 = load float, float* %18
%697 = fcmp olt float %695, %696
br i1 %697, label %698, label %709
698: ; preds = %694
%699 = load float, float* %23
%700 = load float, float* %16
%701 = load float, float* %20
%702 = fsub float %700, %701
%703 = fmul float %699, %702
%704 = load float, float* %22
%705 = fdiv float %703, %704
%706 = load float, float* %21
%707 = fadd float %706, %705
store float %707, float* %21
%708 = load float, float* %16
store float %708, float* %20
br label %721
709: ; preds = %694
%710 = load float, float* %23
%711 = load float, float* %16
%712 = load float, float* %20
%713 = fadd float %711, %712
%714 = fmul float %710, %713
%715 = load float, float* %22
%716 = fdiv float %714, %715
%717 = load float, float* %21
%718 = fsub float %717, %716
store float %718, float* %21
%719 = load float, float* %16
%720 = fneg float %719
store float %720, float* %20
br label %721
721: ; preds = %709, %698
%722 = load float, float* %21
%723 = load float, float* %17
%724 = fneg float %723
%725 = fcmp olt float %722, %724
br i1 %725, label %726, label %738
726: ; preds = %721
%727 = load float, float* %22
%728 = load float, float* %17
%729 = load float, float* %21
%730 = fadd float %728, %729
%731 = fmul float %727, %730
%732 = load float, float* %23
%733 = fdiv float %731, %732
%734 = load float, float* %20
%735 = fsub float %734, %733
store float %735, float* %20
%736 = load float, float* %17
%737 = fneg float %736
store float %737, float* %21
br label %738
738: ; preds = %726, %721
br label %805
739: ; preds = %295
%740 = load float, float* %20
%741 = load float, float* %18
%742 = fcmp olt float %740, %741
br i1 %742, label %743, label %754
743: ; preds = %739
%744 = load float, float* %23
%745 = load float, float* %16
%746 = load float, float* %20
%747 = fsub float %745, %746
%748 = fmul float %744, %747
%749 = load float, float* %22
%750 = fdiv float %748, %749
%751 = load float, float* %21
%752 = fadd float %751, %750
store float %752, float* %21
%753 = load float, float* %16
store float %753, float* %20
br label %766
754: ; preds = %739
%755 = load float, float* %23
%756 = load float, float* %16
%757 = load float, float* %20
%758 = fadd float %756, %757
%759 = fmul float %755, %758
%760 = load float, float* %22
%761 = fdiv float %759, %760
%762 = load float, float* %21
%763 = fsub float %762, %761
store float %763, float* %21
%764 = load float, float* %16
%765 = fneg float %764
store float %765, float* %20
br label %766
766: ; preds = %754, %743
%767 = load float, float* %21
%768 = load float, float* %17
%769 = fneg float %768
%770 = fcmp olt float %767, %769
br i1 %770, label %775, label %771
771: ; preds = %766
%772 = load float, float* %21
%773 = load float, float* %17
%774 = fcmp ogt float %772, %773
br i1 %774, label %775, label %804
775: ; preds = %771, %766
%776 = load float*, float** %13
%777 = load float, float* %776
%778 = load float, float* %19
%779 = fcmp olt float %777, %778
br i1 %779, label %780, label %791
780: ; preds = %775
%781 = load float, float* %22
%782 = load float, float* %17
%783 = load float, float* %21
%784 = fsub float %782, %783
%785 = fmul float %781, %784
%786 = load float, float* %23
%787 = fdiv float %785, %786
%788 = load float, float* %20
%789 = fadd float %788, %787
store float %789, float* %20
%790 = load float, float* %17
store float %790, float* %21
br label %803
791: ; preds = %775
%792 = load float, float* %22
%793 = load float, float* %17
%794 = load float, float* %21
%795 = fadd float %793, %794
%796 = fmul float %792, %795
%797 = load float, float* %23
%798 = fdiv float %796, %797
%799 = load float, float* %20
%800 = fsub float %799, %798
store float %800, float* %20
%801 = load float, float* %17
%802 = fneg float %801
store float %802, float* %21
br label %803
803: ; preds = %791, %780
br label %804
804: ; preds = %803, %771
br label %805
805: ; preds = %295, %804, %738, %693, %650, %607, %580, %554, %509, %480, %452, %425, %389, %388, %359, %320, %308, %297
%806 = load float, float* %18
%807 = load float*, float** %10
store float %806, float* %807
%808 = load float, float* %20
%809 = load float*, float** %12
store float %808, float* %809
%810 = load float, float* %19
%811 = load float*, float** %11
store float %810, float* %811
%812 = load float, float* %21
%813 = load float*, float** %13
store float %812, float* %813
store i32 1, i32* %9
br label %814
814: ; preds = %805, %292, %250, %210, %188, %145, %104, %82, %60
%815 = load i32, i32* %9
ret i32 %815
}

LLVM IR (-O2):
define i32 @clipSegment(float* nocapture %0, float* nocapture %1, float* nocapture %2, float* nocapture %3, i32 %4, i32 %5, double %6, double %7) {
%9 = fptrunc double %6 to float
%10 = fptrunc double %7 to float
%11 = load float, float* %0
%12 = load float, float* %2
%13 = load float, float* %1
%14 = load float, float* %3
%15 = fsub float %12, %11
%16 = fsub float %14, %13
switch i32 %4, label %127 [
i32 1, label %17
i32 2, label %26
i32 4, label %36
i32 5, label %46
i32 6, label %64
i32 8, label %82
i32 9, label %91
i32 10, label %109
]
17: ; preds = %8
%18 = fsub float %10, %13
%19 = fmul float %15, %18
%20 = fdiv float %19, %16
%21 = fadd float %11, %20
%22 = fneg float %9
%23 = fcmp olt float %21, %22
%24 = fcmp ogt float %21, %9
%25 = or i1 %23, %24
br i1 %25, label %373, label %127
26: ; preds = %8
%27 = fadd float %13, %10
%28 = fmul float %15, %27
%29 = fdiv float %28, %16
%30 = fsub float %11, %29
%31 = fneg float %9
%32 = fcmp olt float %30, %31
%33 = fneg float %10
%34 = fcmp ogt float %30, %9
%35 = or i1 %32, %34
br i1 %35, label %373, label %127
36: ; preds = %8
%37 = fadd float %11, %9
%38 = fmul float %37, %16
%39 = fdiv float %38, %15
%40 = fsub float %13, %39
%41 = fneg float %10
%42 = fcmp olt float %40, %41
%43 = fneg float %9
%44 = fcmp ogt float %40, %10
%45 = or i1 %42, %44
br i1 %45, label %373, label %127
46: ; preds = %8
%47 = fsub float %10, %13
%48 = fmul float %15, %47
%49 = fdiv float %48, %16
%50 = fadd float %11, %49
%51 = fneg float %9
%52 = fcmp olt float %50, %51
%53 = fcmp ogt float %50, %9
%54 = or i1 %52, %53
br i1 %54, label %55, label %127
55: ; preds = %46
%56 = fadd float %50, %9
%57 = fmul float %16, %56
%58 = fdiv float %57, %15
%59 = fsub float %10, %58
%60 = fneg float %10
%61 = fcmp olt float %59, %60
%62 = fcmp ogt float %59, %10
%63 = or i1 %61, %62
br i1 %63, label %373, label %127
64: ; preds = %8
%65 = fadd float %13, %10
%66 = fmul float %15, %65
%67 = fdiv float %66, %16
%68 = fsub float %11, %67
%69 = fneg float %10
%70 = fneg float %9
%71 = fcmp olt float %68, %70
%72 = fcmp ogt float %68, %9
%73 = or i1 %71, %72
br i1 %73, label %74, label %127
74: ; preds = %64
%75 = fadd float %68, %9
%76 = fmul float %16, %75
%77 = fdiv float %76, %15
%78 = fsub float %69, %77
%79 = fcmp olt float %78, %69
%80 = fcmp ogt float %78, %10
%81 = or i1 %79, %80
br i1 %81, label %373, label %127
82: ; preds = %8
%83 = fsub float %9, %11
%84 = fmul float %83, %16
%85 = fdiv float %84, %15
%86 = fadd float %13, %85
%87 = fneg float %10
%88 = fcmp olt float %86, %87
%89 = fcmp ogt float %86, %10
%90 = or i1 %88, %89
br i1 %90, label %373, label %127
91: ; preds = %8
%92 = fsub float %10, %13
%93 = fmul float %15, %92
%94 = fdiv float %93, %16
%95 = fadd float %11, %94
%96 = fneg float %9
%97 = fcmp olt float %95, %96
%98 = fcmp ogt float %95, %9
%99 = or i1 %97, %98
br i1 %99, label %100, label %127
100: ; preds = %91
%101 = fsub float %9, %95
%102 = fmul float %16, %101
%103 = fdiv float %102, %15
%104 = fadd float %103, %10
%105 = fneg float %10
%106 = fcmp olt float %104, %105
%107 = fcmp ogt float %104, %10
%108 = or i1 %106, %107
br i1 %108, label %373, label %127
109: ; preds = %8
%110 = fadd float %13, %10
%111 = fmul float %15, %110
%112 = fdiv float %111, %16
%113 = fsub float %11, %112
%114 = fneg float %10
%115 = fneg float %9
%116 = fcmp olt float %113, %115
%117 = fcmp ogt float %113, %9
%118 = or i1 %116, %117
br i1 %118, label %119, label %127
119: ; preds = %109
%120 = fsub float %9, %113
%121 = fmul float %16, %120
%122 = fdiv float %121, %15
%123 = fsub float %122, %10
%124 = fcmp olt float %123, %114
%125 = fcmp ogt float %123, %10
%126 = or i1 %124, %125
br i1 %126, label %373, label %127
127: ; preds = %119, %109, %100, %91, %82, %74, %64, %55, %46, %36, %26, %17, %8
%128 = phi float [ %13, %8 ], [ %10, %17 ], [ %33, %26 ], [ %40, %36 ], [ %10, %46 ], [ %59, %55 ], [ %69, %64 ], [ %78, %74 ], [ %86, %82 ], [ %10, %91 ], [ %104, %100 ], [ %114, %109 ], [ %123, %119 ]
%129 = phi float [ %11, %8 ], [ %21, %17 ], [ %30, %26 ], [ %43, %36 ], [ %50, %46 ], [ %51, %55 ], [ %68, %64 ], [ %70, %74 ], [ %9, %82 ], [ %95, %91 ], [ %9, %100 ], [ %113, %109 ], [ %9, %119 ]
switch i32 %5, label %370 [
i32 1, label %130
i32 2, label %135
i32 4, label %141
i32 5, label %147
i32 6, label %159
i32 8, label %172
i32 9, label %177
i32 10, label %188
i32 21, label %200
i32 22, label %212
i32 23, label %225
i32 25, label %248
i32 26, label %259
i32 27, label %271
i32 29, label %293
i32 30, label %315
i32 31, label %338
]
130: ; preds = %127
%131 = fsub float %10, %14
%132 = fmul float %15, %131
%133 = fdiv float %132, %16
%134 = fadd float %12, %133
br label %370
135: ; preds = %127
%136 = fadd float %14, %10
%137 = fmul float %15, %136
%138 = fdiv float %137, %16
%139 = fsub float %12, %138
%140 = fneg float %10
br label %370
141: ; preds = %127
%142 = fadd float %12, %9
%143 = fmul float %142, %16
%144 = fdiv float %143, %15
%145 = fsub float %14, %144
%146 = fneg float %9
br label %370
147: ; preds = %127
%148 = fsub float %10, %14
%149 = fmul float %15, %148
%150 = fdiv float %149, %16
%151 = fadd float %12, %150
%152 = fneg float %9
%153 = fcmp olt float %151, %152
br i1 %153, label %154, label %370
154: ; preds = %147
%155 = fadd float %151, %9
%156 = fmul float %16, %155
%157 = fdiv float %156, %15
%158 = fsub float %10, %157
br label %370
159: ; preds = %127
%160 = fadd float %14, %10
%161 = fmul float %15, %160
%162 = fdiv float %161, %16
%163 = fsub float %12, %162
%164 = fneg float %10
%165 = fneg float %9
%166 = fcmp olt float %163, %165
br i1 %166, label %167, label %370
167: ; preds = %159
%168 = fadd float %163, %9
%169 = fmul float %16, %168
%170 = fdiv float %169, %15
%171 = fsub float %164, %170
br label %370
172: ; preds = %127
%173 = fsub float %9, %12
%174 = fmul float %173, %16
%175 = fdiv float %174, %15
%176 = fadd float %14, %175
br label %370
177: ; preds = %127
%178 = fsub float %10, %14
%179 = fmul float %15, %178
%180 = fdiv float %179, %16
%181 = fadd float %12, %180
%182 = fcmp ogt float %181, %9
br i1 %182, label %183, label %370
183: ; preds = %177
%184 = fsub float %9, %181
%185 = fmul float %16, %184
%186 = fdiv float %185, %15
%187 = fadd float %186, %10
br label %370
188: ; preds = %127
%189 = fadd float %14, %10
%190 = fmul float %15, %189
%191 = fdiv float %190, %16
%192 = fsub float %12, %191
%193 = fneg float %10
%194 = fcmp ogt float %192, %9
br i1 %194, label %195, label %370
195: ; preds = %188
%196 = fsub float %9, %192
%197 = fmul float %16, %196
%198 = fdiv float %197, %15
%199 = fsub float %198, %10
br label %370
200: ; preds = %127
%201 = fsub float %10, %14
%202 = fmul float %15, %201
%203 = fdiv float %202, %16
%204 = fadd float %12, %203
%205 = fneg float %9
%206 = fcmp olt float %204, %205
br i1 %206, label %207, label %370
207: ; preds = %200
%208 = fadd float %204, %9
%209 = fmul float %16, %208
%210 = fdiv float %209, %15
%211 = fsub float %10, %210
br label %370
212: ; preds = %127
%213 = fadd float %14, %10
%214 = fmul float %15, %213
%215 = fdiv float %214, %16
%216 = fsub float %12, %215
%217 = fneg float %10
%218 = fneg float %9
%219 = fcmp olt float %216, %218
br i1 %219, label %220, label %370
220: ; preds = %212
%221 = fadd float %216, %9
%222 = fmul float %16, %221
%223 = fdiv float %222, %15
%224 = fsub float %217, %223
br label %370
225: ; preds = %127
%226 = fcmp olt float %14, %128
br i1 %226, label %227, label %232
227: ; preds = %225
%228 = fsub float %10, %14
%229 = fmul float %15, %228
%230 = fdiv float %229, %16
%231 = fadd float %12, %230
br label %238
232: ; preds = %225
%233 = fadd float %14, %10
%234 = fmul float %15, %233
%235 = fdiv float %234, %16
%236 = fsub float %12, %235
%237 = fneg float %10
br label %238
238: ; preds = %232, %227
%239 = phi float [ %231, %227 ], [ %236, %232 ]
%240 = phi float [ %10, %227 ], [ %237, %232 ]
%241 = fneg float %9
%242 = fcmp olt float %239, %241
br i1 %242, label %243, label %370
243: ; preds = %238
%244 = fadd float %239, %9
%245 = fmul float %16, %244
%246 = fdiv float %245, %15
%247 = fsub float %240, %246
br label %370
248: ; preds = %127
%249 = fsub float %10, %14
%250 = fmul float %15, %249
%251 = fdiv float %250, %16
%252 = fadd float %12, %251
%253 = fcmp ogt float %252, %9
br i1 %253, label %254, label %370
254: ; preds = %248
%255 = fsub float %9, %252
%256 = fmul float %16, %255
%257 = fdiv float %256, %15
%258 = fadd float %257, %10
br label %370
259: ; preds = %127
%260 = fadd float %14, %10
%261 = fmul float %15, %260
%262 = fdiv float %261, %16
%263 = fsub float %12, %262
%264 = fneg float %10
%265 = fcmp ogt float %263, %9
br i1 %265, label %266, label %370
266: ; preds = %259
%267 = fsub float %9, %263
%268 = fmul float %16, %267
%269 = fdiv float %268, %15
%270 = fsub float %269, %10
br label %370
271: ; preds = %127
%272 = fcmp olt float %14, %128
br i1 %272, label %273, label %278
273: ; preds = %271
%274 = fsub float %10, %14
%275 = fmul float %15, %274
%276 = fdiv float %275, %16
%277 = fadd float %12, %276
br label %284
278: ; preds = %271
%279 = fadd float %14, %10
%280 = fmul float %15, %279
%281 = fdiv float %280, %16
%282 = fsub float %12, %281
%283 = fneg float %10
br label %284
284: ; preds = %278, %273
%285 = phi float [ %277, %273 ], [ %282, %278 ]
%286 = phi float [ %10, %273 ], [ %283, %278 ]
%287 = fcmp ogt float %285, %9
br i1 %287, label %288, label %370
288: ; preds = %284
%289 = fsub float %9, %285
%290 = fmul float %16, %289
%291 = fdiv float %290, %15
%292 = fadd float %286, %291
br label %370
293: ; preds = %127
%294 = fcmp olt float %12, %129
br i1 %294, label %295, label %300
295: ; preds = %293
%296 = fsub float %9, %12
%297 = fmul float %296, %16
%298 = fdiv float %297, %15
%299 = fadd float %14, %298
br label %306
300: ; preds = %293
%301 = fadd float %12, %9
%302 = fmul float %301, %16
%303 = fdiv float %302, %15
%304 = fsub float %14, %303
%305 = fneg float %9
br label %306
306: ; preds = %300, %295
%307 = phi float [ %9, %295 ], [ %305, %300 ]
%308 = phi float [ %299, %295 ], [ %304, %300 ]
%309 = fcmp ogt float %308, %10
br i1 %309, label %310, label %370
310: ; preds = %306
%311 = fsub float %10, %308
%312 = fmul float %15, %311
%313 = fdiv float %312, %16
%314 = fadd float %307, %313
br label %370
315: ; preds = %127
%316 = fcmp olt float %12, %129
br i1 %316, label %317, label %322
317: ; preds = %315
%318 = fsub float %9, %12
%319 = fmul float %318, %16
%320 = fdiv float %319, %15
%321 = fadd float %14, %320
br label %328
322: ; preds = %315
%323 = fadd float %12, %9
%324 = fmul float %323, %16
%325 = fdiv float %324, %15
%326 = fsub float %14, %325
%327 = fneg float %9
br label %328
328: ; preds = %322, %317
%329 = phi float [ %9, %317 ], [ %327, %322 ]
%330 = phi float [ %321, %317 ], [ %326, %322 ]
%331 = fneg float %10
%332 = fcmp olt float %330, %331
br i1 %332, label %333, label %370
333: ; preds = %328
%334 = fadd float %330, %10
%335 = fmul float %15, %334
%336 = fdiv float %335, %16
%337 = fsub float %329, %336
br label %370
338: ; preds = %127
%339 = fcmp olt float %12, %129
br i1 %339, label %340, label %345
340: ; preds = %338
%341 = fsub float %9, %12
%342 = fmul float %341, %16
%343 = fdiv float %342, %15
%344 = fadd float %14, %343
br label %351
345: ; preds = %338
%346 = fadd float %12, %9
%347 = fmul float %346, %16
%348 = fdiv float %347, %15
%349 = fsub float %14, %348
%350 = fneg float %9
br label %351
351: ; preds = %345, %340
%352 = phi float [ %9, %340 ], [ %350, %345 ]
%353 = phi float [ %344, %340 ], [ %349, %345 ]
%354 = fneg float %10
%355 = fcmp olt float %353, %354
%356 = fcmp ogt float %353, %10
%357 = or i1 %355, %356
br i1 %357, label %358, label %370
358: ; preds = %351
%359 = fcmp olt float %14, %128
br i1 %359, label %360, label %365
360: ; preds = %358
%361 = fsub float %10, %353
%362 = fmul float %15, %361
%363 = fdiv float %362, %16
%364 = fadd float %352, %363
br label %370
365: ; preds = %358
%366 = fadd float %353, %10
%367 = fmul float %15, %366
%368 = fdiv float %367, %16
%369 = fsub float %352, %368
br label %370
370: ; preds = %351, %365, %360, %328, %333, %306, %310, %284, %288, %259, %266, %248, %254, %238, %243, %212, %220, %200, %207, %188, %195, %177, %183, %159, %167, %147, %154, %127, %172, %141, %135, %130
%371 = phi float [ %12, %127 ], [ %364, %360 ], [ %369, %365 ], [ %337, %333 ], [ %329, %328 ], [ %314, %310 ], [ %307, %306 ], [ %9, %288 ], [ %285, %284 ], [ %9, %266 ], [ %263, %259 ], [ %9, %254 ], [ %252, %248 ], [ %241, %243 ], [ %239, %238 ], [ %218, %220 ], [ %216, %212 ], [ %205, %207 ], [ %204, %200 ], [ %9, %195 ], [ %192, %188 ], [ %9, %183 ], [ %181, %177 ], [ %9, %172 ], [ %165, %167 ], [ %163, %159 ], [ %152, %154 ], [ %151, %147 ], [ %146, %141 ], [ %139, %135 ], [ %134, %130 ], [ %352, %351 ]
%372 = phi float [ %14, %127 ], [ %10, %360 ], [ %354, %365 ], [ %331, %333 ], [ %330, %328 ], [ %10, %310 ], [ %308, %306 ], [ %292, %288 ], [ %286, %284 ], [ %270, %266 ], [ %264, %259 ], [ %258, %254 ], [ %10, %248 ], [ %247, %243 ], [ %240, %238 ], [ %224, %220 ], [ %217, %212 ], [ %211, %207 ], [ %10, %200 ], [ %199, %195 ], [ %193, %188 ], [ %187, %183 ], [ %10, %177 ], [ %176, %172 ], [ %171, %167 ], [ %164, %159 ], [ %158, %154 ], [ %10, %147 ], [ %145, %141 ], [ %140, %135 ], [ %10, %130 ], [ %353, %351 ]
store float %129, float* %0
store float %371, float* %2
store float %128, float* %1
store float %372, float* %3
br label %373
373: ; preds = %119, %100, %82, %74, %55, %36, %26, %17, %370
%374 = phi i32 [ 1, %370 ], [ 0, %17 ], [ 0, %26 ], [ 0, %36 ], [ 0, %55 ], [ 0, %74 ], [ 0, %82 ], [ 0, %100 ], [ 0, %119 ]
ret i32 %374
}