#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 */
int /*<<< orphan*/ assert(int);
double cbnd(double, double, double);
double cnd(double);
double exp(double);
double log(double);
double pow(double, double);
double sqrt(double);
double PartialFixedLB(int fCall, double S, double X, double t1, double T2,
                      double r, double b, double v) {
  double vv, erT2, b2, vst1, sT2, s1, ebrT2, d1, d2, e1, e2, f1, f2, x, result;
  assert(((S) == (S)) && (S) >= 0.000001 && (S) <= 1000000000000.0);
  assert(((X) == (X)) && (X) >= 0.000001 && (X) <= 1000000000000.0);
  assert(((t1) == (t1)) && (t1) >= (1.0 / (253.0 * 24.0)) && (t1) <= (20.0));
  assert(((T2) == (T2)) && (T2) >= (1.0 / (253.0 * 24.0)) && (T2) <= (20.0));
  assert(((r) == (r)) && (r) >= 0.0 && (r) <= 1000.0);
  assert(((b) == (b)) && (b) >= -1000.0 && (b) <= 1000.0);
  assert(((v) == (v)) && (v) >= 0.0000001 && v <= 100.99999);
  vv = v * v;
  erT2 = exp(-r * T2);
  b2 = b * 2.0;
  vst1 = v * sqrt(t1);
  sT2 = sqrt(T2);
  s1 = sqrt(1.0 - t1 / T2);
  ebrT2 = exp((b - r) * T2);
  d1 = (log(S / X) + (b + vv / 2.0) * T2) / (v * sT2);
  d2 = d1 - v * sT2;
  e1 = ((b + vv / 2.0) * (T2 - t1)) / (v * sqrt(T2 - t1));
  e2 = e1 - v * sqrt(T2 - t1);
  f1 = (log(S / X) + (b + vv / 2.0) * t1) / (vst1);
  f2 = f1 - vst1;
  x = S * erT2 * vv / b2;
  if (fCall) {
    result =
        S * ebrT2 * cnd(d1) - X * erT2 * cnd(d2) +
        x * (-pow((S / X), (-b2 / vv)) * cbnd(d1 - b2 * sT2 / v,
                                              -f1 + b2 * sqrt(t1) / v,
                                              -sqrt(t1 / T2)) +
             exp(b * T2) * cbnd(e1, d1, s1)) -
        S * ebrT2 * cbnd(-e1, d1, -s1) -
        X * erT2 * cbnd(f2, -d2, -sqrt(t1 / T2)) +
        exp(-b * (T2 - t1)) * (1.0 - vv / b2) * S * ebrT2 * cnd(f1) * cnd(-e2);
  } else {
    result =
        X * erT2 * cnd(-d2) - S * ebrT2 * cnd(-d1) +
        x * (pow((S / X), (-b2 / vv)) * cbnd(-d1 + b2 * sT2 / v,
                                             f1 - b2 * sqrt(t1) / v,
                                             -sqrt(t1 / T2)) -
             exp(b * T2) * cbnd(-e1, -d1, s1)) +
        S * ebrT2 * cbnd(e1, -d1, -s1) +
        X * erT2 * cbnd(-f2, d2, -sqrt(t1 / T2)) -
        exp(-b * (T2 - t1)) * (1.0 - vv / b2) * S * ebrT2 * cnd(-f1) * cnd(e2);
  }
  return result;
}


x86 assembly (clang, -O0):
<PartialFixedLB>:
push   %rbp
mov    %rsp,%rbp
sub    $0x240,%rsp
mov    %edi,-0x4(%rbp)
movsd  %xmm0,-0x10(%rbp)
movsd  %xmm1,-0x18(%rbp)
movsd  %xmm2,-0x20(%rbp)
movsd  %xmm3,-0x28(%rbp)
movsd  %xmm4,-0x30(%rbp)
movsd  %xmm5,-0x38(%rbp)
movsd  %xmm6,-0x40(%rbp)
movsd  -0x10(%rbp),%xmm0
xor    %eax,%eax
ucomisd -0x10(%rbp),%xmm0
mov    %al,-0xb9(%rbp)
jne    11f4 <PartialFixedLB+0x84>
jp     11f4 <PartialFixedLB+0x84>
movsd  -0x10(%rbp),%xmm0
xor    %eax,%eax
movsd  0xe32(%rip),%xmm1
ucomisd %xmm1,%xmm0
mov    %al,-0xb9(%rbp)
jb     11f4 <PartialFixedLB+0x84>
movsd  0xe22(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
setae  %al
mov    %al,-0xb9(%rbp)
mov    -0xb9(%rbp),%al
and    $0x1,%al
movzbl %al,%edi
call   1040 <assert@plt>
movsd  -0x18(%rbp),%xmm0
xor    %eax,%eax
ucomisd -0x18(%rbp),%xmm0
mov    %al,-0xba(%rbp)
jne    1257 <PartialFixedLB+0xe7>
jp     1257 <PartialFixedLB+0xe7>
movsd  -0x18(%rbp),%xmm0
xor    %eax,%eax
movsd  0xdcf(%rip),%xmm1
ucomisd %xmm1,%xmm0
mov    %al,-0xba(%rbp)
jb     1257 <PartialFixedLB+0xe7>
movsd  0xdbf(%rip),%xmm0
ucomisd -0x18(%rbp),%xmm0
setae  %al
mov    %al,-0xba(%rbp)
mov    -0xba(%rbp),%al
and    $0x1,%al
movzbl %al,%edi
call   1040 <assert@plt>
movsd  -0x20(%rbp),%xmm0
xor    %eax,%eax
ucomisd -0x20(%rbp),%xmm0
mov    %al,-0xbb(%rbp)
jne    12ba <PartialFixedLB+0x14a>
jp     12ba <PartialFixedLB+0x14a>
movsd  -0x20(%rbp),%xmm0
xor    %eax,%eax
movsd  0xd7c(%rip),%xmm1
ucomisd %xmm1,%xmm0
mov    %al,-0xbb(%rbp)
jb     12ba <PartialFixedLB+0x14a>
movsd  0xd6c(%rip),%xmm0
ucomisd -0x20(%rbp),%xmm0
setae  %al
mov    %al,-0xbb(%rbp)
mov    -0xbb(%rbp),%al
and    $0x1,%al
movzbl %al,%edi
call   1040 <assert@plt>
movsd  -0x28(%rbp),%xmm0
xor    %eax,%eax
ucomisd -0x28(%rbp),%xmm0
mov    %al,-0xbc(%rbp)
jne    131d <PartialFixedLB+0x1ad>
jp     131d <PartialFixedLB+0x1ad>
movsd  -0x28(%rbp),%xmm0
xor    %eax,%eax
movsd  0xd19(%rip),%xmm1
ucomisd %xmm1,%xmm0
mov    %al,-0xbc(%rbp)
jb     131d <PartialFixedLB+0x1ad>
movsd  0xd09(%rip),%xmm0
ucomisd -0x28(%rbp),%xmm0
setae  %al
mov    %al,-0xbc(%rbp)
mov    -0xbc(%rbp),%al
and    $0x1,%al
movzbl %al,%edi
call   1040 <assert@plt>
movsd  -0x30(%rbp),%xmm0
xor    %eax,%eax
ucomisd -0x30(%rbp),%xmm0
mov    %al,-0xbd(%rbp)
jne    137b <PartialFixedLB+0x20b>
jp     137b <PartialFixedLB+0x20b>
movsd  -0x30(%rbp),%xmm0
xor    %eax,%eax
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
mov    %al,-0xbd(%rbp)
jb     137b <PartialFixedLB+0x20b>
movsd  0xcb3(%rip),%xmm0
ucomisd -0x30(%rbp),%xmm0
setae  %al
mov    %al,-0xbd(%rbp)
mov    -0xbd(%rbp),%al
and    $0x1,%al
movzbl %al,%edi
call   1040 <assert@plt>
movsd  -0x38(%rbp),%xmm0
xor    %eax,%eax
ucomisd -0x38(%rbp),%xmm0
mov    %al,-0xbe(%rbp)
jne    13de <PartialFixedLB+0x26e>
jp     13de <PartialFixedLB+0x26e>
movsd  -0x38(%rbp),%xmm0
xor    %eax,%eax
movsd  0xc70(%rip),%xmm1
ucomisd %xmm1,%xmm0
mov    %al,-0xbe(%rbp)
jb     13de <PartialFixedLB+0x26e>
movsd  0xc50(%rip),%xmm0
ucomisd -0x38(%rbp),%xmm0
setae  %al
mov    %al,-0xbe(%rbp)
mov    -0xbe(%rbp),%al
and    $0x1,%al
movzbl %al,%edi
call   1040 <assert@plt>
movsd  -0x40(%rbp),%xmm0
xor    %eax,%eax
ucomisd -0x40(%rbp),%xmm0
mov    %al,-0xbf(%rbp)
jne    1441 <PartialFixedLB+0x2d1>
jp     1441 <PartialFixedLB+0x2d1>
movsd  -0x40(%rbp),%xmm0
xor    %eax,%eax
movsd  0xc15(%rip),%xmm1
ucomisd %xmm1,%xmm0
mov    %al,-0xbf(%rbp)
jb     1441 <PartialFixedLB+0x2d1>
movsd  0xc05(%rip),%xmm0
ucomisd -0x40(%rbp),%xmm0
setae  %al
mov    %al,-0xbf(%rbp)
mov    -0xbf(%rbp),%al
and    $0x1,%al
movzbl %al,%edi
call   1040 <assert@plt>
movsd  -0x40(%rbp),%xmm0
mulsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x30(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1050 <exp@plt>
movsd  %xmm0,-0x50(%rbp)
movsd  0xbad(%rip),%xmm0
mulsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
call   1090 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0xe8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x28(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  %xmm0,-0x68(%rbp)
movsd  -0x20(%rbp),%xmm1
divsd  -0x28(%rbp),%xmm1
movsd  0xb5f(%rip),%xmm0
subsd  %xmm1,%xmm0
call   1090 <sqrt@plt>
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
subsd  -0x30(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1050 <exp@plt>
movsd  %xmm0,-0x78(%rbp)
movsd  -0x10(%rbp),%xmm0
divsd  -0x18(%rbp),%xmm0
call   1060 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x38(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  0xb0c(%rip),%xmm3
divsd  %xmm3,%xmm2
addsd  %xmm2,%xmm0
movsd  -0x28(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x40(%rbp),%xmm1
mulsd  -0x68(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm1
movsd  0xa9c(%rip),%xmm2
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
subsd  -0x20(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
subsd  -0x20(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0xe0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0xd8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
movsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
subsd  -0x20(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0xd0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0xc8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
divsd  -0x18(%rbp),%xmm0
call   1060 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x38(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  0x9b5(%rip),%xmm3
divsd  %xmm3,%xmm2
addsd  %xmm2,%xmm0
movsd  -0x20(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
subsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
mulsd  -0x50(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
divsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
cmpl   $0x0,-0x4(%rbp)
je     1b2e <PartialFixedLB+0x9be>
movsd  -0x10(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x180(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
call   1070 <cnd@plt>
movsd  %xmm0,-0x188(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
mulsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x190(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
call   1070 <cnd@plt>
movsd  -0x190(%rbp),%xmm1
ff
movsd  -0x188(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x180(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
divsd  -0x18(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
divsd  -0x48(%rbp),%xmm1
call   1080 <pow@plt>
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
mulsd  -0x68(%rbp),%xmm1
divsd  -0x40(%rbp),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x170(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x178(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x178(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x170(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  -0x40(%rbp),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x28(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x168(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x160(%rbp),%xmm0
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
call   1030 <cbnd@plt>
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1050 <exp@plt>
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movsd  -0x80(%rbp),%xmm1
movsd  -0x70(%rbp),%xmm2
call   1030 <cbnd@plt>
movsd  -0x158(%rbp),%xmm3
ff
movsd  -0x150(%rbp),%xmm2
ff
movsd  -0x148(%rbp),%xmm4
ff
movsd  -0x140(%rbp),%xmm1
ff
movaps %xmm0,%xmm5
movsd  -0x138(%rbp),%xmm0
ff
mulsd  %xmm5,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x80(%rbp),%xmm1
movsd  -0x70(%rbp),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
call   1030 <cbnd@plt>
movsd  -0x130(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x128(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
mulsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x28(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x120(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x118(%rbp),%xmm0
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
call   1030 <cbnd@plt>
movsd  -0x110(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x108(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x28(%rbp),%xmm1
subsd  -0x20(%rbp),%xmm1
mulsd  %xmm1,%xmm0
call   1050 <exp@plt>
movsd  -0x48(%rbp),%xmm2
divsd  -0x58(%rbp),%xmm2
movsd  0x5a4(%rip),%xmm1
subsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
mulsd  -0x10(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
call   1070 <cnd@plt>
movaps %xmm0,%xmm1
movsd  -0x100(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
call   1070 <cnd@plt>
movsd  -0xf8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0xf0(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
jmp    1fb4 <PartialFixedLB+0xe44>
movsd  -0x18(%rbp),%xmm0
mulsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
call   1070 <cnd@plt>
movsd  %xmm0,-0x230(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x238(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
call   1070 <cnd@plt>
movsd  -0x238(%rbp),%xmm1
ff
movsd  -0x230(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x228(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1e8(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x1e0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
divsd  -0x18(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
divsd  -0x48(%rbp),%xmm1
call   1080 <pow@plt>
movsd  %xmm0,-0x1f8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x58(%rbp),%xmm1
mulsd  -0x68(%rbp),%xmm1
divsd  -0x40(%rbp),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x220(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x220(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x218(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
divsd  -0x40(%rbp),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x28(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x210(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x208(%rbp),%xmm0
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
call   1030 <cbnd@plt>
movsd  %xmm0,-0x1f0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1050 <exp@plt>
movsd  %xmm0,-0x200(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x80(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0x70(%rbp),%xmm2
call   1030 <cbnd@plt>
movsd  -0x200(%rbp),%xmm3
ff
movsd  -0x1f8(%rbp),%xmm2
ff
movsd  -0x1f0(%rbp),%xmm4
ff
movsd  -0x1e8(%rbp),%xmm1
ff
movaps %xmm0,%xmm5
movsd  -0x1e0(%rbp),%xmm0
ff
mulsd  %xmm5,%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1d8(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x1d0(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movsd  -0x80(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0x70(%rbp),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
call   1030 <cbnd@plt>
movsd  -0x1d8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x1d0(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
mulsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x1b0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x1c0(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x28(%rbp),%xmm0
call   1090 <sqrt@plt>
movsd  -0x1c8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x1c0(%rbp),%xmm0
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
call   1030 <cbnd@plt>
movsd  -0x1b8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x1b0(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x28(%rbp),%xmm1
subsd  -0x20(%rbp),%xmm1
mulsd  %xmm1,%xmm0
call   1050 <exp@plt>
movsd  -0x48(%rbp),%xmm2
divsd  -0x58(%rbp),%xmm2
movsd  0x130(%rip),%xmm1
subsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
mulsd  -0x10(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
call   1070 <cnd@plt>
movaps %xmm0,%xmm1
movsd  -0x1a8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x198(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
call   1070 <cnd@plt>
movsd  -0x1a0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x198(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
add    $0x240,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<PartialFixedLB>:
push   %rbx
sub    $0x160,%rsp
ucomisd %xmm0,%xmm0
setnp  %al
ucomisd 0xe79(%rip),%xmm0
setae  %cl
and    %al,%cl
movsd  0xe74(%rip),%xmm7
movsd  %xmm0,0x98(%rsp)
ucomisd %xmm0,%xmm7
movaps %xmm6,0x10(%rsp)
movaps %xmm5,0xa0(%rsp)
movaps %xmm4,0x50(%rsp)
movsd  %xmm3,(%rsp)
movsd  %xmm2,0x20(%rsp)
movsd  %xmm1,0x60(%rsp)
mov    %edi,%ebx
setae  %al
and    %cl,%al
movzbl %al,%edi
call   1040 <assert@plt>
movsd  0x60(%rsp),%xmm1
ucomisd %xmm1,%xmm1
setnp  %al
ucomisd 0xe18(%rip),%xmm1
setae  %cl
and    %al,%cl
movsd  0xe13(%rip),%xmm0
ucomisd %xmm1,%xmm0
setae  %al
and    %cl,%al
movzbl %al,%edi
call   1040 <assert@plt>
movsd  0x20(%rsp),%xmm0
ucomisd %xmm0,%xmm0
setnp  %al
ucomisd 0xdf5(%rip),%xmm0
setae  %cl
and    %al,%cl
movsd  0xdf0(%rip),%xmm1
ucomisd %xmm0,%xmm1
setae  %al
and    %cl,%al
movzbl %al,%edi
call   1040 <assert@plt>
movsd  (%rsp),%xmm0
ucomisd %xmm0,%xmm0
setnp  %al
ucomisd 0xdc3(%rip),%xmm0
setae  %cl
and    %al,%cl
movsd  0xdbe(%rip),%xmm1
ucomisd %xmm0,%xmm1
setae  %al
and    %cl,%al
movzbl %al,%edi
call   1040 <assert@plt>
xorpd  %xmm1,%xmm1
movapd 0x50(%rsp),%xmm0
ucomisd %xmm1,%xmm0
setae  %al
movsd  0xd9c(%rip),%xmm1
ucomisd %xmm0,%xmm1
setae  %cl
and    %al,%cl
movzbl %cl,%edi
call   1040 <assert@plt>
movapd 0xa0(%rsp),%xmm0
ucomisd %xmm0,%xmm0
setnp  %al
ucomisd 0xd7b(%rip),%xmm0
setae  %cl
and    %al,%cl
movsd  0xd66(%rip),%xmm1
ucomisd %xmm0,%xmm1
setae  %al
and    %cl,%al
movzbl %al,%edi
call   1040 <assert@plt>
movapd 0x10(%rsp),%xmm1
ucomisd %xmm1,%xmm1
setnp  %al
ucomisd 0xd50(%rip),%xmm1
setae  %cl
and    %al,%cl
movsd  0xd4b(%rip),%xmm0
ucomisd %xmm1,%xmm0
setae  %al
and    %cl,%al
movzbl %al,%edi
call   1040 <assert@plt>
movapd 0xd5a(%rip),%xmm0
xorpd  0x50(%rsp),%xmm0
mulsd  (%rsp),%xmm0
call   1050 <exp@plt>
movsd  0x20(%rsp),%xmm1
ucomisd 0xd2c(%rip),%xmm1
movapd %xmm0,0xd0(%rsp)
jb     1338 <PartialFixedLB+0x1c8>
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
jmp    1341 <PartialFixedLB+0x1d1>
movapd %xmm1,%xmm0
call   1090 <sqrt@plt>
movsd  %xmm0,0x40(%rsp)
movsd  (%rsp),%xmm1
ucomisd 0xcfc(%rip),%xmm1
jb     1363 <PartialFixedLB+0x1f3>
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
movapd %xmm1,%xmm2
jmp    1371 <PartialFixedLB+0x201>
movapd %xmm1,%xmm0
call   1090 <sqrt@plt>
movsd  (%rsp),%xmm2
movsd  0x20(%rsp),%xmm1
movsd  %xmm0,0x70(%rsp)
movapd 0x10(%rsp),%xmm0
mulsd  %xmm0,%xmm0
movapd %xmm0,0x110(%rsp)
divsd  %xmm2,%xmm1
movsd  0xca4(%rip),%xmm0
movsd  %xmm1,0x38(%rsp)
subsd  %xmm1,%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     13b6 <PartialFixedLB+0x246>
sqrtsd %xmm0,%xmm0
jmp    13bb <PartialFixedLB+0x24b>
call   1090 <sqrt@plt>
movapd %xmm0,0x130(%rsp)
movapd 0xa0(%rsp),%xmm0
subsd  0x50(%rsp),%xmm0
mulsd  (%rsp),%xmm0
call   1050 <exp@plt>
movsd  %xmm0,0xb0(%rsp)
movsd  0x98(%rsp),%xmm0
divsd  0x60(%rsp),%xmm0
movsd  %xmm0,0x90(%rsp)
call   1060 <log@plt>
movsd  0xc3d(%rip),%xmm1
mulsd  0x110(%rsp),%xmm1
addsd  0xa0(%rsp),%xmm1
movapd %xmm1,%xmm4
movsd  (%rsp),%xmm3
mulsd  %xmm3,%xmm4
addsd  %xmm0,%xmm4
movsd  0x70(%rsp),%xmm6
movapd 0x10(%rsp),%xmm2
mulsd  %xmm2,%xmm6
movapd 0xc1a(%rip),%xmm0
xorpd  %xmm2,%xmm0
movapd %xmm0,0x150(%rsp)
movapd %xmm3,%xmm2
subsd  0x20(%rsp),%xmm2
movapd %xmm2,%xmm3
movapd %xmm1,0x100(%rsp)
mulsd  %xmm1,%xmm3
sqrtsd %xmm2,%xmm7
ucomisd 0xbd6(%rip),%xmm2
movapd %xmm7,%xmm0
movsd  %xmm2,0xb8(%rsp)
movsd  %xmm6,0x8(%rsp)
jae    14d7 <PartialFixedLB+0x367>
movapd %xmm2,%xmm0
movapd %xmm3,0xc0(%rsp)
movapd %xmm4,0x50(%rsp)
movsd  %xmm7,0x80(%rsp)
call   1090 <sqrt@plt>
movsd  0x80(%rsp),%xmm7
movsd  0x8(%rsp),%xmm6
movapd 0x50(%rsp),%xmm4
movapd 0xc0(%rsp),%xmm3
movsd  0xb8(%rsp),%xmm2
divsd  %xmm6,%xmm4
movapd 0xa0(%rsp),%xmm1
addsd  %xmm1,%xmm1
movapd %xmm1,0x80(%rsp)
movapd 0x10(%rsp),%xmm1
movsd  0x40(%rsp),%xmm5
mulsd  %xmm1,%xmm5
movsd  %xmm5,0x40(%rsp)
mulsd  %xmm1,%xmm0
divsd  %xmm0,%xmm3
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
movapd %xmm3,0xc0(%rsp)
movapd %xmm4,0x50(%rsp)
jae    154f <PartialFixedLB+0x3df>
movsd  0xb8(%rsp),%xmm0
call   1090 <sqrt@plt>
movsd  0x8(%rsp),%xmm6
movapd 0x50(%rsp),%xmm4
movapd 0xc0(%rsp),%xmm3
movapd %xmm0,%xmm7
movapd %xmm4,%xmm0
subsd  %xmm6,%xmm0
movapd %xmm0,0xf0(%rsp)
movapd 0x150(%rsp),%xmm0
mulsd  %xmm7,%xmm0
addsd  %xmm3,%xmm0
movapd %xmm0,0x150(%rsp)
movsd  0x90(%rsp),%xmm0
call   1060 <log@plt>
movapd 0x100(%rsp),%xmm1
mulsd  0x20(%rsp),%xmm1
addsd  %xmm0,%xmm1
movsd  0x40(%rsp),%xmm0
divsd  %xmm0,%xmm1
movapd %xmm1,0x100(%rsp)
movapd %xmm1,%xmm3
subsd  %xmm0,%xmm3
movapd 0xd0(%rsp),%xmm1
movapd %xmm1,%xmm4
movsd  0x98(%rsp),%xmm0
mulsd  %xmm0,%xmm4
movapd 0x110(%rsp),%xmm2
mulsd  %xmm2,%xmm4
divsd  0x80(%rsp),%xmm4
movapd %xmm4,0x40(%rsp)
test   %ebx,%ebx
movapd %xmm3,0x140(%rsp)
je     16e2 <PartialFixedLB+0x572>
movsd  0xb0(%rsp),%xmm3
mulsd  %xmm0,%xmm3
movsd  %xmm3,0x120(%rsp)
movaps 0x50(%rsp),%xmm0
call   1070 <cnd@plt>
movsd  %xmm0,0x8(%rsp)
movapd 0xf0(%rsp),%xmm0
call   1070 <cnd@plt>
movapd 0xa27(%rip),%xmm2
movapd 0xd0(%rsp),%xmm1
xorpd  %xmm2,%xmm1
mulsd  0x60(%rsp),%xmm1
movapd %xmm1,0xd0(%rsp)
mulsd  %xmm1,%xmm0
movsd  %xmm0,0xe8(%rsp)
movsd  0x8(%rsp),%xmm0
mulsd  0x120(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movapd 0x80(%rsp),%xmm1
xorpd  %xmm2,%xmm1
divsd  0x110(%rsp),%xmm1
movsd  0x90(%rsp),%xmm0
call   1080 <pow@plt>
movsd  0x20(%rsp),%xmm2
movapd 0x80(%rsp),%xmm4
xorpd  0x9ae(%rip),%xmm0
movapd %xmm0,0x60(%rsp)
movsd  0x70(%rsp),%xmm3
mulsd  %xmm4,%xmm3
divsd  0x10(%rsp),%xmm3
xorpd  %xmm5,%xmm5
ucomisd %xmm5,%xmm2
jb     17cd <PartialFixedLB+0x65d>
xorps  %xmm1,%xmm1
sqrtsd %xmm2,%xmm1
jmp    17f3 <PartialFixedLB+0x683>
mulsd  0x60(%rsp),%xmm1
movapd %xmm1,0xd0(%rsp)
movaps 0xf0(%rsp),%xmm0
xorps  0x960(%rip),%xmm0
call   1070 <cnd@plt>
movsd  %xmm0,0x60(%rsp)
movsd  0xb0(%rsp),%xmm0
mulsd  0x98(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movapd 0x50(%rsp),%xmm0
xorpd  0x92f(%rip),%xmm0
movapd %xmm0,0x120(%rsp)
call   1070 <cnd@plt>
mulsd  0x8(%rsp),%xmm0
movsd  %xmm0,0xe8(%rsp)
movsd  0x60(%rsp),%xmm0
mulsd  0xd0(%rsp),%xmm0
movsd  %xmm0,0x60(%rsp)
movapd 0x80(%rsp),%xmm1
xorpd  0x8ec(%rip),%xmm1
divsd  0x110(%rsp),%xmm1
movsd  0x90(%rsp),%xmm0
call   1080 <pow@plt>
movsd  0x20(%rsp),%xmm2
movapd 0x80(%rsp),%xmm1
movsd  %xmm0,0x90(%rsp)
movsd  0x70(%rsp),%xmm3
mulsd  %xmm1,%xmm3
divsd  0x10(%rsp),%xmm3
xorpd  %xmm4,%xmm4
ucomisd %xmm4,%xmm2
jb     1a38 <PartialFixedLB+0x8c8>
xorps  %xmm0,%xmm0
sqrtsd %xmm2,%xmm0
jmp    1a5a <PartialFixedLB+0x8ea>
movapd %xmm2,%xmm0
movsd  %xmm3,0x70(%rsp)
call   1090 <sqrt@plt>
xorpd  %xmm5,%xmm5
movsd  0x70(%rsp),%xmm3
movapd 0x80(%rsp),%xmm4
movapd %xmm0,%xmm1
movsd  0x38(%rsp),%xmm0
movsd  0x8(%rsp),%xmm2
addsd  0xe8(%rsp),%xmm2
movsd  %xmm2,0x8(%rsp)
movapd 0x50(%rsp),%xmm6
subsd  %xmm3,%xmm6
mulsd  %xmm4,%xmm1
divsd  0x10(%rsp),%xmm1
subsd  0x100(%rsp),%xmm1
xorps  %xmm2,%xmm2
sqrtsd %xmm0,%xmm2
ucomisd %xmm5,%xmm0
movapd %xmm2,0x20(%rsp)
jae    1865 <PartialFixedLB+0x6f5>
movsd  0x38(%rsp),%xmm0
movsd  %xmm1,0x10(%rsp)
movapd %xmm6,0x70(%rsp)
call   1090 <sqrt@plt>
movapd 0x70(%rsp),%xmm6
movsd  0x10(%rsp),%xmm1
movapd %xmm0,%xmm2
movapd 0x7f3(%rip),%xmm0
xorpd  %xmm0,%xmm2
movapd %xmm6,%xmm0
call   1030 <cbnd@plt>
movsd  %xmm0,0x10(%rsp)
movsd  (%rsp),%xmm0
mulsd  0xa0(%rsp),%xmm0
call   1050 <exp@plt>
movsd  %xmm0,(%rsp)
movapd 0xc0(%rsp),%xmm0
movaps 0x50(%rsp),%xmm1
movaps 0x130(%rsp),%xmm2
call   1030 <cbnd@plt>
mulsd  (%rsp),%xmm0
movapd 0x60(%rsp),%xmm1
mulsd  0x10(%rsp),%xmm1
addsd  %xmm0,%xmm1
movapd 0x40(%rsp),%xmm0
mulsd  %xmm1,%xmm0
addsd  0x8(%rsp),%xmm0
movapd %xmm0,0x40(%rsp)
movapd 0x77a(%rip),%xmm1
movapd 0xc0(%rsp),%xmm0
xorpd  %xmm1,%xmm0
movapd 0x130(%rsp),%xmm2
xorpd  %xmm1,%xmm2
movaps 0x50(%rsp),%xmm1
call   1030 <cbnd@plt>
movsd  0x120(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movapd 0x40(%rsp),%xmm0
subsd  %xmm1,%xmm0
movapd %xmm0,0x40(%rsp)
movaps 0xf0(%rsp),%xmm1
xorps  0x72a(%rip),%xmm1
xorpd  %xmm0,%xmm0
movsd  0x38(%rsp),%xmm2
ucomisd %xmm0,%xmm2
movapd %xmm2,%xmm0
movapd 0x20(%rsp),%xmm2
jae    1969 <PartialFixedLB+0x7f9>
movaps %xmm1,0xf0(%rsp)
call   1090 <sqrt@plt>
movaps 0xf0(%rsp),%xmm1
movapd %xmm0,%xmm2
movapd 0x6ef(%rip),%xmm0
xorpd  %xmm0,%xmm2
movapd 0x140(%rsp),%xmm0
call   1030 <cbnd@plt>
mulsd  0xd0(%rsp),%xmm0
addsd  0x40(%rsp),%xmm0
movsd  %xmm0,(%rsp)
movapd 0xa0(%rsp),%xmm1
xorpd  0x6b8(%rip),%xmm1
movsd  0xb8(%rsp),%xmm0
mulsd  %xmm1,%xmm0
call   1050 <exp@plt>
movapd %xmm0,%xmm2
movapd 0x110(%rsp),%xmm1
divsd  0x80(%rsp),%xmm1
movsd  0x668(%rip),%xmm0
subsd  %xmm1,%xmm0
mulsd  %xmm0,%xmm2
mulsd  0x98(%rsp),%xmm2
mulsd  0xb0(%rsp),%xmm2
movsd  %xmm2,0x20(%rsp)
movapd 0x100(%rsp),%xmm0
call   1070 <cnd@plt>
mulsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
movapd 0x150(%rsp),%xmm0
xorpd  0x63d(%rip),%xmm0
call   1070 <cnd@plt>
mulsd  0x20(%rsp),%xmm0
addsd  (%rsp),%xmm0
jmp    1cb9 <PartialFixedLB+0xb49>
movapd %xmm2,%xmm0
movsd  %xmm3,0x70(%rsp)
call   1090 <sqrt@plt>
xorpd  %xmm4,%xmm4
movsd  0x70(%rsp),%xmm3
movapd 0x80(%rsp),%xmm1
movsd  0x60(%rsp),%xmm2
subsd  0xe8(%rsp),%xmm2
movsd  %xmm2,0x60(%rsp)
subsd  0x50(%rsp),%xmm3
mulsd  %xmm1,%xmm0
divsd  0x10(%rsp),%xmm0
movapd 0x100(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  0x38(%rsp),%xmm0
xorps  %xmm2,%xmm2
sqrtsd %xmm0,%xmm2
ucomisd %xmm4,%xmm0
movapd %xmm2,0x20(%rsp)
jae    1acc <PartialFixedLB+0x95c>
movsd  0x38(%rsp),%xmm0
movsd  %xmm3,0x70(%rsp)
movapd %xmm1,0x10(%rsp)
call   1090 <sqrt@plt>
movapd 0x10(%rsp),%xmm1
movsd  0x70(%rsp),%xmm3
movapd %xmm0,%xmm2
movapd 0x58c(%rip),%xmm0
xorpd  %xmm0,%xmm2
movapd %xmm3,%xmm0
call   1030 <cbnd@plt>
movsd  %xmm0,0x10(%rsp)
movsd  (%rsp),%xmm0
mulsd  0xa0(%rsp),%xmm0
call   1050 <exp@plt>
movsd  %xmm0,(%rsp)
movapd 0xc0(%rsp),%xmm0
xorpd  0x550(%rip),%xmm0
movaps 0x120(%rsp),%xmm1
movaps 0x130(%rsp),%xmm2
call   1030 <cbnd@plt>
mulsd  (%rsp),%xmm0
movsd  0x90(%rsp),%xmm1
mulsd  0x10(%rsp),%xmm1
subsd  %xmm0,%xmm1
movapd 0x40(%rsp),%xmm0
mulsd  %xmm1,%xmm0
addsd  0x60(%rsp),%xmm0
movapd %xmm0,0x40(%rsp)
movaps 0x130(%rsp),%xmm2
xorps  0x4fe(%rip),%xmm2
movapd 0xc0(%rsp),%xmm0
movaps 0x120(%rsp),%xmm1
call   1030 <cbnd@plt>
movsd  0x8(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x40(%rsp),%xmm1
movsd  %xmm1,0x8(%rsp)
movapd 0x140(%rsp),%xmm1
xorpd  0x4c1(%rip),%xmm1
xorpd  %xmm0,%xmm0
movsd  0x38(%rsp),%xmm2
ucomisd %xmm0,%xmm2
movapd %xmm2,%xmm0
movapd 0x20(%rsp),%xmm2
jae    1bd4 <PartialFixedLB+0xa64>
movapd %xmm1,0x140(%rsp)
call   1090 <sqrt@plt>
movapd 0x140(%rsp),%xmm1
movapd %xmm0,%xmm2
movapd 0x484(%rip),%xmm0
xorpd  %xmm0,%xmm2
movapd %xmm1,%xmm0
movaps 0xf0(%rsp),%xmm1
call   1030 <cbnd@plt>
mulsd  0xd0(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,(%rsp)
movapd 0xa0(%rsp),%xmm1
xorpd  0x44a(%rip),%xmm1
movsd  0xb8(%rsp),%xmm0
mulsd  %xmm1,%xmm0
call   1050 <exp@plt>
movsd  %xmm0,0x20(%rsp)
movapd 0x110(%rsp),%xmm1
divsd  0x80(%rsp),%xmm1
movsd  0x3f8(%rip),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0xa0(%rsp)
movaps 0x100(%rsp),%xmm0
xorps  0x3fc(%rip),%xmm0
call   1070 <cnd@plt>
movsd  %xmm0,0x10(%rsp)
movapd 0x150(%rsp),%xmm0
call   1070 <cnd@plt>
movsd  0xa0(%rsp),%xmm1
mulsd  0x20(%rsp),%xmm1
mulsd  0x98(%rsp),%xmm1
movapd %xmm1,%xmm2
movsd  0xb0(%rsp),%xmm1
mulsd  %xmm2,%xmm1
mulsd  0x10(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movsd  (%rsp),%xmm0
subsd  %xmm1,%xmm0
add    $0x160,%rsp
pop    %rbx
ret

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

LLVM IR (-O2):
define double @PartialFixedLB(i32 %0, double %1, double %2, double %3, double %4, double %5, double %6, double %7) {
%9 = fcmp ord double %1, 0.000000e+00
%10 = fcmp oge double %1, 0x3EB0C6F7A0B5ED8D
%11 = and i1 %9, %10
%12 = fcmp ole double %1, 1.000000e+12
%13 = and i1 %12, %11
%14 = zext i1 %13 to i32
%15 = tail call i32 @assert(i32 %14)
%16 = fcmp ord double %2, 0.000000e+00
%17 = fcmp oge double %2, 0x3EB0C6F7A0B5ED8D
%18 = and i1 %16, %17
%19 = fcmp ole double %2, 1.000000e+12
%20 = and i1 %19, %18
%21 = zext i1 %20 to i32
%22 = tail call i32 @assert(i32 %21)
%23 = fcmp ord double %3, 0.000000e+00
%24 = fcmp oge double %3, 0x3F2596179C29D2CE
%25 = and i1 %23, %24
%26 = fcmp ole double %3, 2.000000e+01
%27 = and i1 %26, %25
%28 = zext i1 %27 to i32
%29 = tail call i32 @assert(i32 %28)
%30 = fcmp ord double %4, 0.000000e+00
%31 = fcmp oge double %4, 0x3F2596179C29D2CE
%32 = and i1 %30, %31
%33 = fcmp ole double %4, 2.000000e+01
%34 = and i1 %33, %32
%35 = zext i1 %34 to i32
%36 = tail call i32 @assert(i32 %35)
%37 = fcmp oge double %5, 0.000000e+00
%38 = fcmp ole double %5, 1.000000e+03
%39 = and i1 %37, %38
%40 = zext i1 %39 to i32
%41 = tail call i32 @assert(i32 %40)
%42 = fcmp ord double %6, 0.000000e+00
%43 = fcmp oge double %6, -1.000000e+03
%44 = and i1 %42, %43
%45 = fcmp ole double %6, 1.000000e+03
%46 = and i1 %45, %44
%47 = zext i1 %46 to i32
%48 = tail call i32 @assert(i32 %47)
%49 = fcmp ord double %7, 0.000000e+00
%50 = fcmp oge double %7, 0x3E7AD7F29ABCAF48
%51 = and i1 %49, %50
%52 = fcmp ole double %7, 0x40593FFFD60E94EE
%53 = and i1 %52, %51
%54 = zext i1 %53 to i32
%55 = tail call i32 @assert(i32 %54)
%56 = fmul double %7, %7
%57 = fneg double %5
%58 = fmul double %57, %4
%59 = tail call double @exp(double %58)
%60 = fmul double %6, 2.000000e+00
%61 = tail call double @sqrt(double %3)
%62 = fmul double %61, %7
%63 = tail call double @sqrt(double %4)
%64 = fdiv double %3, %4
%65 = fsub double 1.000000e+00, %64
%66 = tail call double @sqrt(double %65)
%67 = fsub double %6, %5
%68 = fmul double %67, %4
%69 = tail call double @exp(double %68)
%70 = fdiv double %1, %2
%71 = tail call double @log(double %70)
%72 = fmul double %56, 5.000000e-01
%73 = fadd double %72, %6
%74 = tail call double @llvm.fmuladd.f64(double %73, double %4, double %71)
%75 = fmul double %63, %7
%76 = fdiv double %74, %75
%77 = fneg double %7
%78 = tail call double @llvm.fmuladd.f64(double %77, double %63, double %76)
%79 = fsub double %4, %3
%80 = fmul double %79, %73
%81 = tail call double @sqrt(double %79)
%82 = fmul double %81, %7
%83 = fdiv double %80, %82
%84 = tail call double @sqrt(double %79)
%85 = tail call double @llvm.fmuladd.f64(double %77, double %84, double %83)
%86 = tail call double @log(double %70)
%87 = tail call double @llvm.fmuladd.f64(double %73, double %3, double %86)
%88 = fdiv double %87, %62
%89 = fsub double %88, %62
%90 = fmul double %59, %1
%91 = fmul double %56, %90
%92 = fdiv double %91, %60
%93 = icmp eq i32 %0, 0
br i1 %93, label %145, label %94
94: ; preds = %8
%95 = fmul double %69, %1
%96 = tail call double @cnd(double %76)
%97 = tail call double @cnd(double %78)
%98 = fneg double %59
%99 = fmul double %98, %2
%100 = fmul double %99, %97
%101 = tail call double @llvm.fmuladd.f64(double %95, double %96, double %100)
%102 = fneg double %60
%103 = fdiv double %102, %56
%104 = tail call double @pow(double %70, double %103)
%105 = fneg double %104
%106 = fmul double %60, %63
%107 = fdiv double %106, %7
%108 = fsub double %76, %107
%109 = tail call double @sqrt(double %3)
%110 = fmul double %60, %109
%111 = fdiv double %110, %7
%112 = fsub double %111, %88
%113 = tail call double @sqrt(double %64)
%114 = fneg double %113
%115 = tail call double @cbnd(double %108, double %112, double %114)
%116 = fmul double %4, %6
%117 = tail call double @exp(double %116)
%118 = tail call double @cbnd(double %83, double %76, double %66)
%119 = fmul double %117, %118
%120 = tail call double @llvm.fmuladd.f64(double %105, double %115, double %119)
%121 = tail call double @llvm.fmuladd.f64(double %92, double %120, double %101)
%122 = fneg double %83
%123 = fneg double %66
%124 = tail call double @cbnd(double %122, double %76, double %123)
%125 = fneg double %95
%126 = tail call double @llvm.fmuladd.f64(double %125, double %124, double %121)
%127 = fneg double %78
%128 = tail call double @sqrt(double %64)
%129 = fneg double %128
%130 = tail call double @cbnd(double %89, double %127, double %129)
%131 = tail call double @llvm.fmuladd.f64(double %99, double %130, double %126)
%132 = fneg double %6
%133 = fmul double %79, %132
%134 = tail call double @exp(double %133)
%135 = fdiv double %56, %60
%136 = fsub double 1.000000e+00, %135
%137 = fmul double %136, %134
%138 = fmul double %137, %1
%139 = fmul double %69, %138
%140 = tail call double @cnd(double %88)
%141 = fmul double %140, %139
%142 = fneg double %85
%143 = tail call double @cnd(double %142)
%144 = tail call double @llvm.fmuladd.f64(double %141, double %143, double %131)
br label %198
145: ; preds = %8
%146 = fmul double %59, %2
%147 = fneg double %78
%148 = tail call double @cnd(double %147)
%149 = fmul double %69, %1
%150 = fneg double %76
%151 = tail call double @cnd(double %150)
%152 = fneg double %149
%153 = fmul double %151, %152
%154 = tail call double @llvm.fmuladd.f64(double %146, double %148, double %153)
%155 = fneg double %60
%156 = fdiv double %155, %56
%157 = tail call double @pow(double %70, double %156)
%158 = fmul double %60, %63
%159 = fdiv double %158, %7
%160 = fsub double %159, %76
%161 = tail call double @sqrt(double %3)
%162 = fmul double %60, %161
%163 = fdiv double %162, %7
%164 = fsub double %88, %163
%165 = tail call double @sqrt(double %64)
%166 = fneg double %165
%167 = tail call double @cbnd(double %160, double %164, double %166)
%168 = fmul double %4, %6
%169 = tail call double @exp(double %168)
%170 = fneg double %83
%171 = tail call double @cbnd(double %170, double %150, double %66)
%172 = fneg double %169
%173 = fmul double %171, %172
%174 = tail call double @llvm.fmuladd.f64(double %157, double %167, double %173)
%175 = tail call double @llvm.fmuladd.f64(double %92, double %174, double %154)
%176 = fneg double %66
%177 = tail call double @cbnd(double %83, double %150, double %176)
%178 = tail call double @llvm.fmuladd.f64(double %149, double %177, double %175)
%179 = fneg double %89
%180 = tail call double @sqrt(double %64)
%181 = fneg double %180
%182 = tail call double @cbnd(double %179, double %78, double %181)
%183 = tail call double @llvm.fmuladd.f64(double %146, double %182, double %178)
%184 = fneg double %6
%185 = fmul double %79, %184
%186 = tail call double @exp(double %185)
%187 = fdiv double %56, %60
%188 = fsub double 1.000000e+00, %187
%189 = fneg double %88
%190 = tail call double @cnd(double %189)
%191 = tail call double @cnd(double %85)
%192 = fneg double %186
%193 = fmul double %188, %192
%194 = fmul double %193, %1
%195 = fmul double %69, %194
%196 = fmul double %190, %195
%197 = tail call double @llvm.fmuladd.f64(double %196, double %191, double %183)
br label %198
198: ; preds = %145, %94
%199 = phi double [ %144, %94 ], [ %197, %145 ]
ret double %199
}