#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 */
double DBL_EPSILON;
double DBL_MIN;
long double fabs(double);
double pow(double, double);
double stub1(double, void *);
double stub10(double, double, double, double, double, int);
double stub2(double, double, double, double, double, int);
double stub3(double, void *);
double stub4(double, double, double, double, double, int);
double stub5(double, void *);
double stub6(double, double, double, double, double, int);
double stub7(double, void *);
double stub8(double, double, double, double, double, int);
double stub9(double, void *);
double G_K15W(double f(double, void *), void *cbData, double w(), double p1,
              double p2, double p3, double p4, int kp, double a, double b,
              double *abserr, double *resabs, double *resasc) {
  static long double XGK15[8] = {
      0.99145537112081263921, 0.94910791234275852453, 0.86486442335976907279,
      0.74153118559939443986, 0.58608723546769113029, 0.40584515137739716691,
      0.20778495500789846760, 0.00000000000000000000};
  static long double WGK15[8] = {
      0.02293532201052922496, 0.06309209262997855329, 0.10479001032225018384,
      0.14065325971552591875, 0.16900472663926790283, 0.19035057806478540991,
      0.20443294007529889241, 0.20948214108472782801};
  static long double WG7[4] = {0.12948496616886969327, 0.27970539148927666790,
                               0.38183005050511894495, 0.41795918367346938776};
  double fv1[7], fv2[7];
  double adir, adir1, adir2, centr, dhlgth;
  double fc, fsum, fval1, fval2, hlgth;
  double resg, resk, reskh, result;
  int j, jtw, jtwm1;
  centr = 0.5 * (a + b);
  hlgth = 0.5 * (b - a);
  dhlgth = fabs(hlgth);
  fc = (*f)(centr, cbData) * (*w)(centr, p1, p2, p3, p4, kp);
  resg = fc * WG7[3];
  resk = fc * WGK15[7];
  *resabs = fabs(resk);
  for (j = 0; j < 3; j++) {
    jtw = 2 * j + 1;
    adir = hlgth * XGK15[jtw];
    adir1 = centr - adir;
    adir2 = centr + adir;
    fval1 = (*f)(adir1, cbData) * (*w)(adir1, p1, p2, p3, p4, kp);
    fval2 = (*f)(adir2, cbData) * (*w)(adir2, p1, p2, p3, p4, kp);
    fv1[jtw] = fval1;
    fv2[jtw] = fval2;
    fsum = fval1 + fval2;
    resg += WG7[j] * fsum;
    resk += WGK15[jtw] * fsum;
    *resabs = *resabs + WGK15[jtw] * (fabs(fval1) + fabs(fval2));
  }
  for (j = 0; j < 4; j++) {
    jtwm1 = j * 2;
    adir = hlgth * XGK15[jtwm1];
    adir1 = centr - adir;
    adir2 = centr + adir;
    fval1 = (*f)(adir1, cbData) * (*w)(adir1, p1, p2, p3, p4, kp);
    fval2 = (*f)(adir2, cbData) * (*w)(adir2, p1, p2, p3, p4, kp);
    fv1[jtwm1] = fval1;
    fv2[jtwm1] = fval2;
    fsum = fval1 + fval2;
    resk = resk + WGK15[jtwm1] * fsum;
    *resabs = (*resabs) + WGK15[jtwm1] * (fabs(fval1) + fabs(fval2));
  }
  reskh = resk * 0.5;
  *resasc = WGK15[7] * fabs(fc - reskh);
  for (j = 0; j < 7; j++)
    *resasc =
        (*resasc) + WGK15[j] * (fabs(fv1[j] - reskh) + fabs(fv2[j] - reskh));
  result = resk * hlgth;
  *resabs = (*resabs) * dhlgth;
  *resasc = (*resasc) * dhlgth;
  *abserr = fabs((resk - resg) * hlgth);
  if ((*resasc != 0.0) && (*abserr != 0.0))
    *abserr = (*resasc) * (((1.0) < (pow((200.0 * (*abserr) / (*resasc)), 1.5)))
                               ? (1.0)
                               : (pow((200.0 * (*abserr) / (*resasc)), 1.5)));
  if (*resabs > DBL_MIN / (50.0 * DBL_EPSILON))
    *abserr = (((DBL_EPSILON * 50.0 * (*resabs)) > ((*abserr)))
                   ? (DBL_EPSILON * 50.0 * (*resabs))
                   : ((*abserr)));
  return result;
}


x86 assembly (clang, -O0):
<G_K15W>:
push   %rbp
mov    %rsp,%rbp
sub    $0x260,%rsp
mov    0x10(%rbp),%rax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
movsd  %xmm0,-0x20(%rbp)
movsd  %xmm1,-0x28(%rbp)
movsd  %xmm2,-0x30(%rbp)
movsd  %xmm3,-0x38(%rbp)
mov    %ecx,-0x3c(%rbp)
movsd  %xmm4,-0x48(%rbp)
movsd  %xmm5,-0x50(%rbp)
mov    %r8,-0x58(%rbp)
mov    %r9,-0x60(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
addsd  %xmm1,%xmm0
movsd  0xe86(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm2
subsd  %xmm2,%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x130(%rbp),%xmm0
ff
call   1030 <fabs@plt>
fstpl  -0x108(%rbp)
mov    -0x8(%rbp),%rax
movsd  -0x100(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rdi
call   *%rax
movsd  %xmm0,-0x198(%rbp)
ff
mov    -0x18(%rbp),%rcx
movsd  -0x100(%rbp),%xmm0
ff
movsd  -0x20(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm2
movsd  -0x30(%rbp),%xmm3
movsd  -0x38(%rbp),%xmm4
mov    -0x3c(%rbp),%edi
mov    $0x5,%al
call   *%rcx
movaps %xmm0,%xmm1
movsd  -0x198(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
fldl   -0x110(%rbp)
fldt   0x2f59(%rip)
fmulp  %st,%st(1)
fstpl  -0x138(%rbp)
fldl   -0x110(%rbp)
fldt   0x2f05(%rip)
fmulp  %st,%st(1)
fstpl  -0x140(%rbp)
movsd  -0x140(%rbp),%xmm0
ff
call   1030 <fabs@plt>
fstpl  -0x168(%rbp)
movsd  -0x168(%rbp),%xmm0
ff
mov    -0x60(%rbp),%rax
movsd  %xmm0,(%rax)
movl   $0x0,-0x154(%rbp)
cmpl   $0x3,-0x154(%rbp)
jge    14c0 <G_K15W+0x3a0>
mov    -0x154(%rbp),%ecx
mov    %ecx,%eax
lea    0x1(%rax,%rax,1),%eax
mov    %eax,-0x158(%rbp)
fldl   -0x130(%rbp)
movslq -0x158(%rbp),%rax
shl    $0x4,%rax
lea    0x2da9(%rip),%rcx
fldt   (%rax,%rcx,1)
fmulp  %st,%st(1)
fstpl  -0xe8(%rbp)
movsd  -0x100(%rbp),%xmm0
ff
movsd  -0xe8(%rbp),%xmm1
ff
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
movsd  -0xe8(%rbp),%xmm1
ff
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x8(%rbp),%rax
movsd  -0xf0(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rdi
call   *%rax
movsd  %xmm0,-0x1d8(%rbp)
ff
mov    -0x18(%rbp),%rcx
movsd  -0xf0(%rbp),%xmm0
ff
movsd  -0x20(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm2
movsd  -0x30(%rbp),%xmm3
movsd  -0x38(%rbp),%xmm4
mov    -0x3c(%rbp),%edi
mov    $0x5,%al
mov    %al,-0x1c9(%rbp)
call   *%rcx
movaps %xmm0,%xmm1
movsd  -0x1d8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
mov    -0x8(%rbp),%rax
movsd  -0xf8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rdi
call   *%rax
mov    -0x1c9(%rbp),%al
movsd  %xmm0,-0x1c8(%rbp)
ff
mov    -0x18(%rbp),%rcx
movsd  -0xf8(%rbp),%xmm0
ff
movsd  -0x20(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm2
movsd  -0x30(%rbp),%xmm3
movsd  -0x38(%rbp),%xmm4
mov    -0x3c(%rbp),%edi
call   *%rcx
movaps %xmm0,%xmm1
movsd  -0x1c8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
movslq -0x158(%rbp),%rax
movsd  %xmm0,-0xa0(%rbp,%rax,8)
ff ff
movsd  -0x128(%rbp),%xmm0
ff
movslq -0x158(%rbp),%rax
movsd  %xmm0,-0xe0(%rbp,%rax,8)
ff ff
movsd  -0x120(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm1
ff
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movslq -0x154(%rbp),%rax
shl    $0x4,%rax
lea    0x2d4e(%rip),%rcx
fldt   (%rax,%rcx,1)
fldl   -0x118(%rbp)
fldl   -0x138(%rbp)
fxch   %st(2)
fmulp  %st,%st(1)
faddp  %st,%st(1)
fstpl  -0x138(%rbp)
movslq -0x158(%rbp),%rax
shl    $0x4,%rax
lea    0x2ca1(%rip),%rcx
fldt   (%rax,%rcx,1)
fldl   -0x118(%rbp)
fldl   -0x140(%rbp)
fxch   %st(2)
fmulp  %st,%st(1)
faddp  %st,%st(1)
fstpl  -0x140(%rbp)
mov    -0x60(%rbp),%rax
fldl   (%rax)
fstpt  -0x1b0(%rbp)
movslq -0x158(%rbp),%rax
shl    $0x4,%rax
fldt   (%rax,%rcx,1)
fstpt  -0x1a4(%rbp)
movsd  -0x120(%rbp),%xmm0
ff
call   1030 <fabs@plt>
fstpt  -0x1bc(%rbp)
movsd  -0x128(%rbp),%xmm0
ff
call   1030 <fabs@plt>
fldt   -0x1bc(%rbp)
fldt   -0x1b0(%rbp)
fldt   -0x1a4(%rbp)
fxch   %st(2)
faddp  %st,%st(3)
fxch   %st(1)
fmulp  %st,%st(2)
faddp  %st,%st(1)
fstpl  -0x190(%rbp)
movsd  -0x190(%rbp),%xmm0
ff
mov    -0x60(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    1260 <G_K15W+0x140>
movl   $0x0,-0x154(%rbp)
cmpl   $0x4,-0x154(%rbp)
jge    16f7 <G_K15W+0x5d7>
mov    -0x154(%rbp),%eax
add    %eax,%eax
mov    %eax,-0x15c(%rbp)
fldl   -0x130(%rbp)
movslq -0x15c(%rbp),%rax
shl    $0x4,%rax
lea    0x2b43(%rip),%rcx
fldt   (%rax,%rcx,1)
fmulp  %st,%st(1)
fstpl  -0xe8(%rbp)
movsd  -0x100(%rbp),%xmm0
ff
movsd  -0xe8(%rbp),%xmm1
ff
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
movsd  -0xe8(%rbp),%xmm1
ff
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x8(%rbp),%rax
movsd  -0xf0(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rdi
call   *%rax
movsd  %xmm0,-0x218(%rbp)
ff
mov    -0x18(%rbp),%rcx
movsd  -0xf0(%rbp),%xmm0
ff
movsd  -0x20(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm2
movsd  -0x30(%rbp),%xmm3
movsd  -0x38(%rbp),%xmm4
mov    -0x3c(%rbp),%edi
mov    $0x5,%al
mov    %al,-0x209(%rbp)
call   *%rcx
movaps %xmm0,%xmm1
movsd  -0x218(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
mov    -0x8(%rbp),%rax
movsd  -0xf8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rdi
call   *%rax
mov    -0x209(%rbp),%al
movsd  %xmm0,-0x208(%rbp)
ff
mov    -0x18(%rbp),%rcx
movsd  -0xf8(%rbp),%xmm0
ff
movsd  -0x20(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm2
movsd  -0x30(%rbp),%xmm3
movsd  -0x38(%rbp),%xmm4
mov    -0x3c(%rbp),%edi
call   *%rcx
movaps %xmm0,%xmm1
movsd  -0x208(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
movslq -0x15c(%rbp),%rax
movsd  %xmm0,-0xa0(%rbp,%rax,8)
ff ff
movsd  -0x128(%rbp),%xmm0
ff
movslq -0x15c(%rbp),%rax
movsd  %xmm0,-0xe0(%rbp,%rax,8)
ff ff
movsd  -0x120(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm1
ff
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
fldl   -0x140(%rbp)
movslq -0x15c(%rbp),%rax
shl    $0x4,%rax
lea    0x2a62(%rip),%rcx
fldt   (%rax,%rcx,1)
fldl   -0x118(%rbp)
fmulp  %st,%st(1)
faddp  %st,%st(1)
fstpl  -0x140(%rbp)
mov    -0x60(%rbp),%rax
fldl   (%rax)
fstpt  -0x1f0(%rbp)
movslq -0x15c(%rbp),%rax
shl    $0x4,%rax
fldt   (%rax,%rcx,1)
fstpt  -0x1e4(%rbp)
movsd  -0x120(%rbp),%xmm0
ff
call   1030 <fabs@plt>
fstpt  -0x1fc(%rbp)
movsd  -0x128(%rbp),%xmm0
ff
call   1030 <fabs@plt>
fldt   -0x1fc(%rbp)
fldt   -0x1f0(%rbp)
fldt   -0x1e4(%rbp)
fxch   %st(2)
faddp  %st,%st(3)
fxch   %st(1)
fmulp  %st,%st(2)
faddp  %st,%st(1)
fstpl  -0x188(%rbp)
movsd  -0x188(%rbp),%xmm0
ff
mov    -0x60(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    14ca <G_K15W+0x3aa>
movsd  -0x140(%rbp),%xmm0
ff
movsd  0x8f9(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
fldt   0x2a17(%rip)
fstpt  -0x224(%rbp)
movsd  -0x110(%rbp),%xmm0
ff
movsd  -0x148(%rbp),%xmm1
ff
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
fldt   -0x224(%rbp)
fmulp  %st,%st(1)
fstpl  -0x170(%rbp)
movsd  -0x170(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movl   $0x0,-0x154(%rbp)
cmpl   $0x7,-0x154(%rbp)
jge    181e <G_K15W+0x6fe>
mov    0x10(%rbp),%rax
fldl   (%rax)
fstpt  -0x23c(%rbp)
movslq -0x154(%rbp),%rax
mov    %rax,%rcx
shl    $0x4,%rcx
lea    0x2932(%rip),%rdx
fldt   (%rcx,%rdx,1)
fstpt  -0x230(%rbp)
movsd  -0xa0(%rbp,%rax,8),%xmm0
ff ff
movsd  -0x148(%rbp),%xmm1
ff
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
fstpt  -0x248(%rbp)
movslq -0x154(%rbp),%rax
movsd  -0xe0(%rbp,%rax,8),%xmm0
ff ff
movsd  -0x148(%rbp),%xmm1
ff
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
fldt   -0x248(%rbp)
fldt   -0x23c(%rbp)
fldt   -0x230(%rbp)
fxch   %st(2)
faddp  %st,%st(3)
fxch   %st(1)
fmulp  %st,%st(2)
faddp  %st,%st(1)
fstpl  -0x180(%rbp)
movsd  -0x180(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    1760 <G_K15W+0x640>
movsd  -0x140(%rbp),%xmm0
ff
movsd  -0x130(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
mov    -0x60(%rbp),%rax
movsd  (%rax),%xmm0
movsd  -0x108(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  -0x108(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
movsd  -0x140(%rbp),%xmm0
ff
movsd  -0x138(%rbp),%xmm1
ff
subsd  %xmm1,%xmm0
movsd  -0x130(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
call   1030 <fabs@plt>
fstpl  -0x178(%rbp)
movsd  -0x178(%rbp),%xmm0
ff
mov    -0x58(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    18c5 <G_K15W+0x7a5>
jp     18c5 <G_K15W+0x7a5>
jmp    198a <G_K15W+0x86a>
mov    -0x58(%rbp),%rax
movsd  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    18e5 <G_K15W+0x7c5>
jp     18e5 <G_K15W+0x7c5>
jmp    198a <G_K15W+0x86a>
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x250(%rbp)
ff
mov    -0x58(%rbp),%rax
movsd  0x717(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    0x10(%rbp),%rax
divsd  (%rax),%xmm0
movsd  0x6fb(%rip),%xmm1
call   1040 <pow@plt>
movsd  0x6e6(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1941 <G_K15W+0x821>
movsd  0x6d4(%rip),%xmm0
movsd  %xmm0,-0x258(%rbp)
ff
jmp    196e <G_K15W+0x84e>
mov    -0x58(%rbp),%rax
movsd  0x6cb(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    0x10(%rbp),%rax
divsd  (%rax),%xmm0
movsd  0x6af(%rip),%xmm1
call   1040 <pow@plt>
movsd  %xmm0,-0x258(%rbp)
ff
movsd  -0x250(%rbp),%xmm0
ff
movsd  -0x258(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
mov    -0x58(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x60(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x263f(%rip),%rax
movsd  (%rax),%xmm1
movsd  0x67b(%rip),%xmm2
mov    0x263c(%rip),%rax
mulsd  (%rax),%xmm2
divsd  %xmm2,%xmm1
ucomisd %xmm1,%xmm0
jbe    1a2f <G_K15W+0x90f>
movsd  0x65a(%rip),%xmm0
mov    0x261b(%rip),%rax
mulsd  (%rax),%xmm0
mov    -0x60(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x58(%rbp),%rax
ucomisd (%rax),%xmm0
jbe    1a0f <G_K15W+0x8ef>
movsd  0x631(%rip),%xmm0
mov    0x25f2(%rip),%rax
mulsd  (%rax),%xmm0
mov    -0x60(%rbp),%rax
mulsd  (%rax),%xmm0
movsd  %xmm0,-0x260(%rbp)
ff
jmp    1a1f <G_K15W+0x8ff>
mov    -0x58(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x260(%rbp)
ff
movsd  -0x260(%rbp),%xmm0
ff
mov    -0x58(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x150(%rbp),%xmm0
ff
add    $0x260,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<G_K15W>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x238,%rsp
mov    %r9,%rbp
mov    %r8,0xb8(%rsp)
mov    %ecx,%ebx
movsd  %xmm3,0x8(%rsp)
movsd  %xmm2,0x10(%rsp)
movsd  %xmm1,0x60(%rsp)
movsd  %xmm0,0x58(%rsp)
mov    %rdx,%r13
mov    %rsi,%r15
mov    %rdi,%r12
movapd %xmm4,%xmm1
addsd  %xmm5,%xmm1
movsd  0xe91(%rip),%xmm0
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x68(%rsp)
subsd  %xmm4,%xmm5
mulsd  %xmm0,%xmm5
movsd  %xmm5,0x80(%rsp)
movapd %xmm5,%xmm0
call   1030 <fabs@plt>
fstpt  0x1b4(%rsp)
movsd  0x68(%rsp),%xmm0
mov    %r15,%rdi
call   *%r12
movsd  %xmm0,0x20(%rsp)
movsd  0x68(%rsp),%xmm0
movsd  0x58(%rsp),%xmm1
movsd  0x60(%rsp),%xmm2
movsd  0x10(%rsp),%xmm3
movsd  0x8(%rsp),%xmm4
mov    %ebx,%edi
mov    $0x5,%al
call   *%r13
mulsd  0x20(%rsp),%xmm0
movsd  %xmm0,0xb0(%rsp)
movsd  %xmm0,0x1a0(%rsp)
fldl   0x1a0(%rsp)
fld    %st(0)
fmull  0xe10(%rip)
fstpt  0x48(%rsp)
fmull  0xe0e(%rip)
fstpl  0x198(%rsp)
movsd  0x198(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
call   1030 <fabs@plt>
mov    %rbp,0x88(%rsp)
fstpl  0x0(%rbp)
movsd  0x80(%rsp),%xmm0
movsd  %xmm0,0x1a8(%rsp)
fldl   0x1a8(%rsp)
fldt   0x48(%rsp)
fstpl  0x190(%rsp)
xor    %r14d,%r14d
movsd  0x190(%rsp),%xmm0
fld    %st(0)
fstpt  0xa4(%rsp)
mov    0x88(%rsp),%rbp
nopl   0x0(%rax)
movsd  %xmm0,0x70(%rsp)
lea    0xdf3(%rip),%rax
fldt   0x10(%rax,%r14,2)
fmulp  %st,%st(1)
fstpl  0x178(%rsp)
movsd  0x178(%rsp),%xmm2
movsd  0x68(%rsp),%xmm1
movapd %xmm1,%xmm0
subsd  %xmm2,%xmm0
movsd  %xmm0,0x28(%rsp)
addsd  %xmm1,%xmm2
movsd  %xmm2,0x48(%rsp)
mov    %r15,%rdi
call   *%r12
movsd  %xmm0,0x38(%rsp)
movsd  0x28(%rsp),%xmm0
movsd  0x58(%rsp),%xmm1
movsd  0x60(%rsp),%xmm2
movsd  0x10(%rsp),%xmm3
movsd  0x8(%rsp),%xmm4
mov    %ebx,%edi
mov    $0x5,%al
call   *%r13
mulsd  0x38(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
movsd  0x48(%rsp),%xmm0
mov    %r15,%rdi
call   *%r12
movsd  %xmm0,0x38(%rsp)
movsd  0x48(%rsp),%xmm0
movsd  0x58(%rsp),%xmm1
movsd  0x60(%rsp),%xmm2
movsd  0x10(%rsp),%xmm3
movsd  0x8(%rsp),%xmm4
mov    %ebx,%edi
mov    $0x5,%al
call   *%r13
mulsd  0x38(%rsp),%xmm0
movsd  %xmm0,0x38(%rsp)
movsd  0x28(%rsp),%xmm1
movsd  %xmm1,0x208(%rsp,%r14,1)
movsd  %xmm0,0x1c8(%rsp,%r14,1)
movapd %xmm1,%xmm2
addsd  %xmm0,%xmm2
lea    0xe15(%rip),%rax
fldt   (%r14,%rax,1)
movsd  %xmm2,0x170(%rsp)
fldl   0x170(%rsp)
movsd  0x70(%rsp),%xmm0
movsd  %xmm0,0x188(%rsp)
fmul   %st,%st(1)
fxch   %st(1)
faddl  0x188(%rsp)
fstpt  0x48(%rsp)
lea    0xd5c(%rip),%rax
fldt   0x10(%rax,%r14,2)
fld    %st(0)
fstpt  0x70(%rsp)
movsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x180(%rsp)
fmulp  %st,%st(1)
faddl  0x180(%rsp)
fstpl  0x168(%rsp)
movsd  0x168(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
fldl   0x0(%rbp)
fstpt  0x98(%rsp)
movapd %xmm1,%xmm0
call   1030 <fabs@plt>
fstpt  0x28(%rsp)
movsd  0x38(%rsp),%xmm0
call   1030 <fabs@plt>
fldt   0xa4(%rsp)
fldt   0x28(%rsp)
faddp  %st,%st(2)
fldt   0x70(%rsp)
fmulp  %st,%st(2)
fldt   0x98(%rsp)
faddp  %st,%st(2)
fxch   %st(1)
fstpl  0x0(%rbp)
fldt   0x48(%rsp)
fstpl  0x160(%rsp)
movsd  0x160(%rsp),%xmm0
add    $0x10,%r14
cmp    $0x30,%r14
jne    1270 <G_K15W+0x150>
movsd  %xmm0,0x70(%rsp)
xor    %ebp,%ebp
mov    %ebx,0x94(%rsp)
xor    %ebx,%ebx
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
lea    0xc19(%rip),%rax
fldt   (%rbx,%rax,1)
fmulp  %st,%st(1)
fstpl  0x150(%rsp)
movsd  0x150(%rsp),%xmm1
movsd  0x68(%rsp),%xmm2
movapd %xmm2,%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x28(%rsp)
addsd  %xmm2,%xmm1
movsd  %xmm1,0x48(%rsp)
mov    %r15,%rdi
call   *%r12
movsd  %xmm0,0x38(%rsp)
movsd  0x28(%rsp),%xmm0
movsd  0x58(%rsp),%xmm1
movsd  0x60(%rsp),%xmm2
movsd  0x10(%rsp),%xmm3
movsd  0x8(%rsp),%xmm4
mov    0x94(%rsp),%r14d
mov    %r14d,%edi
mov    $0x5,%al
call   *%r13
mulsd  0x38(%rsp),%xmm0
movsd  %xmm0,0x38(%rsp)
movsd  0x48(%rsp),%xmm0
mov    %r15,%rdi
call   *%r12
movsd  %xmm0,0x28(%rsp)
movsd  0x48(%rsp),%xmm0
movsd  0x58(%rsp),%xmm1
movsd  0x60(%rsp),%xmm2
movsd  0x10(%rsp),%xmm3
movsd  0x8(%rsp),%xmm4
mov    %r14d,%edi
mov    $0x5,%al
call   *%r13
mulsd  0x28(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
movsd  0x38(%rsp),%xmm2
movsd  %xmm2,0x200(%rsp,%rbp,1)
movsd  %xmm0,0x1c0(%rsp,%rbp,1)
movapd %xmm2,%xmm3
addsd  %xmm0,%xmm3
movsd  0x20(%rsp),%xmm1
movsd  %xmm1,0x158(%rsp)
lea    0xba6(%rip),%rax
fldt   (%rbx,%rax,1)
fld    %st(0)
fstpt  0x48(%rsp)
movsd  %xmm3,0x148(%rsp)
fmull  0x148(%rsp)
faddl  0x158(%rsp)
fstpl  0x140(%rsp)
movsd  0x140(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
mov    %r12,%r14
mov    %r15,%r12
mov    %r13,%r15
mov    0x88(%rsp),%r13
fldl   0x0(%r13)
fstpt  0x98(%rsp)
movapd %xmm2,%xmm0
call   1030 <fabs@plt>
fstpt  0x38(%rsp)
movsd  0x28(%rsp),%xmm0
call   1030 <fabs@plt>
fldt   0xa4(%rsp)
fldt   0x38(%rsp)
faddp  %st,%st(2)
fldt   0x48(%rsp)
fmulp  %st,%st(2)
fldt   0x98(%rsp)
faddp  %st,%st(2)
fxch   %st(1)
fstpl  0x0(%r13)
mov    %r15,%r13
mov    %r12,%r15
mov    %r14,%r12
add    $0x20,%rbx
add    $0x10,%rbp
cmp    $0x40,%rbp
jne    1450 <G_K15W+0x330>
fstp   %st(0)
movsd  0xa05(%rip),%xmm1
mulsd  0x20(%rsp),%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0xb0(%rsp),%xmm0
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
fmull  0x9f1(%rip)
fstpl  0x130(%rsp)
movsd  0x130(%rsp),%xmm0
mov    0x270(%rsp),%r14
movsd  %xmm0,(%r14)
movsd  %xmm0,0x128(%rsp)
movsd  0x200(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
call   1030 <fabs@plt>
fstpt  0x10(%rsp)
movsd  0x1c0(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
call   1030 <fabs@plt>
fldt   0x10(%rsp)
faddp  %st,%st(1)
fmull  0x99b(%rip)
faddl  0x128(%rsp)
fstpl  0x120(%rsp)
movsd  0x120(%rsp),%xmm0
movsd  %xmm0,(%r14)
movsd  %xmm0,0x118(%rsp)
movsd  0x208(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
call   1030 <fabs@plt>
fstpt  0x10(%rsp)
movsd  0x1c8(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
call   1030 <fabs@plt>
fldt   0x10(%rsp)
faddp  %st,%st(1)
fmull  0x946(%rip)
faddl  0x118(%rsp)
fstpl  0x110(%rsp)
movsd  0x110(%rsp),%xmm0
movsd  %xmm0,(%r14)
movsd  %xmm0,0x108(%rsp)
movsd  0x210(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
call   1030 <fabs@plt>
fstpt  0x10(%rsp)
movsd  0x1d0(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
call   1030 <fabs@plt>
fldt   0x10(%rsp)
faddp  %st,%st(1)
fmull  0x8f1(%rip)
faddl  0x108(%rsp)
fstpl  0x100(%rsp)
movsd  0x100(%rsp),%xmm0
movsd  %xmm0,(%r14)
movsd  %xmm0,0xf8(%rsp)
movsd  0x218(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
call   1030 <fabs@plt>
fstpt  0x10(%rsp)
movsd  0x1d8(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
call   1030 <fabs@plt>
fldt   0x10(%rsp)
faddp  %st,%st(1)
fmull  0x89c(%rip)
faddl  0xf8(%rsp)
fstpl  0xf0(%rsp)
movsd  0xf0(%rsp),%xmm0
movsd  %xmm0,(%r14)
movsd  %xmm0,0xe8(%rsp)
movsd  0x220(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
call   1030 <fabs@plt>
fstpt  0x10(%rsp)
movsd  0x1e0(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
call   1030 <fabs@plt>
fldt   0x10(%rsp)
faddp  %st,%st(1)
fmull  0x847(%rip)
faddl  0xe8(%rsp)
fstpl  0xe0(%rsp)
movsd  0xe0(%rsp),%xmm0
movsd  %xmm0,(%r14)
movsd  %xmm0,0xd8(%rsp)
movsd  0x228(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
call   1030 <fabs@plt>
fstpt  0x10(%rsp)
movsd  0x1e8(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
call   1030 <fabs@plt>
fldt   0x10(%rsp)
faddp  %st,%st(1)
fmull  0x7f2(%rip)
faddl  0xd8(%rsp)
fstpl  0xd0(%rsp)
movsd  0xd0(%rsp),%xmm0
movsd  %xmm0,(%r14)
movsd  %xmm0,0xc8(%rsp)
movsd  0x230(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
call   1030 <fabs@plt>
fstpt  0x10(%rsp)
movsd  0x1f0(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
call   1030 <fabs@plt>
fldt   0x10(%rsp)
faddp  %st,%st(1)
fmull  0x79d(%rip)
faddl  0xc8(%rsp)
fstpl  (%r14)
fldt   0x1b4(%rsp)
fstpl  0x138(%rsp)
movsd  0x138(%rsp),%xmm0
mov    0x88(%rsp),%rbp
movsd  0x0(%rbp),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x0(%rbp)
mulsd  (%r14),%xmm0
movsd  %xmm0,(%r14)
movsd  0x20(%rsp),%xmm0
subsd  0x70(%rsp),%xmm0
mulsd  0x80(%rsp),%xmm0
call   1030 <fabs@plt>
fstpl  0xc0(%rsp)
movsd  0xc0(%rsp),%xmm0
mov    0xb8(%rsp),%rbx
movsd  %xmm0,(%rbx)
movsd  (%r14),%xmm2
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm2
jne    1933 <G_K15W+0x813>
jnp    199c <G_K15W+0x87c>
ucomisd %xmm1,%xmm0
jne    193b <G_K15W+0x81b>
jnp    199c <G_K15W+0x87c>
mulsd  0x70d(%rip),%xmm0
divsd  %xmm2,%xmm0
movsd  0x709(%rip),%xmm1
movsd  %xmm2,0x8(%rsp)
call   1040 <pow@plt>
movapd %xmm0,%xmm1
movsd  0x6fa(%rip),%xmm0
ucomisd %xmm0,%xmm1
ja     198a <G_K15W+0x86a>
movsd  (%rbx),%xmm0
mulsd  0x6d8(%rip),%xmm0
divsd  (%r14),%xmm0
movsd  0x6d3(%rip),%xmm1
call   1040 <pow@plt>
movsd  0x8(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,(%rbx)
movapd %xmm1,%xmm0
movsd  0x20(%rsp),%xmm4
movsd  0x0(%rbp),%xmm1
mov    0x263a(%rip),%rax
movsd  (%rax),%xmm2
mov    0x261f(%rip),%rax
mulsd  0x6a7(%rip),%xmm2
movsd  (%rax),%xmm3
divsd  %xmm2,%xmm3
ucomisd %xmm3,%xmm1
jbe    19db <G_K15W+0x8bb>
mulsd  %xmm2,%xmm1
maxsd  %xmm0,%xmm1
movsd  %xmm1,(%rbx)
movsd  0x80(%rsp),%xmm0
mulsd  %xmm4,%xmm0
add    $0x238,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
@G_K15W.XGK15 = internal unnamed_addr constant [8 x x86_fp80] [x86_fp80 0xK3FFEFDD004EA684D8800, x86_fp80 0xK3FFEF2F8BC73E3114800, x86_fp80 0xK3FFEDD67C13DCDD9F000, x86_fp80 0xK3FFEBDD4FCDF1D0EB000, x86_fp80 0xK3FFE9609D024EFD12000, x86_fp80 0xK3FFDCFCAEF88CFEB1000, x86_fp80 0xK3FFCD4C594497063B800, x86_fp80 0xK00000000000000000000]
@G_K15W.WGK15 = internal unnamed_addr constant [8 x x86_fp80] [x86_fp80 0xK3FF9BBE2DB3EABA38000, x86_fp80 0xK3FFB81366D53DB0E2000, x86_fp80 0xK3FFBD69C251A40A63000, x86_fp80 0xK3FFC9007687A37460800, x86_fp80 0xK3FFCAD0F933723EAE000, x86_fp80 0xK3FFCC2EB430E40758800, x86_fp80 0xK3FFCD156DE5F64E6C000, x86_fp80 0xK3FFCD6827C8438487800]
@G_K15W.WG7 = internal unnamed_addr constant [4 x x86_fp80] [x86_fp80 0xK3FFC8497B4FC136AB800, x86_fp80 0xK3FFD8F358B89EC322000, x86_fp80 0xK3FFDC37F3A771959E800, x86_fp80 0xK3FFDD5FEBF01E17D3000]
@DBL_MIN = global double 0.000000e+00
@DBL_EPSILON = global double 0.000000e+00
define double @G_K15W(double (double, i8*)* nocapture %0, i8* %1, double (...)* nocapture %2, double %3, double %4, double %5, double %6, i32 %7, double %8, double %9, double* nocapture %10, double* nocapture %11, double* nocapture %12) {
%14 = alloca [7 x double]
%15 = alloca [7 x double]
%16 = bitcast [7 x double]* %14 to i8*
%17 = bitcast [7 x double]* %15 to i8*
%18 = fadd double %8, %9
%19 = fmul double %18, 5.000000e-01
%20 = fsub double %9, %8
%21 = fmul double %20, 5.000000e-01
%22 = tail call x86_fp80 @fabs(double %21)
%23 = tail call double %0(double %19, i8* %1)
%24 = bitcast double (...)* %2 to double (double, double, double, double, double, i32, ...)*
%25 = tail call double (double, double, double, double, double, i32, ...) %24(double %19, double %3, double %4, double %5, double %6, i32 %7)
%26 = fmul double %23, %25
%27 = fpext double %26 to x86_fp80
%28 = fmul x86_fp80 %27, 0xK3FFDD5FEBF01E17D3000
%29 = fmul x86_fp80 %27, 0xK3FFCD6827C8438487800
%30 = fptrunc x86_fp80 %29 to double
%31 = tail call x86_fp80 @fabs(double %30)
%32 = fptrunc x86_fp80 %31 to double
store double %32, double* %11
%33 = fpext double %21 to x86_fp80
%34 = fptrunc x86_fp80 %28 to double
br label %35
35: ; preds = %13, %35
%36 = phi i64 [ 0, %13 ], [ %73, %35 ]
%37 = phi double [ %34, %13 ], [ %74, %35 ]
%38 = phi double [ %30, %13 ], [ %65, %35 ]
%39 = shl nuw nsw i64 %36, 1
%40 = or i64 %39, 1
%41 = getelementptr inbounds [8 x x86_fp80], [8 x x86_fp80]* @G_K15W.XGK15, i64 0, i64 %40
%42 = load x86_fp80, x86_fp80* %41
%43 = fmul x86_fp80 %42, %33
%44 = fptrunc x86_fp80 %43 to double
%45 = fsub double %19, %44
%46 = fadd double %19, %44
%47 = tail call double %0(double %45, i8* %1)
%48 = tail call double (double, double, double, double, double, i32, ...) %24(double %45, double %3, double %4, double %5, double %6, i32 %7)
%49 = fmul double %47, %48
%50 = tail call double %0(double %46, i8* %1)
%51 = tail call double (double, double, double, double, double, i32, ...) %24(double %46, double %3, double %4, double %5, double %6, i32 %7)
%52 = fmul double %50, %51
%53 = getelementptr inbounds [7 x double], [7 x double]* %14, i64 0, i64 %40
store double %49, double* %53
%54 = getelementptr inbounds [7 x double], [7 x double]* %15, i64 0, i64 %40
store double %52, double* %54
%55 = fadd double %49, %52
%56 = getelementptr inbounds [4 x x86_fp80], [4 x x86_fp80]* @G_K15W.WG7, i64 0, i64 %36
%57 = load x86_fp80, x86_fp80* %56
%58 = fpext double %55 to x86_fp80
%59 = fpext double %37 to x86_fp80
%60 = tail call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %57, x86_fp80 %58, x86_fp80 %59)
%61 = getelementptr inbounds [8 x x86_fp80], [8 x x86_fp80]* @G_K15W.WGK15, i64 0, i64 %40
%62 = load x86_fp80, x86_fp80* %61
%63 = fpext double %38 to x86_fp80
%64 = tail call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %62, x86_fp80 %58, x86_fp80 %63)
%65 = fptrunc x86_fp80 %64 to double
%66 = load double, double* %11
%67 = fpext double %66 to x86_fp80
%68 = tail call x86_fp80 @fabs(double %49)
%69 = tail call x86_fp80 @fabs(double %52)
%70 = fadd x86_fp80 %68, %69
%71 = tail call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %62, x86_fp80 %70, x86_fp80 %67)
%72 = fptrunc x86_fp80 %71 to double
store double %72, double* %11
%73 = add nuw nsw i64 %36, 1
%74 = fptrunc x86_fp80 %60 to double
%75 = icmp eq i64 %73, 3
br i1 %75, label %76, label %35
76: ; preds = %35, %76
%77 = phi i64 [ %108, %76 ], [ 0, %35 ]
%78 = phi double [ %100, %76 ], [ %65, %35 ]
%79 = shl nuw nsw i64 %77, 1
%80 = getelementptr inbounds [8 x x86_fp80], [8 x x86_fp80]* @G_K15W.XGK15, i64 0, i64 %79
%81 = load x86_fp80, x86_fp80* %80
%82 = fmul x86_fp80 %81, %33
%83 = fptrunc x86_fp80 %82 to double
%84 = fsub double %19, %83
%85 = fadd double %19, %83
%86 = tail call double %0(double %84, i8* %1)
%87 = tail call double (double, double, double, double, double, i32, ...) %24(double %84, double %3, double %4, double %5, double %6, i32 %7)
%88 = fmul double %86, %87
%89 = tail call double %0(double %85, i8* %1)
%90 = tail call double (double, double, double, double, double, i32, ...) %24(double %85, double %3, double %4, double %5, double %6, i32 %7)
%91 = fmul double %89, %90
%92 = getelementptr inbounds [7 x double], [7 x double]* %14, i64 0, i64 %79
store double %88, double* %92
%93 = getelementptr inbounds [7 x double], [7 x double]* %15, i64 0, i64 %79
store double %91, double* %93
%94 = fadd double %88, %91
%95 = fpext double %78 to x86_fp80
%96 = getelementptr inbounds [8 x x86_fp80], [8 x x86_fp80]* @G_K15W.WGK15, i64 0, i64 %79
%97 = load x86_fp80, x86_fp80* %96
%98 = fpext double %94 to x86_fp80
%99 = tail call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %97, x86_fp80 %98, x86_fp80 %95)
%100 = fptrunc x86_fp80 %99 to double
%101 = load double, double* %11
%102 = fpext double %101 to x86_fp80
%103 = tail call x86_fp80 @fabs(double %88)
%104 = tail call x86_fp80 @fabs(double %91)
%105 = fadd x86_fp80 %103, %104
%106 = tail call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %97, x86_fp80 %105, x86_fp80 %102)
%107 = fptrunc x86_fp80 %106 to double
store double %107, double* %11
%108 = add nuw nsw i64 %77, 1
%109 = icmp eq i64 %108, 4
br i1 %109, label %110, label %76
110: ; preds = %76
%111 = fmul double %100, 5.000000e-01
%112 = fsub double %26, %111
%113 = tail call x86_fp80 @fabs(double %112)
%114 = fmul x86_fp80 %113, 0xK3FFCD6827C8438487800
%115 = fptrunc x86_fp80 %114 to double
store double %115, double* %12
%116 = fpext double %115 to x86_fp80
%117 = getelementptr inbounds [7 x double], [7 x double]* %14, i64 0, i64 0
%118 = load double, double* %117
%119 = fsub double %118, %111
%120 = tail call x86_fp80 @fabs(double %119)
%121 = getelementptr inbounds [7 x double], [7 x double]* %15, i64 0, i64 0
%122 = load double, double* %121
%123 = fsub double %122, %111
%124 = tail call x86_fp80 @fabs(double %123)
%125 = fadd x86_fp80 %120, %124
%126 = tail call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %125, x86_fp80 0xK3FF9BBE2DB3EABA38000, x86_fp80 %116)
%127 = fptrunc x86_fp80 %126 to double
store double %127, double* %12
%128 = fpext double %127 to x86_fp80
%129 = getelementptr inbounds [7 x double], [7 x double]* %14, i64 0, i64 1
%130 = load double, double* %129
%131 = fsub double %130, %111
%132 = tail call x86_fp80 @fabs(double %131)
%133 = getelementptr inbounds [7 x double], [7 x double]* %15, i64 0, i64 1
%134 = load double, double* %133
%135 = fsub double %134, %111
%136 = tail call x86_fp80 @fabs(double %135)
%137 = fadd x86_fp80 %132, %136
%138 = tail call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %137, x86_fp80 0xK3FFB81366D53DB0E2000, x86_fp80 %128)
%139 = fptrunc x86_fp80 %138 to double
store double %139, double* %12
%140 = fpext double %139 to x86_fp80
%141 = getelementptr inbounds [7 x double], [7 x double]* %14, i64 0, i64 2
%142 = load double, double* %141
%143 = fsub double %142, %111
%144 = tail call x86_fp80 @fabs(double %143)
%145 = getelementptr inbounds [7 x double], [7 x double]* %15, i64 0, i64 2
%146 = load double, double* %145
%147 = fsub double %146, %111
%148 = tail call x86_fp80 @fabs(double %147)
%149 = fadd x86_fp80 %144, %148
%150 = tail call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %149, x86_fp80 0xK3FFBD69C251A40A63000, x86_fp80 %140)
%151 = fptrunc x86_fp80 %150 to double
store double %151, double* %12
%152 = fpext double %151 to x86_fp80
%153 = getelementptr inbounds [7 x double], [7 x double]* %14, i64 0, i64 3
%154 = load double, double* %153
%155 = fsub double %154, %111
%156 = tail call x86_fp80 @fabs(double %155)
%157 = getelementptr inbounds [7 x double], [7 x double]* %15, i64 0, i64 3
%158 = load double, double* %157
%159 = fsub double %158, %111
%160 = tail call x86_fp80 @fabs(double %159)
%161 = fadd x86_fp80 %156, %160
%162 = tail call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %161, x86_fp80 0xK3FFC9007687A37460800, x86_fp80 %152)
%163 = fptrunc x86_fp80 %162 to double
store double %163, double* %12
%164 = fpext double %163 to x86_fp80
%165 = getelementptr inbounds [7 x double], [7 x double]* %14, i64 0, i64 4
%166 = load double, double* %165
%167 = fsub double %166, %111
%168 = tail call x86_fp80 @fabs(double %167)
%169 = getelementptr inbounds [7 x double], [7 x double]* %15, i64 0, i64 4
%170 = load double, double* %169
%171 = fsub double %170, %111
%172 = tail call x86_fp80 @fabs(double %171)
%173 = fadd x86_fp80 %168, %172
%174 = tail call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %173, x86_fp80 0xK3FFCAD0F933723EAE000, x86_fp80 %164)
%175 = fptrunc x86_fp80 %174 to double
store double %175, double* %12
%176 = fpext double %175 to x86_fp80
%177 = getelementptr inbounds [7 x double], [7 x double]* %14, i64 0, i64 5
%178 = load double, double* %177
%179 = fsub double %178, %111
%180 = tail call x86_fp80 @fabs(double %179)
%181 = getelementptr inbounds [7 x double], [7 x double]* %15, i64 0, i64 5
%182 = load double, double* %181
%183 = fsub double %182, %111
%184 = tail call x86_fp80 @fabs(double %183)
%185 = fadd x86_fp80 %180, %184
%186 = tail call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %185, x86_fp80 0xK3FFCC2EB430E40758800, x86_fp80 %176)
%187 = fptrunc x86_fp80 %186 to double
store double %187, double* %12
%188 = fpext double %187 to x86_fp80
%189 = getelementptr inbounds [7 x double], [7 x double]* %14, i64 0, i64 6
%190 = load double, double* %189
%191 = fsub double %190, %111
%192 = tail call x86_fp80 @fabs(double %191)
%193 = getelementptr inbounds [7 x double], [7 x double]* %15, i64 0, i64 6
%194 = load double, double* %193
%195 = fsub double %194, %111
%196 = tail call x86_fp80 @fabs(double %195)
%197 = fadd x86_fp80 %192, %196
%198 = tail call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %197, x86_fp80 0xK3FFCD156DE5F64E6C000, x86_fp80 %188)
%199 = fptrunc x86_fp80 %198 to double
store double %199, double* %12
%200 = fptrunc x86_fp80 %22 to double
%201 = load double, double* %11
%202 = fmul double %201, %200
store double %202, double* %11
%203 = load double, double* %12
%204 = fmul double %203, %200
store double %204, double* %12
%205 = fsub double %100, %74
%206 = fmul double %21, %205
%207 = tail call x86_fp80 @fabs(double %206)
%208 = fptrunc x86_fp80 %207 to double
store double %208, double* %10
%209 = load double, double* %12
%210 = fcmp une double %209, 0.000000e+00
%211 = fcmp une double %208, 0.000000e+00
%212 = select i1 %210, i1 %211, i1 false
br i1 %212, label %213, label %227
213: ; preds = %110
%214 = fmul double %208, 2.000000e+02
%215 = fdiv double %214, %209
%216 = tail call double @pow(double %215, double 1.500000e+00)
%217 = fcmp ogt double %216, 1.000000e+00
br i1 %217, label %224, label %218
218: ; preds = %213
%219 = load double, double* %10
%220 = fmul double %219, 2.000000e+02
%221 = load double, double* %12
%222 = fdiv double %220, %221
%223 = tail call double @pow(double %222, double 1.500000e+00)
br label %224
224: ; preds = %213, %218
%225 = phi double [ %223, %218 ], [ 1.000000e+00, %213 ]
%226 = fmul double %209, %225
store double %226, double* %10
br label %227
227: ; preds = %224, %110
%228 = phi double [ %226, %224 ], [ %208, %110 ]
%229 = load double, double* %11
%230 = load double, double* @DBL_MIN
%231 = load double, double* @DBL_EPSILON
%232 = fmul double %231, 5.000000e+01
%233 = fdiv double %230, %232
%234 = fcmp ogt double %229, %233
br i1 %234, label %235, label %239
235: ; preds = %227
%236 = fmul double %229, %232
%237 = fcmp ogt double %236, %228
%238 = select i1 %237, double %236, double %228
store double %238, double* %10
br label %239
239: ; preds = %235, %227
%240 = fmul double %21, %100
ret double %240
}