#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);
float slamch(char *);
float sqrt(float);
void slasv2(float f__, float g__, float h__, float *ssmin, float *ssmax,
            float *snr, float *csr, float *snl, float *csl) {
  static float c_b3 = 2.f;
  static float c_b4 = 1.f;
  float r__1;
  static int pmax;
  static float temp;
  static int swap;
  static float a, d, l, m, r, s, t, tsign, fa, ga, ha, ft, gt, ht, mm;
  static int gasmal;
  static float tt, clt, crt, slt, srt;
  ft = f__;
  fa = fabs(ft);
  ht = h__;
  ha = fabs(h__);
  pmax = 1;
  swap = ha > fa;
  if (swap) {
    pmax = 3;
    temp = ft;
    ft = ht;
    ht = temp;
    temp = fa;
    fa = ha;
    ha = temp;
  }
  gt = g__;
  ga = fabs(gt);
  if (ga == 0.f) {
    *ssmin = ha;
    *ssmax = fa;
    clt = 1.f;
    crt = 1.f;
    slt = 0.f;
    srt = 0.f;
  } else {
    gasmal = 1;
    if (ga > fa) {
      pmax = 2;
      if (fa / ga < slamch("EPS")) {
        gasmal = 0;
        *ssmax = ga;
        if (ha > 1.f) {
          *ssmin = fa / (ga / ha);
        } else {
          *ssmin = fa / ga * ha;
        }
        clt = 1.f;
        slt = ht / gt;
        srt = 1.f;
        crt = ft / gt;
      }
    }
    if (gasmal) {
      d = fa - ha;
      if (d == fa) {
        l = 1.f;
      } else {
        l = d / fa;
      }
      m = gt / ft;
      t = 2.f - l;
      mm = m * m;
      tt = t * t;
      s = sqrt(tt + mm);
      if (l == 0.f) {
        r = fabs(m);
      } else {
        r = sqrt(l * l + mm);
      }
      a = (s + r) * .5f;
      *ssmin = ha / a;
      *ssmax = fa * a;
      if (mm == 0.f) {
        if (l == 0.f) {
          t = ((ft) < 0 ? -fabs(c_b3) : fabs(c_b3)) *
              ((gt) < 0 ? -fabs(c_b4) : fabs(c_b4));
        } else {
          t = gt / ((ft) < 0 ? -fabs(d) : fabs(d)) + m / t;
        }
      } else {
        t = (m / (s + t) + m / (r + l)) * (a + 1.f);
      }
      l = sqrt(t * t + 4.f);
      crt = 2.f / l;
      srt = t / l;
      clt = (crt + srt * m) / a;
      slt = ht / ft * srt / a;
    }
  }
  if (swap) {
    *csl = srt;
    *snl = crt;
    *csr = slt;
    *snr = clt;
  } else {
    *csl = clt;
    *snl = slt;
    *csr = crt;
    *snr = srt;
  }
  if (pmax == 1) {
    tsign = ((*csr) < 0 ? -fabs(c_b4) : fabs(c_b4)) *
            ((*csl) < 0 ? -fabs(c_b4) : fabs(c_b4)) *
            ((f__) < 0 ? -fabs(c_b4) : fabs(c_b4));
  }
  if (pmax == 2) {
    tsign = ((*snr) < 0 ? -fabs(c_b4) : fabs(c_b4)) *
            ((*csl) < 0 ? -fabs(c_b4) : fabs(c_b4)) *
            ((g__) < 0 ? -fabs(c_b4) : fabs(c_b4));
  }
  if (pmax == 3) {
    tsign = ((*snr) < 0 ? -fabs(c_b4) : fabs(c_b4)) *
            ((*snl) < 0 ? -fabs(c_b4) : fabs(c_b4)) *
            ((h__) < 0 ? -fabs(c_b4) : fabs(c_b4));
  }
  *ssmax = ((tsign) < 0 ? -fabs(*ssmax) : fabs(*ssmax));
  r__1 = tsign * ((f__) < 0 ? -fabs(c_b4) : fabs(c_b4)) *
         ((h__) < 0 ? -fabs(c_b4) : fabs(c_b4));
  *ssmin = ((r__1) < 0 ? -fabs(*ssmin) : fabs(*ssmin));
}


x86 assembly (clang, -O0):
<slasv2>:
push   %rbp
mov    %rsp,%rbp
sub    $0xb0,%rsp
movss  %xmm0,-0x4(%rbp)
movss  %xmm1,-0x8(%rbp)
movss  %xmm2,-0xc(%rbp)
mov    %rdi,-0x18(%rbp)
mov    %rsi,-0x20(%rbp)
mov    %rdx,-0x28(%rbp)
mov    %rcx,-0x30(%rbp)
mov    %r8,-0x38(%rbp)
mov    %r9,-0x40(%rbp)
movss  -0x4(%rbp),%xmm0
movss  %xmm0,0x2f0d(%rip)
movss  0x2f05(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,0x2eec(%rip)
movss  -0xc(%rbp),%xmm0
movss  %xmm0,0x2ef3(%rip)
movss  -0xc(%rbp),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,0x2ed5(%rip)
movl   $0x1,0x2e97(%rip)
movss  0x2ec3(%rip),%xmm0
ucomiss 0x2eb4(%rip),%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,0x2e82(%rip)
cmpl   $0x0,0x2e7b(%rip)
je     1241 <slasv2+0x111>
movl   $0x3,0x2e63(%rip)
movss  0x2e93(%rip),%xmm0
movss  %xmm0,0x2e57(%rip)
movss  0x2e8b(%rip),%xmm0
movss  %xmm0,0x2e7b(%rip)
movss  0x2e3f(%rip),%xmm0
movss  %xmm0,0x2e73(%rip)
movss  0x2e57(%rip),%xmm0
movss  %xmm0,0x2e27(%rip)
movss  0x2e4f(%rip),%xmm0
movss  %xmm0,0x2e3f(%rip)
movss  0x2e0f(%rip),%xmm0
movss  %xmm0,0x2e37(%rip)
movss  -0x8(%rbp),%xmm0
movss  %xmm0,0x2e32(%rip)
movss  0x2e2a(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,0x2e11(%rip)
movss  0x2e09(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    12d8 <slasv2+0x1a8>
jp     12d8 <slasv2+0x1a8>
movss  0x2df3(%rip),%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,(%rax)
movss  0x2ddb(%rip),%xmm0
mov    -0x20(%rbp),%rax
movss  %xmm0,(%rax)
movss  0xd5b(%rip),%xmm0
movss  %xmm0,0x2de7(%rip)
movss  0xd4b(%rip),%xmm0
movss  %xmm0,0x2ddb(%rip)
xorps  %xmm0,%xmm0
movss  %xmm0,0x2dd4(%rip)
xorps  %xmm0,%xmm0
movss  %xmm0,0x2dcd(%rip)
jmp    1819 <slasv2+0x6e9>
movl   $0x1,0x2daa(%rip)
movss  0x2d8a(%rip),%xmm0
ucomiss 0x2d7f(%rip),%xmm0
jbe    1401 <slasv2+0x2d1>
movl   $0x2,0x2d43(%rip)
movss  0x2d67(%rip),%xmm0
divss  0x2d63(%rip),%xmm0
movss  %xmm0,-0x48(%rbp)
lea    0xcf3(%rip),%rdi
call   1040 <slamch@plt>
movss  -0x48(%rbp),%xmm1
ucomiss %xmm1,%xmm0
jbe    13fc <slasv2+0x2cc>
movl   $0x0,0x2d52(%rip)
movss  0x2d32(%rip),%xmm0
mov    -0x20(%rbp),%rax
movss  %xmm0,(%rax)
movss  0x2d26(%rip),%xmm0
movss  0xca6(%rip),%xmm1
ucomiss %xmm1,%xmm0
jbe    138c <slasv2+0x25c>
movss  0x2d05(%rip),%xmm0
movss  0x2d01(%rip),%xmm1
divss  0x2cfd(%rip),%xmm1
divss  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,(%rax)
jmp    13ac <slasv2+0x27c>
movss  0x2cdc(%rip),%xmm0
divss  0x2cd8(%rip),%xmm0
mulss  0x2cd4(%rip),%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,(%rax)
movss  0xc4c(%rip),%xmm0
movss  %xmm0,0x2cd8(%rip)
movss  0x2cc0(%rip),%xmm0
divss  0x2cb4(%rip),%xmm0
movss  %xmm0,0x2cc8(%rip)
movss  0xc24(%rip),%xmm0
movss  %xmm0,0x2cbc(%rip)
movss  0x2c90(%rip),%xmm0
divss  0x2c8c(%rip),%xmm0
movss  %xmm0,0x2c9c(%rip)
jmp    1401 <slasv2+0x2d1>
cmpl   $0x0,0x2c84(%rip)
je     1814 <slasv2+0x6e4>
movss  0x2c5a(%rip),%xmm0
subss  0x2c5a(%rip),%xmm0
movss  %xmm0,0x2c2e(%rip)
movss  0x2c26(%rip),%xmm0
ucomiss 0x2c3b(%rip),%xmm0
jne    1456 <slasv2+0x326>
jp     1456 <slasv2+0x326>
movss  0xbb7(%rip),%xmm0
movss  %xmm0,0x2c07(%rip)
jmp    146e <slasv2+0x33e>
movss  0x2bf6(%rip),%xmm0
divss  0x2c0a(%rip),%xmm0
movss  %xmm0,0x2bea(%rip)
movss  0x2c0a(%rip),%xmm0
divss  0x2bfe(%rip),%xmm0
movss  %xmm0,0x2bd6(%rip)
movss  0xb76(%rip),%xmm0
subss  0x2bc2(%rip),%xmm0
movss  %xmm0,0x2bca(%rip)
movss  0x2bb6(%rip),%xmm0
mulss  0x2bae(%rip),%xmm0
movss  %xmm0,0x2bd2(%rip)
movss  0x2baa(%rip),%xmm0
mulss  0x2ba2(%rip),%xmm0
movss  %xmm0,0x2bc2(%rip)
movss  0x2bba(%rip),%xmm0
addss  0x2baa(%rip),%xmm0
call   1050 <sqrt@plt>
movss  %xmm0,0x2b79(%rip)
movss  0x2b65(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    151f <slasv2+0x3ef>
jp     151f <slasv2+0x3ef>
movss  0x2b4f(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,0x2b46(%rip)
jmp    154c <slasv2+0x41c>
movss  0x2b31(%rip),%xmm0
movss  0x2b29(%rip),%xmm2
movss  0x2b51(%rip),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
call   1050 <sqrt@plt>
movss  %xmm0,0x2b14(%rip)
movss  0x2b10(%rip),%xmm0
addss  0x2b04(%rip),%xmm0
movss  0xaa4(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,0x2ae0(%rip)
movss  0x2b00(%rip),%xmm0
divss  0x2ad0(%rip),%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,(%rax)
movss  0x2ae0(%rip),%xmm0
mulss  0x2ab8(%rip),%xmm0
mov    -0x20(%rbp),%rax
movss  %xmm0,(%rax)
movss  0x2ae0(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    1707 <slasv2+0x5d7>
jp     1707 <slasv2+0x5d7>
movss  0x2a96(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    1685 <slasv2+0x555>
jp     1685 <slasv2+0x555>
xorps  %xmm0,%xmm0
ucomiss 0x2a9e(%rip),%xmm0
jbe    1608 <slasv2+0x4d8>
movss  0x2a4c(%rip),%xmm0
call   1030 <fabs@plt>
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x4c(%rbp)
jmp    161a <slasv2+0x4ea>
movss  0x2a28(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0x4c(%rbp)
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0x50(%rbp)
xorps  %xmm0,%xmm0
ucomiss 0x2a52(%rip),%xmm0
jbe    1658 <slasv2+0x528>
movss  0x2a00(%rip),%xmm0
call   1030 <fabs@plt>
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x54(%rbp)
jmp    166a <slasv2+0x53a>
movss  0x29dc(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0x54(%rbp)
movss  -0x50(%rbp),%xmm0
movss  -0x54(%rbp),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,0x29e8(%rip)
jmp    1702 <slasv2+0x5d2>
movss  0x29f3(%rip),%xmm0
movss  %xmm0,-0x58(%rbp)
xorps  %xmm0,%xmm0
ucomiss 0x29e0(%rip),%xmm0
jbe    16c6 <slasv2+0x596>
movss  0x29aa(%rip),%xmm0
call   1030 <fabs@plt>
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x5c(%rbp)
jmp    16d8 <slasv2+0x5a8>
movss  0x2986(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0x5c(%rbp)
movss  -0x58(%rbp),%xmm0
movss  -0x5c(%rbp),%xmm1
divss  %xmm1,%xmm0
movss  0x296e(%rip),%xmm1
divss  0x2972(%rip),%xmm1
addss  %xmm1,%xmm0
movss  %xmm0,0x2966(%rip)
jmp    175f <slasv2+0x62f>
movss  0x294d(%rip),%xmm0
movss  0x294d(%rip),%xmm1
addss  0x2949(%rip),%xmm1
divss  %xmm1,%xmm0
movss  0x2931(%rip),%xmm1
movss  0x292d(%rip),%xmm2
addss  0x291d(%rip),%xmm2
divss  %xmm2,%xmm1
addss  %xmm1,%xmm0
movss  0x8b5(%rip),%xmm1
addss  0x28fd(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,0x2909(%rip)
movss  0x2901(%rip),%xmm0
movss  0x28f9(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  0x891(%rip),%xmm1
addss  %xmm1,%xmm0
call   1050 <sqrt@plt>
movss  %xmm0,0x28cc(%rip)
movss  0x870(%rip),%xmm0
divss  0x28bc(%rip),%xmm0
movss  %xmm0,0x28f4(%rip)
movss  0x28bc(%rip),%xmm0
divss  0x28a4(%rip),%xmm0
movss  %xmm0,0x28e4(%rip)
movss  0x28d4(%rip),%xmm1
movss  0x28d4(%rip),%xmm0
movss  0x2888(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
divss  0x286c(%rip),%xmm0
movss  %xmm0,0x28a8(%rip)
movss  0x2890(%rip),%xmm0
divss  0x2880(%rip),%xmm0
mulss  0x289c(%rip),%xmm0
divss  0x2844(%rip),%xmm0
movss  %xmm0,0x2888(%rip)
jmp    1819 <slasv2+0x6e9>
cmpl   $0x0,0x282c(%rip)
je     186b <slasv2+0x73b>
movss  0x2872(%rip),%xmm0
mov    -0x40(%rbp),%rax
movss  %xmm0,(%rax)
movss  0x285a(%rip),%xmm0
mov    -0x38(%rbp),%rax
movss  %xmm0,(%rax)
movss  0x284e(%rip),%xmm0
mov    -0x30(%rbp),%rax
movss  %xmm0,(%rax)
movss  0x2836(%rip),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,(%rax)
jmp    18ab <slasv2+0x77b>
movss  0x2821(%rip),%xmm0
mov    -0x40(%rbp),%rax
movss  %xmm0,(%rax)
movss  0x2819(%rip),%xmm0
mov    -0x38(%rbp),%rax
movss  %xmm0,(%rax)
movss  0x2805(%rip),%xmm0
mov    -0x30(%rbp),%rax
movss  %xmm0,(%rax)
movss  0x27fd(%rip),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,(%rax)
cmpl   $0x1,0x2792(%rip)
jne    19ba <slasv2+0x88a>
mov    -0x30(%rbp),%rax
xorps  %xmm0,%xmm0
ucomiss (%rax),%xmm0
jbe    18ec <slasv2+0x7bc>
movss  0x276c(%rip),%xmm0
call   1030 <fabs@plt>
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x60(%rbp)
jmp    18fe <slasv2+0x7ce>
movss  0x2748(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0x60(%rbp)
movss  -0x60(%rbp),%xmm0
movss  %xmm0,-0x64(%rbp)
mov    -0x40(%rbp),%rax
xorps  %xmm0,%xmm0
ucomiss (%rax),%xmm0
jbe    193c <slasv2+0x80c>
movss  0x271c(%rip),%xmm0
call   1030 <fabs@plt>
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x68(%rbp)
jmp    194e <slasv2+0x81e>
movss  0x26f8(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0x68(%rbp)
movss  -0x64(%rbp),%xmm0
movss  -0x68(%rbp),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x6c(%rbp)
xorps  %xmm0,%xmm0
ucomiss -0x4(%rbp),%xmm0
jbe    1992 <slasv2+0x862>
movss  0x26c6(%rip),%xmm0
call   1030 <fabs@plt>
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x70(%rbp)
jmp    19a4 <slasv2+0x874>
movss  0x26a2(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0x70(%rbp)
movss  -0x6c(%rbp),%xmm0
movss  -0x70(%rbp),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,0x26b2(%rip)
cmpl   $0x2,0x2683(%rip)
jne    1ad2 <slasv2+0x9a2>
mov    -0x28(%rbp),%rax
xorps  %xmm0,%xmm0
ucomiss (%rax),%xmm0
jbe    19fb <slasv2+0x8cb>
movss  0x265d(%rip),%xmm0
call   1030 <fabs@plt>
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x74(%rbp)
jmp    1a0d <slasv2+0x8dd>
movss  0x2639(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0x74(%rbp)
movss  -0x74(%rbp),%xmm0
movss  %xmm0,-0x78(%rbp)
mov    -0x40(%rbp),%rax
xorps  %xmm0,%xmm0
ucomiss (%rax),%xmm0
jbe    1a4b <slasv2+0x91b>
movss  0x260d(%rip),%xmm0
call   1030 <fabs@plt>
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x7c(%rbp)
jmp    1a5d <slasv2+0x92d>
movss  0x25e9(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0x7c(%rbp)
movss  -0x78(%rbp),%xmm0
movss  -0x7c(%rbp),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x80(%rbp)
xorps  %xmm0,%xmm0
ucomiss -0x8(%rbp),%xmm0
jbe    1aa4 <slasv2+0x974>
movss  0x25b7(%rip),%xmm0
call   1030 <fabs@plt>
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x84(%rbp)
ff
jmp    1ab9 <slasv2+0x989>
movss  0x2590(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0x84(%rbp)
ff
movss  -0x80(%rbp),%xmm0
movss  -0x84(%rbp),%xmm1
ff
mulss  %xmm1,%xmm0
movss  %xmm0,0x259a(%rip)
cmpl   $0x3,0x256b(%rip)
jne    1c08 <slasv2+0xad8>
mov    -0x28(%rbp),%rax
xorps  %xmm0,%xmm0
ucomiss (%rax),%xmm0
jbe    1b16 <slasv2+0x9e6>
movss  0x2545(%rip),%xmm0
call   1030 <fabs@plt>
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
jmp    1b2b <slasv2+0x9fb>
movss  0x251e(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0x88(%rbp)
ff
movss  -0x88(%rbp),%xmm0
ff
movss  %xmm0,-0x8c(%rbp)
ff
mov    -0x38(%rbp),%rax
xorps  %xmm0,%xmm0
ucomiss (%rax),%xmm0
jbe    1b72 <slasv2+0xa42>
movss  0x24e9(%rip),%xmm0
call   1030 <fabs@plt>
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x90(%rbp)
ff
jmp    1b87 <slasv2+0xa57>
movss  0x24c2(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0x90(%rbp)
ff
movss  -0x8c(%rbp),%xmm0
ff
movss  -0x90(%rbp),%xmm1
ff
mulss  %xmm1,%xmm0
movss  %xmm0,-0x94(%rbp)
ff
xorps  %xmm0,%xmm0
ucomiss -0xc(%rbp),%xmm0
jbe    1bd7 <slasv2+0xaa7>
movss  0x2484(%rip),%xmm0
call   1030 <fabs@plt>
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x98(%rbp)
ff
jmp    1bec <slasv2+0xabc>
movss  0x245d(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0x98(%rbp)
ff
movss  -0x94(%rbp),%xmm0
ff
movss  -0x98(%rbp),%xmm1
ff
mulss  %xmm1,%xmm0
movss  %xmm0,0x2464(%rip)
xorps  %xmm0,%xmm0
ucomiss 0x245a(%rip),%xmm0
jbe    1c3f <slasv2+0xb0f>
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm0
call   1030 <fabs@plt>
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
jmp    1c54 <slasv2+0xb24>
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0x9c(%rbp)
ff
movss  -0x9c(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movss  %xmm0,(%rax)
movss  0x2400(%rip),%xmm0
movss  %xmm0,-0xa0(%rbp)
ff
xorps  %xmm0,%xmm0
ucomiss -0x4(%rbp),%xmm0
jbe    1ca8 <slasv2+0xb78>
movss  0x23b3(%rip),%xmm0
call   1030 <fabs@plt>
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0xa4(%rbp)
ff
jmp    1cbd <slasv2+0xb8d>
movss  0x238c(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0xa4(%rbp)
ff
movss  -0xa0(%rbp),%xmm0
ff
movss  -0xa4(%rbp),%xmm1
ff
mulss  %xmm1,%xmm0
movss  %xmm0,-0xa8(%rbp)
ff
xorps  %xmm0,%xmm0
ucomiss -0xc(%rbp),%xmm0
jbe    1d0d <slasv2+0xbdd>
movss  0x234e(%rip),%xmm0
call   1030 <fabs@plt>
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0xac(%rbp)
ff
jmp    1d22 <slasv2+0xbf2>
movss  0x2327(%rip),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0xac(%rbp)
ff
movss  -0xa8(%rbp),%xmm0
ff
movss  -0xac(%rbp),%xmm1
ff
mulss  %xmm1,%xmm0
movss  %xmm0,-0x44(%rbp)
xorps  %xmm0,%xmm0
ucomiss -0x44(%rbp),%xmm0
jbe    1d6f <slasv2+0xc3f>
mov    -0x18(%rbp),%rax
movss  (%rax),%xmm0
call   1030 <fabs@plt>
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0xb0(%rbp)
ff
jmp    1d84 <slasv2+0xc54>
mov    -0x18(%rbp),%rax
movss  (%rax),%xmm0
call   1030 <fabs@plt>
movss  %xmm0,-0xb0(%rbp)
ff
movss  -0xb0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movss  %xmm0,(%rax)
add    $0xb0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<slasv2>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x48,%rsp
mov    %r9,%r15
mov    %r8,%r12
mov    %rcx,%r13
mov    %rdx,%rbp
mov    %rsi,%rbx
mov    %rdi,%r14
movaps %xmm0,%xmm5
movss  %xmm0,0x2f19(%rip)
movaps 0xead(%rip),%xmm8
movaps %xmm0,%xmm3
andps  %xmm8,%xmm3
movss  %xmm3,0x2ef6(%rip)
movss  %xmm2,0x2f02(%rip)
movaps %xmm2,%xmm4
andps  %xmm8,%xmm4
movss  %xmm4,0x2ee7(%rip)
xor    %eax,%eax
ucomiss %xmm3,%xmm4
movl   $0x1,0x2eac(%rip)
seta   %al
mov    %eax,0x2ea7(%rip)
jbe    11c6 <slasv2+0xa6>
movl   $0x3,0x2e97(%rip)
movss  %xmm2,0x2ebf(%rip)
movss  %xmm5,0x2ebf(%rip)
movss  %xmm4,0x2ea3(%rip)
movss  %xmm3,0x2ea3(%rip)
movaps %xmm2,%xmm9
movaps %xmm3,%xmm0
jmp    11d0 <slasv2+0xb0>
movaps %xmm5,%xmm9
movaps %xmm4,%xmm0
movaps %xmm3,%xmm4
movss  %xmm1,0x2e90(%rip)
movaps 0xe21(%rip),%xmm3
andps  %xmm1,%xmm3
movss  %xmm3,0x2e72(%rip)
xorps  %xmm7,%xmm7
ucomiss %xmm7,%xmm1
jne    123f <slasv2+0x11f>
jp     123f <slasv2+0x11f>
movss  %xmm0,(%r14)
movss  %xmm4,(%rbx)
movl   $0x3f800000,0x2e71(%rip)
movl   $0x3f800000,0x2e6b(%rip)
movl   $0x0,0x2e65(%rip)
movl   $0x0,0x2e5f(%rip)
movss  0xdf3(%rip),%xmm0
cmpl   $0x0,0x2e04(%rip)
jne    1665 <slasv2+0x545>
jmp    1668 <slasv2+0x548>
movb   $0x1,0x2e2e(%rip)
ucomiss %xmm4,%xmm3
movaps %xmm5,0x20(%rsp)
movaps %xmm2,0x10(%rsp)
movaps %xmm1,(%rsp)
jbe    12bc <slasv2+0x19c>
movl   $0x2,0x2dd1(%rip)
divss  %xmm3,%xmm4
movaps %xmm4,0x30(%rsp)
lea    0xdcd(%rip),%rdi
call   1030 <slamch@plt>
ucomiss 0x30(%rsp),%xmm0
jbe    12c1 <slasv2+0x1a1>
movb   $0x0,0x2dee(%rip)
movss  0x2dce(%rip),%xmm1
movss  %xmm1,(%rbx)
movss  0x2dc6(%rip),%xmm2
ucomiss 0xd7f(%rip),%xmm2
movss  0x2daf(%rip),%xmm0
jbe    13ce <slasv2+0x2ae>
divss  %xmm2,%xmm1
divss  %xmm1,%xmm0
jmp    13d6 <slasv2+0x2b6>
movaps %xmm1,%xmm6
jmp    1305 <slasv2+0x1e5>
cmpb   $0x0,0x2dac(%rip)
movaps 0x20(%rsp),%xmm5
movaps 0xd2b(%rip),%xmm8
movaps 0x10(%rsp),%xmm2
movaps (%rsp),%xmm1
je     1435 <slasv2+0x315>
movss  0x2d6c(%rip),%xmm4
movss  0x2d6c(%rip),%xmm0
movss  0x2d6c(%rip),%xmm6
movss  0x2d5f(%rip),%xmm9
movaps %xmm4,%xmm3
subss  %xmm0,%xmm3
movss  %xmm3,0x2d2c(%rip)
ucomiss %xmm4,%xmm3
jne    1325 <slasv2+0x205>
jp     1325 <slasv2+0x205>
movss  0xcfd(%rip),%xmm3
jmp    1329 <slasv2+0x209>
divss  %xmm4,%xmm3
movss  %xmm3,0x2d13(%rip)
divss  %xmm9,%xmm6
movss  %xmm6,0x2d0a(%rip)
movss  0xcde(%rip),%xmm0
subss  %xmm3,%xmm0
movss  %xmm0,0x2cfe(%rip)
mulss  %xmm6,%xmm6
movss  %xmm6,0x2d12(%rip)
mulss  %xmm0,%xmm0
addss  %xmm6,%xmm0
xorps  %xmm3,%xmm3
ucomiss %xmm3,%xmm0
jb     1377 <slasv2+0x257>
xorps  %xmm1,%xmm1
sqrtss %xmm0,%xmm1
jmp    1382 <slasv2+0x262>
call   1040 <sqrt@plt>
xorps  %xmm3,%xmm3
movaps %xmm0,%xmm1
movss  %xmm1,0x2cc2(%rip)
movss  0x2cb2(%rip),%xmm0
ucomiss %xmm3,%xmm0
jne    13ad <slasv2+0x28d>
jp     13ad <slasv2+0x28d>
movss  0x2ca7(%rip),%xmm0
andps  0xc58(%rip),%xmm0
jmp    1464 <slasv2+0x344>
mulss  %xmm0,%xmm0
addss  0x2cb7(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1457 <slasv2+0x337>
sqrtss %xmm0,%xmm0
jmp    145c <slasv2+0x33c>
divss  %xmm1,%xmm0
mulss  %xmm2,%xmm0
movaps 0x20(%rsp),%xmm5
movaps 0xc1d(%rip),%xmm8
movaps 0x10(%rsp),%xmm2
movaps (%rsp),%xmm1
movss  %xmm0,(%r14)
movl   $0x3f800000,0x2c7d(%rip)
movss  0x2c69(%rip),%xmm0
movss  0x2c5d(%rip),%xmm3
divss  %xmm3,%xmm0
movss  %xmm0,0x2c69(%rip)
movl   $0x3f800000,0x2c63(%rip)
movss  0x2c3b(%rip),%xmm0
divss  %xmm3,%xmm0
movss  %xmm0,0x2c47(%rip)
movss  0x2c3b(%rip),%xmm0
movss  0x2c3f(%rip),%xmm7
cmpl   $0x0,0x2bec(%rip)
jne    1665 <slasv2+0x545>
jmp    1668 <slasv2+0x548>
call   1040 <sqrt@plt>
movss  0x2be8(%rip),%xmm1
unpcklps %xmm0,%xmm1
movaps %xmm1,%xmm0
shufps $0x55,%xmm1,%xmm0
addss  %xmm1,%xmm0
mulss  0xbae(%rip),%xmm0
movss  %xmm0,0x2bba(%rip)
movss  0x2bd6(%rip),%xmm2
divss  %xmm0,%xmm2
movss  %xmm2,(%r14)
movss  0x2bbd(%rip),%xmm2
mulss  %xmm0,%xmm2
movss  %xmm2,(%rbx)
movss  0x2bc5(%rip),%xmm3
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm3
jne    150f <slasv2+0x3ef>
jp     150f <slasv2+0x3ef>
movss  0x2b87(%rip),%xmm0
ucomiss %xmm2,%xmm0
jne    154d <slasv2+0x42d>
jp     154d <slasv2+0x42d>
xorps  %xmm1,%xmm1
xor    %eax,%eax
ucomiss 0x2b8c(%rip),%xmm1
seta   %al
movss  0x2b85(%rip),%xmm0
lea    0xb46(%rip),%rcx
movss  (%rcx,%rax,4),%xmm2
movaps 0xb1a(%rip),%xmm3
xorps  %xmm2,%xmm3
cmpltss %xmm1,%xmm0
movaps %xmm0,%xmm1
andnps %xmm2,%xmm1
andps  %xmm3,%xmm0
orps   %xmm1,%xmm0
jmp    15ab <slasv2+0x48b>
movss  0x2b2d(%rip),%xmm2
movss  0x2b31(%rip),%xmm3
unpcklps %xmm2,%xmm3
addps  %xmm3,%xmm1
movss  0x2b1b(%rip),%xmm2
shufps $0x0,%xmm2,%xmm2
divps  %xmm1,%xmm2
movaps %xmm2,%xmm1
shufps $0x55,%xmm2,%xmm1
addss  %xmm2,%xmm1
addss  0xad9(%rip),%xmm0
mulss  %xmm1,%xmm0
jmp    15ab <slasv2+0x48b>
movss  0x2b0f(%rip),%xmm0
movss  0x2ae3(%rip),%xmm1
movaps 0xa9c(%rip),%xmm2
andps  %xmm1,%xmm2
orps   0xaa2(%rip),%xmm1
xorps  %xmm3,%xmm3
cmpltss %xmm3,%xmm0
andps  %xmm0,%xmm1
andnps %xmm2,%xmm0
orps   %xmm1,%xmm0
movss  0x2ac1(%rip),%xmm1
movss  0x2ad9(%rip),%xmm2
unpcklps %xmm1,%xmm2
movss  0x2ab6(%rip),%xmm1
unpcklps %xmm1,%xmm0
divps  %xmm0,%xmm2
movaps %xmm2,%xmm0
shufps $0x55,%xmm2,%xmm0
addss  %xmm2,%xmm0
movss  %xmm0,0x2a9d(%rip)
mulss  %xmm0,%xmm0
addss  0xa6d(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     15cd <slasv2+0x4ad>
sqrtss %xmm0,%xmm0
jmp    15d2 <slasv2+0x4b2>
call   1040 <sqrt@plt>
movaps 0x20(%rsp),%xmm5
movaps 0xa21(%rip),%xmm8
movaps 0x10(%rsp),%xmm2
movaps (%rsp),%xmm1
movss  %xmm0,0x2a54(%rip)
movss  0xa2c(%rip),%xmm3
divss  %xmm0,%xmm3
movss  %xmm3,0x2a78(%rip)
movss  0x2a44(%rip),%xmm7
divss  %xmm0,%xmm7
movss  %xmm7,0x2a6c(%rip)
movss  0x2a28(%rip),%xmm0
mulss  %xmm7,%xmm0
addss  %xmm3,%xmm0
movss  0x2a0c(%rip),%xmm4
divss  %xmm4,%xmm0
movss  0x2a30(%rip),%xmm3
divss  0x2a20(%rip),%xmm3
movss  %xmm0,0x2a2c(%rip)
mulss  %xmm7,%xmm3
divss  %xmm4,%xmm3
movss  %xmm3,0x2a24(%rip)
cmpl   $0x0,0x29d5(%rip)
je     1668 <slasv2+0x548>
movaps %xmm7,%xmm0
movss  %xmm0,(%r15)
lea    0x2a0c(%rip),%rax
lea    0x2a01(%rip),%rcx
mov    %rcx,%rdx
cmove  %rax,%rdx
movss  (%rdx),%xmm0
movss  %xmm0,(%r12)
cmove  %rcx,%rax
movss  (%rax),%xmm0
movss  %xmm0,0x0(%r13)
lea    0x29e3(%rip),%rax
lea    0x29d0(%rip),%rcx
cmove  %rax,%rcx
movss  (%rcx),%xmm0
movss  %xmm0,0x0(%rbp)
mov    0x2979(%rip),%eax
cmp    $0x1,%eax
je     170e <slasv2+0x5ee>
cmp    $0x2,%eax
je     174f <slasv2+0x62f>
cmp    $0x3,%eax
jne    17a0 <slasv2+0x680>
xorps  %xmm6,%xmm6
xor    %eax,%eax
ucomiss (%r12),%xmm6
seta   %al
lea    0x952(%rip),%rcx
movss  (%rcx,%rax,4),%xmm7
movaps 0x91e(%rip),%xmm3
cmpltss %xmm6,%xmm0
movaps %xmm0,%xmm4
andnps %xmm7,%xmm4
xorps  %xmm3,%xmm7
andps  %xmm0,%xmm7
orps   %xmm4,%xmm7
xorps  %xmm7,%xmm3
movaps %xmm2,%xmm1
jmp    1785 <slasv2+0x665>
movss  0x0(%r13),%xmm0
xorps  %xmm6,%xmm6
xor    %eax,%eax
ucomiss (%r15),%xmm6
seta   %al
lea    0x911(%rip),%rcx
movss  (%rcx,%rax,4),%xmm7
movaps 0x8dd(%rip),%xmm3
cmpltss %xmm6,%xmm0
movaps %xmm0,%xmm4
andnps %xmm7,%xmm4
xorps  %xmm3,%xmm7
andps  %xmm0,%xmm7
orps   %xmm4,%xmm7
xorps  %xmm7,%xmm3
movaps %xmm5,%xmm1
jmp    1785 <slasv2+0x665>
xorps  %xmm6,%xmm6
xor    %eax,%eax
ucomiss (%r15),%xmm6
seta   %al
lea    0x8d6(%rip),%rcx
movss  (%rcx,%rax,4),%xmm7
movaps 0x8a2(%rip),%xmm3
cmpltss %xmm6,%xmm0
movaps %xmm0,%xmm4
andnps %xmm7,%xmm4
xorps  %xmm3,%xmm7
andps  %xmm0,%xmm7
orps   %xmm4,%xmm7
xorps  %xmm7,%xmm3
cmpltss %xmm6,%xmm1
movaps %xmm1,%xmm0
andnps %xmm7,%xmm0
andps  %xmm3,%xmm1
orps   %xmm0,%xmm1
movss  %xmm1,0x28b6(%rip)
jmp    17a8 <slasv2+0x688>
movss  0x28ac(%rip),%xmm1
movss  (%rbx),%xmm7
movaps %xmm7,%xmm3
andps  %xmm8,%xmm3
movaps 0x856(%rip),%xmm0
orps   %xmm0,%xmm7
xorps  %xmm6,%xmm6
movaps %xmm1,%xmm4
cmpltss %xmm6,%xmm4
andps  %xmm4,%xmm7
andnps %xmm3,%xmm4
orps   %xmm7,%xmm4
movss  %xmm4,(%rbx)
movaps %xmm1,%xmm3
xorps  %xmm0,%xmm3
cmpltss %xmm6,%xmm5
andps  %xmm5,%xmm3
andnps %xmm1,%xmm5
orps   %xmm3,%xmm5
cmpltss %xmm6,%xmm2
movaps %xmm2,%xmm3
andnps %xmm5,%xmm3
xorps  %xmm0,%xmm5
andps  %xmm2,%xmm5
orps   %xmm3,%xmm5
movss  (%r14),%xmm2
andps  %xmm2,%xmm8
orps   %xmm0,%xmm2
cmpltss %xmm6,%xmm5
andps  %xmm5,%xmm2
andnps %xmm8,%xmm5
orps   %xmm2,%xmm5
movss  %xmm5,(%r14)
add    $0x48,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
@slasv2.pmax = internal unnamed_addr global i32 0
@slasv2.swap = internal unnamed_addr global i32 0
@slasv2.a = internal unnamed_addr global float 0.000000e+00
@slasv2.d = internal unnamed_addr global float 0.000000e+00
@slasv2.l = internal unnamed_addr global float 0.000000e+00
@slasv2.m = internal unnamed_addr global float 0.000000e+00
@slasv2.s = internal unnamed_addr global float 0.000000e+00
@slasv2.t = internal unnamed_addr global float 0.000000e+00
@slasv2.tsign = internal unnamed_addr global float 0.000000e+00
@slasv2.fa = internal unnamed_addr global float 0.000000e+00
@slasv2.ga = internal unnamed_addr global float 0.000000e+00
@slasv2.ha = internal unnamed_addr global float 0.000000e+00
@slasv2.ft = internal unnamed_addr global float 0.000000e+00
@slasv2.gt = internal unnamed_addr global float 0.000000e+00
@slasv2.ht = internal unnamed_addr global float 0.000000e+00
@slasv2.mm = internal unnamed_addr global float 0.000000e+00
@slasv2.gasmal = internal unnamed_addr global i1 false
@slasv2.clt = internal unnamed_addr global float 0.000000e+00
@slasv2.crt = internal unnamed_addr global float 0.000000e+00
@slasv2.slt = internal unnamed_addr global float 0.000000e+00
@slasv2.srt = internal unnamed_addr global float 0.000000e+00
@.str = [4 x i8] c"EPS\00"
define void @slasv2(float %0, float %1, float %2, float* nocapture %3, float* nocapture %4, float* nocapture %5, float* nocapture %6, float* nocapture %7, float* nocapture %8) {
store float %0, float* @slasv2.ft
%10 = tail call float @llvm.fabs.f32(float %0)
store float %10, float* @slasv2.fa
store float %2, float* @slasv2.ht
%11 = tail call float @llvm.fabs.f32(float %2)
store float %11, float* @slasv2.ha
store i32 1, i32* @slasv2.pmax
%12 = fcmp ogt float %11, %10
%13 = zext i1 %12 to i32
store i32 %13, i32* @slasv2.swap
br i1 %12, label %14, label %15
14: ; preds = %9
store i32 3, i32* @slasv2.pmax
store float %2, float* @slasv2.ft
store float %0, float* @slasv2.ht
store float %11, float* @slasv2.fa
store float %10, float* @slasv2.ha
br label %15
15: ; preds = %14, %9
%16 = phi float [ %2, %14 ], [ %0, %9 ]
%17 = phi float [ %10, %14 ], [ %11, %9 ]
%18 = phi float [ %11, %14 ], [ %10, %9 ]
store float %1, float* @slasv2.gt
%19 = tail call float @llvm.fabs.f32(float %1)
store float %19, float* @slasv2.ga
%20 = fcmp oeq float %1, 0.000000e+00
br i1 %20, label %21, label %22
21: ; preds = %15
store float %17, float* %3
store float %18, float* %4
store float 1.000000e+00, float* @slasv2.clt
store float 1.000000e+00, float* @slasv2.crt
store float 0.000000e+00, float* @slasv2.slt
store float 0.000000e+00, float* @slasv2.srt
br label %157
22: ; preds = %15
store i1 true, i1* @slasv2.gasmal
%23 = fcmp ogt float %19, %18
br i1 %23, label %24, label %56
24: ; preds = %22
store i32 2, i32* @slasv2.pmax
%25 = fdiv float %18, %19
%26 = tail call float @slamch(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%27 = fcmp olt float %25, %26
br i1 %27, label %28, label %46
28: ; preds = %24
store i1 false, i1* @slasv2.gasmal
%29 = load float, float* @slasv2.ga
store float %29, float* %4
%30 = load float, float* @slasv2.ha
%31 = fcmp ogt float %30, 1.000000e+00
%32 = load float, float* @slasv2.fa
br i1 %31, label %33, label %36
33: ; preds = %28
%34 = fdiv float %29, %30
%35 = fdiv float %32, %34
br label %39
36: ; preds = %28
%37 = fdiv float %32, %29
%38 = fmul float %30, %37
br label %39
39: ; preds = %33, %36
%40 = phi float [ %38, %36 ], [ %35, %33 ]
store float %40, float* %3
store float 1.000000e+00, float* @slasv2.clt
%41 = load float, float* @slasv2.ht
%42 = load float, float* @slasv2.gt
%43 = fdiv float %41, %42
store float %43, float* @slasv2.slt
store float 1.000000e+00, float* @slasv2.srt
%44 = load float, float* @slasv2.ft
%45 = fdiv float %44, %42
store float %45, float* @slasv2.crt
br label %48
46: ; preds = %24
%47 = load i1, i1* @slasv2.gasmal
br i1 %47, label %51, label %48
48: ; preds = %39, %46
%49 = load float, float* @slasv2.clt
%50 = load float, float* @slasv2.srt
br label %157
51: ; preds = %46
%52 = load float, float* @slasv2.fa
%53 = load float, float* @slasv2.ha
%54 = load float, float* @slasv2.gt
%55 = load float, float* @slasv2.ft
br label %56
56: ; preds = %51, %22
%57 = phi float [ %55, %51 ], [ %16, %22 ]
%58 = phi float [ %54, %51 ], [ %1, %22 ]
%59 = phi float [ %53, %51 ], [ %17, %22 ]
%60 = phi float [ %52, %51 ], [ %18, %22 ]
%61 = fsub float %60, %59
store float %61, float* @slasv2.d
%62 = fcmp oeq float %61, %60
%63 = fdiv float %61, %60
%64 = select i1 %62, float 1.000000e+00, float %63
store float %64, float* @slasv2.l
%65 = fdiv float %58, %57
store float %65, float* @slasv2.m
%66 = fsub float 2.000000e+00, %64
store float %66, float* @slasv2.t
%67 = fmul float %65, %65
store float %67, float* @slasv2.mm
%68 = fmul float %66, %66
%69 = fadd float %68, %67
%70 = tail call float @sqrt(float %69)
store float %70, float* @slasv2.s
%71 = load float, float* @slasv2.l
%72 = fcmp oeq float %71, 0.000000e+00
br i1 %72, label %73, label %78
73: ; preds = %56
%74 = load float, float* @slasv2.m
%75 = tail call float @llvm.fabs.f32(float %74)
%76 = insertelement <2 x float> poison, float %70, i64 0
%77 = insertelement <2 x float> %76, float %75, i64 1
br label %85
78: ; preds = %56
%79 = load float, float* @slasv2.mm
%80 = tail call float @llvm.fmuladd.f32(float %71, float %71, float %79)
%81 = tail call float @sqrt(float %80)
%82 = load float, float* @slasv2.s
%83 = insertelement <2 x float> poison, float %82, i64 0
%84 = insertelement <2 x float> %83, float %81, i64 1
br label %85
85: ; preds = %78, %73
%86 = phi <2 x float> [ %84, %78 ], [ %77, %73 ]
%87 = shufflevector <2 x float> %86, <2 x float> poison, <2 x i32> <i32 1, i32 undef>
%88 = fadd <2 x float> %87, %86
%89 = extractelement <2 x float> %88, i64 0
%90 = fmul float %89, 5.000000e-01
store float %90, float* @slasv2.a
%91 = load float, float* @slasv2.ha
%92 = fdiv float %91, %90
store float %92, float* %3
%93 = load float, float* @slasv2.fa
%94 = fmul float %90, %93
store float %94, float* %4
%95 = load float, float* @slasv2.mm
%96 = fcmp oeq float %95, 0.000000e+00
br i1 %96, label %97, label %126
97: ; preds = %85
%98 = load float, float* @slasv2.l
%99 = fcmp oeq float %98, 0.000000e+00
br i1 %99, label %100, label %108
100: ; preds = %97
%101 = load float, float* @slasv2.ft
%102 = fcmp olt float %101, 0.000000e+00
%103 = select i1 %102, float -2.000000e+00, float 2.000000e+00
%104 = load float, float* @slasv2.gt
%105 = fcmp olt float %104, 0.000000e+00
%106 = fneg float %103
%107 = select i1 %105, float %106, float %103
br label %141
108: ; preds = %97
%109 = load float, float* @slasv2.gt
%110 = load float, float* @slasv2.ft
%111 = fcmp olt float %110, 0.000000e+00
%112 = load float, float* @slasv2.d
%113 = tail call float @llvm.fabs.f32(float %112)
%114 = fneg float %113
%115 = select i1 %111, float %114, float %113
%116 = load float, float* @slasv2.m
%117 = load float, float* @slasv2.t
%118 = insertelement <2 x float> poison, float %109, i64 0
%119 = insertelement <2 x float> %118, float %116, i64 1
%120 = insertelement <2 x float> poison, float %115, i64 0
%121 = insertelement <2 x float> %120, float %117, i64 1
%122 = fdiv <2 x float> %119, %121
%123 = shufflevector <2 x float> %122, <2 x float> poison, <2 x i32> <i32 1, i32 undef>
%124 = fadd <2 x float> %122, %123
%125 = extractelement <2 x float> %124, i64 0
br label %141
126: ; preds = %85
%127 = load float, float* @slasv2.m
%128 = load float, float* @slasv2.t
%129 = load float, float* @slasv2.l
%130 = insertelement <2 x float> poison, float %128, i64 0
%131 = insertelement <2 x float> %130, float %129, i64 1
%132 = fadd <2 x float> %86, %131
%133 = insertelement <2 x float> poison, float %127, i64 0
%134 = shufflevector <2 x float> %133, <2 x float> poison, <2 x i32> zeroinitializer
%135 = fdiv <2 x float> %134, %132
%136 = shufflevector <2 x float> %135, <2 x float> poison, <2 x i32> <i32 1, i32 undef>
%137 = fadd <2 x float> %135, %136
%138 = extractelement <2 x float> %137, i64 0
%139 = fadd float %90, 1.000000e+00
%140 = fmul float %139, %138
br label %141
141: ; preds = %100, %108, %126
%142 = phi float [ %107, %100 ], [ %125, %108 ], [ %140, %126 ]
store float %142, float* @slasv2.t
%143 = tail call float @llvm.fmuladd.f32(float %142, float %142, float 4.000000e+00)
%144 = tail call float @sqrt(float %143)
store float %144, float* @slasv2.l
%145 = fdiv float 2.000000e+00, %144
store float %145, float* @slasv2.crt
%146 = load float, float* @slasv2.t
%147 = fdiv float %146, %144
store float %147, float* @slasv2.srt
%148 = load float, float* @slasv2.m
%149 = tail call float @llvm.fmuladd.f32(float %147, float %148, float %145)
%150 = load float, float* @slasv2.a
%151 = fdiv float %149, %150
store float %151, float* @slasv2.clt
%152 = load float, float* @slasv2.ht
%153 = load float, float* @slasv2.ft
%154 = fdiv float %152, %153
%155 = fmul float %147, %154
%156 = fdiv float %155, %150
store float %156, float* @slasv2.slt
br label %157
157: ; preds = %48, %141, %21
%158 = phi float [ %50, %48 ], [ %147, %141 ], [ 0.000000e+00, %21 ]
%159 = phi float [ %49, %48 ], [ %151, %141 ], [ 1.000000e+00, %21 ]
%160 = load i32, i32* @slasv2.swap
%161 = icmp eq i32 %160, 0
%162 = select i1 %161, float %159, float %158
store float %162, float* %8
%163 = load float, float* @slasv2.slt
%164 = load float, float* @slasv2.crt
%165 = select i1 %161, float %163, float %164
store float %165, float* %7
%166 = load float, float* @slasv2.crt
%167 = load float, float* @slasv2.slt
%168 = select i1 %161, float %166, float %167
store float %168, float* %6
%169 = load float, float* @slasv2.srt
%170 = load float, float* @slasv2.clt
%171 = select i1 %161, float %169, float %170
store float %171, float* %5
%172 = load i32, i32* @slasv2.pmax
switch i32 %172, label %173 [
i32 1, label %175
i32 2, label %186
i32 3, label %196
]
173: ; preds = %157
%174 = load float, float* @slasv2.tsign
br label %206
175: ; preds = %157
%176 = load float, float* %6
%177 = fcmp olt float %176, 0.000000e+00
%178 = load float, float* %8
%179 = fcmp olt float %178, 0.000000e+00
%180 = select i1 %179, float -1.000000e+00, float 1.000000e+00
%181 = fneg float %180
%182 = select i1 %177, float %181, float %180
%183 = fcmp olt float %0, 0.000000e+00
%184 = fneg float %182
%185 = select i1 %183, float %184, float %182
store float %185, float* @slasv2.tsign
br label %206
186: ; preds = %157
%187 = fcmp olt float %171, 0.000000e+00
%188 = load float, float* %8
%189 = fcmp olt float %188, 0.000000e+00
%190 = select i1 %189, float -1.000000e+00, float 1.000000e+00
%191 = fneg float %190
%192 = select i1 %187, float %191, float %190
%193 = fcmp olt float %1, 0.000000e+00
%194 = fneg float %192
%195 = select i1 %193, float %194, float %192
store float %195, float* @slasv2.tsign
br label %206
196: ; preds = %157
%197 = fcmp olt float %171, 0.000000e+00
%198 = load float, float* %7
%199 = fcmp olt float %198, 0.000000e+00
%200 = select i1 %199, float -1.000000e+00, float 1.000000e+00
%201 = fneg float %200
%202 = select i1 %197, float %201, float %200
%203 = fcmp olt float %2, 0.000000e+00
%204 = fneg float %202
%205 = select i1 %203, float %204, float %202
store float %205, float* @slasv2.tsign
br label %206
206: ; preds = %175, %186, %173, %196
%207 = phi float [ %205, %196 ], [ %174, %173 ], [ %195, %186 ], [ %185, %175 ]
%208 = fcmp olt float %207, 0.000000e+00
%209 = load float, float* %4
%210 = tail call float @llvm.fabs.f32(float %209)
%211 = fneg float %210
%212 = select i1 %208, float %211, float %210
store float %212, float* %4
%213 = fcmp olt float %0, 0.000000e+00
%214 = fneg float %207
%215 = select i1 %213, float %214, float %207
%216 = fcmp olt float %2, 0.000000e+00
%217 = fneg float %215
%218 = select i1 %216, float %217, float %215
%219 = fcmp olt float %218, 0.000000e+00
%220 = load float, float* %3
%221 = tail call float @llvm.fabs.f32(float %220)
%222 = fneg float %221
%223 = select i1 %219, float %222, float %221
store float %223, float* %3
ret void
}