double brcmp1(int *mu, double *a, double *b, double *x, double *y) {
  static double Const = .398942280401433e0;
  static double brcmp1, a0, apb, b0, c, e, h, lambda, lnx, lny, t, u, v, x0, y0,
      z;
  static int i, n;
  static double T1, T2, T3, T4;
  a0 = fifdmin1(*a, *b);
  if (a0 >= 8.0e0)
    goto S130;
  if (*x > 0.375e0)
    goto S10;
  lnx = log(*x);
  T1 = -*x;
  lny = alnrel(&T1);
  goto S30;
S10:
  if (*y > 0.375e0)
    goto S20;
  T2 = -*y;
  lnx = alnrel(&T2);
  lny = log(*y);
  goto S30;
S20:
  lnx = log(*x);
  lny = log(*y);
S30:
  z = *a * lnx + *b * lny;
  if (a0 < 1.0e0)
    goto S40;
  z -= betaln(a, b);
  brcmp1 = esum(mu, &z);
  return brcmp1;
S40:
  b0 = fifdmax1(*a, *b);
  if (b0 >= 8.0e0)
    goto S120;
  if (b0 > 1.0e0)
    goto S70;
  brcmp1 = esum(mu, &z);
  if (brcmp1 == 0.0e0)
    return brcmp1;
  apb = *a + *b;
  if (apb > 1.0e0)
    goto S50;
  z = 1.0e0 + gam1(&apb);
  goto S60;
S50:
  u = *a + *b - 1.e0;
  z = (1.0e0 + gam1(&u)) / apb;
S60:
  c = (1.0e0 + gam1(a)) * (1.0e0 + gam1(b)) / z;
  brcmp1 = brcmp1 * (a0 * c) / (1.0e0 + a0 / b0);
  return brcmp1;
S70:
  u = gamln1(&a0);
  n = (long)(b0 - 1.0e0);
  if (n < 1)
    goto S90;
  c = 1.0e0;
  for (i = 1; i <= n; i++) {
    b0 -= 1.0e0;
    c *= (b0 / (a0 + b0));
  }
  u = log(c) + u;
S90:
  z -= u;
  b0 -= 1.0e0;
  apb = a0 + b0;
  if (apb > 1.0e0)
    goto S100;
  t = 1.0e0 + gam1(&apb);
  goto S110;
S100:
  u = a0 + b0 - 1.e0;
  t = (1.0e0 + gam1(&u)) / apb;
S110:
  brcmp1 = a0 * esum(mu, &z) * (1.0e0 + gam1(&b0)) / t;
  return brcmp1;
S120:
  u = gamln1(&a0) + algdiv(&a0, &b0);
  T3 = z - u;
  brcmp1 = a0 * esum(mu, &T3);
  return brcmp1;
S130:
  if (*a > *b)
    goto S140;
  h = *a / *b;
  x0 = h / (1.0e0 + h);
  y0 = 1.0e0 / (1.0e0 + h);
  lambda = *a - (*a + *b) * *x;
  goto S150;
S140:
  h = *b / *a;
  x0 = 1.0e0 / (1.0e0 + h);
  y0 = h / (1.0e0 + h);
  lambda = (*a + *b) * *y - *b;
S150:
  e = -(lambda / *a);
  if (fabs(e) > 0.6e0)
    goto S160;
  u = rlog1(&e);
  goto S170;
S160:
  u = e - log(*x / x0);
S170:
  e = lambda / *b;
  if (fabs(e) > 0.6e0)
    goto S180;
  v = rlog1(&e);
  goto S190;
S180:
  v = e - log(*y / y0);
S190:
  T4 = -(*a * u + *b * v);
  z = esum(mu, &T4);
  brcmp1 = Const * sqrt(*b * x0) * z * exp(-bcorr(a, b));
  return brcmp1;
}


x86 assembly (clang, -O0):
<brcmp1>:
push   %rbp
mov    %rsp,%rbp
sub    $0x80,%rsp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    %rcx,-0x28(%rbp)
mov    %r8,-0x30(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm1
mov    $0x2,%al
call   1080 <fifdmin1@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2e8e(%rip)
movsd  0x2e86(%rip),%xmm0
movsd  0xdde(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1231 <brcmp1+0x61>
jmp    18e8 <brcmp1+0x718>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0xdc7(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1250 <brcmp1+0x80>
jmp    12ab <brcmp1+0xdb>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
call   10b0 <log@plt>
movsd  %xmm0,0x2e73(%rip)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,0x2e94(%rip)
lea    0x2e8d(%rip),%rdi
mov    $0x0,%al
call   1040 <alnrel@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2e3a(%rip)
jmp    134f <brcmp1+0x17f>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0xd4d(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    12ca <brcmp1+0xfa>
jmp    1325 <brcmp1+0x155>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,0x2e37(%rip)
lea    0x2e30(%rip),%rdi
mov    $0x0,%al
call   1040 <alnrel@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2dcd(%rip)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
call   10b0 <log@plt>
movsd  %xmm0,0x2dc0(%rip)
jmp    134f <brcmp1+0x17f>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
call   10b0 <log@plt>
movsd  %xmm0,0x2d9e(%rip)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
call   10b0 <log@plt>
movsd  %xmm0,0x2d91(%rip)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0x2d79(%rip),%xmm2
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  0x2d71(%rip),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x2d91(%rip)
movsd  0xc89(%rip),%xmm0
ucomisd 0x2d11(%rip),%xmm0
jbe    139a <brcmp1+0x1ca>
jmp    13f1 <brcmp1+0x221>
mov    -0x18(%rbp),%rdi
mov    -0x20(%rbp),%rsi
mov    $0x0,%al
call   10d0 <betaln@plt>
cvtsi2sd %eax,%xmm1
movsd  0x2d5b(%rip),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x2d4f(%rip)
mov    -0x10(%rbp),%rdi
lea    0x2d44(%rip),%rsi
mov    $0x0,%al
call   1050 <esum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2cb9(%rip)
movsd  0x2cb1(%rip),%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    1c7a <brcmp1+0xaaa>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm1
mov    $0x2,%al
call   1070 <fifdmax1@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2c9c(%rip)
movsd  0x2c94(%rip),%xmm0
movsd  0xbdc(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1433 <brcmp1+0x263>
jmp    1851 <brcmp1+0x681>
movsd  0x2c75(%rip),%xmm0
movsd  0xbcd(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1452 <brcmp1+0x282>
jmp    15fb <brcmp1+0x42b>
mov    -0x10(%rbp),%rdi
lea    0x2cb3(%rip),%rsi
mov    $0x0,%al
call   1050 <esum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2c28(%rip)
movsd  0x2c20(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    149d <brcmp1+0x2cd>
jp     149d <brcmp1+0x2cd>
movsd  0x2c05(%rip),%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    1c7a <brcmp1+0xaaa>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
addsd  (%rax),%xmm0
movsd  %xmm0,0x2bf3(%rip)
movsd  0x2beb(%rip),%xmm0
movsd  0xb4b(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    14d4 <brcmp1+0x304>
jmp    14ff <brcmp1+0x32f>
lea    0x2bcd(%rip),%rdi
mov    $0x0,%al
call   1030 <gam1@plt>
cvtsi2sd %eax,%xmm1
movsd  0xb22(%rip),%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x2c16(%rip)
jmp    1551 <brcmp1+0x381>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
addsd  (%rax),%xmm0
movsd  0xaf9(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x2bcd(%rip)
lea    0x2bc6(%rip),%rdi
mov    $0x0,%al
call   1030 <gam1@plt>
cvtsi2sd %eax,%xmm1
movsd  0xad3(%rip),%xmm0
addsd  %xmm1,%xmm0
divsd  0x2b5f(%rip),%xmm0
movsd  %xmm0,0x2bbf(%rip)
mov    -0x18(%rbp),%rdi
mov    $0x0,%al
call   1030 <gam1@plt>
cvtsi2sd %eax,%xmm1
movsd  0xaa8(%rip),%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x20(%rbp),%rdi
mov    $0x0,%al
call   1030 <gam1@plt>
movsd  -0x38(%rbp),%xmm0
cvtsi2sd %eax,%xmm2
movsd  0xa83(%rip),%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
divsd  0x2b73(%rip),%xmm0
movsd  %xmm0,0x2b13(%rip)
movsd  0x2aeb(%rip),%xmm0
movsd  0x2aeb(%rip),%xmm1
mulsd  0x2afb(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x2ad7(%rip),%xmm2
divsd  0x2adf(%rip),%xmm2
movsd  0xa37(%rip),%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,0x2aaf(%rip)
movsd  0x2aa7(%rip),%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    1c7a <brcmp1+0xaaa>
lea    0x2a9e(%rip),%rdi
mov    $0x0,%al
call   10f0 <gamln1@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2adb(%rip)
movsd  0x2a93(%rip),%xmm0
movsd  0x9eb(%rip),%xmm1
subsd  %xmm1,%xmm0
cvttsd2si %xmm0,%rax
mov    %eax,0x2ae8(%rip)
cmpl   $0x1,0x2ae1(%rip)
jge    1646 <brcmp1+0x476>
jmp    16eb <brcmp1+0x51b>
movsd  0x9c2(%rip),%xmm0
movsd  %xmm0,0x2a62(%rip)
movl   $0x1,0x2ab8(%rip)
mov    0x2ab2(%rip),%eax
cmp    0x2ab0(%rip),%eax
jg     16ce <brcmp1+0x4fe>
movsd  0x2a36(%rip),%xmm0
movsd  0x98e(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x2a22(%rip)
movsd  0x2a1a(%rip),%xmm0
movsd  0x2a02(%rip),%xmm1
addsd  0x2a0a(%rip),%xmm1
divsd  %xmm1,%xmm0
mulsd  0x2a06(%rip),%xmm0
movsd  %xmm0,0x29fe(%rip)
mov    0x2a58(%rip),%eax
add    $0x1,%eax
mov    %eax,0x2a4f(%rip)
jmp    1660 <brcmp1+0x490>
movsd  0x29e2(%rip),%xmm0
call   10b0 <log@plt>
addsd  0x2a0d(%rip),%xmm0
movsd  %xmm0,0x2a05(%rip)
movsd  0x29fd(%rip),%xmm1
movsd  0x2a15(%rip),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x2a09(%rip)
movsd  0x29a1(%rip),%xmm0
movsd  0x8f9(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x298d(%rip)
movsd  0x2975(%rip),%xmm0
addsd  0x297d(%rip),%xmm0
movsd  %xmm0,0x296d(%rip)
movsd  0x2965(%rip),%xmm0
movsd  0x8c5(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    175a <brcmp1+0x58a>
jmp    1785 <brcmp1+0x5b5>
lea    0x2947(%rip),%rdi
mov    $0x0,%al
call   1030 <gam1@plt>
cvtsi2sd %eax,%xmm1
movsd  0x89c(%rip),%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x2968(%rip)
jmp    17d7 <brcmp1+0x607>
movsd  0x2913(%rip),%xmm0
addsd  0x291b(%rip),%xmm0
movsd  0x873(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x2947(%rip)
lea    0x2940(%rip),%rdi
mov    $0x0,%al
call   1030 <gam1@plt>
cvtsi2sd %eax,%xmm1
movsd  0x84d(%rip),%xmm0
addsd  %xmm1,%xmm0
divsd  0x28d9(%rip),%xmm0
movsd  %xmm0,0x2911(%rip)
movsd  0x28c1(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x2921(%rip),%rsi
mov    $0x0,%al
call   1050 <esum@plt>
movsd  -0x48(%rbp),%xmm0
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
lea    0x28a1(%rip),%rdi
mov    $0x0,%al
call   1030 <gam1@plt>
movsd  -0x40(%rbp),%xmm0
cvtsi2sd %eax,%xmm2
movsd  0x7e9(%rip),%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
divsd  0x28b1(%rip),%xmm0
movsd  %xmm0,0x2859(%rip)
movsd  0x2851(%rip),%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    1c7a <brcmp1+0xaaa>
lea    0x2848(%rip),%rdi
mov    $0x0,%al
call   10f0 <gamln1@plt>
mov    %eax,-0x54(%rbp)
lea    0x2837(%rip),%rdi
lea    0x2840(%rip),%rsi
mov    $0x0,%al
call   1090 <algdiv@plt>
mov    %eax,%ecx
mov    -0x54(%rbp),%eax
add    %ecx,%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2866(%rip)
movsd  0x287e(%rip),%xmm0
subsd  0x2856(%rip),%xmm0
movsd  %xmm0,0x288e(%rip)
movsd  0x27f6(%rip),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x2876(%rip),%rsi
mov    $0x0,%al
call   1050 <esum@plt>
movsd  -0x50(%rbp),%xmm0
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,0x27c2(%rip)
movsd  0x27ba(%rip),%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    1c7a <brcmp1+0xaaa>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
ucomisd (%rax),%xmm0
jbe    1903 <brcmp1+0x733>
jmp    19af <brcmp1+0x7df>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
divsd  (%rax),%xmm0
movsd  %xmm0,0x27ad(%rip)
movsd  0x27a5(%rip),%xmm0
movsd  0x6e5(%rip),%xmm1
addsd  0x2795(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,0x27c1(%rip)
movsd  0x6c9(%rip),%xmm1
addsd  0x2779(%rip),%xmm1
movsd  0x6b9(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x27a5(%rip)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
addsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x2726(%rip)
jmp    1a56 <brcmp1+0x886>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
divsd  (%rax),%xmm0
movsd  %xmm0,0x2701(%rip)
movsd  0x641(%rip),%xmm1
addsd  0x26f1(%rip),%xmm1
movsd  0x631(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x2715(%rip)
movsd  0x26d5(%rip),%xmm0
movsd  0x615(%rip),%xmm1
addsd  0x26c5(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,0x26f9(%rip)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
addsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm2
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x267a(%rip)
movsd  0x2672(%rip),%xmm0
mov    -0x18(%rbp),%rax
divsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,0x263b(%rip)
movsd  0x2633(%rip),%xmm0
movaps 0x58c(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  0x578(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1aaf <brcmp1+0x8df>
jmp    1ace <brcmp1+0x8fe>
lea    0x260a(%rip),%rdi
mov    $0x0,%al
call   1060 <rlog1@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2627(%rip)
jmp    1b04 <brcmp1+0x934>
movsd  0x25ea(%rip),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
divsd  0x2615(%rip),%xmm0
call   10b0 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x60(%rbp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x25ec(%rip)
movsd  0x25c4(%rip),%xmm0
mov    -0x20(%rbp),%rax
divsd  (%rax),%xmm0
movsd  %xmm0,0x25a4(%rip)
movsd  0x259c(%rip),%xmm0
movaps 0x4f5(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  0x4e1(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1b46 <brcmp1+0x976>
jmp    1b65 <brcmp1+0x995>
lea    0x2573(%rip),%rdi
mov    $0x0,%al
call   1060 <rlog1@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2598(%rip)
jmp    1b9b <brcmp1+0x9cb>
movsd  0x2553(%rip),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
divsd  0x2586(%rip),%xmm0
call   10b0 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x68(%rbp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x255d(%rip)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0x2545(%rip),%xmm2
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  0x253d(%rip),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,0x2556(%rip)
mov    -0x10(%rbp),%rdi
lea    0x254b(%rip),%rsi
mov    $0x0,%al
call   1050 <esum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2510(%rip)
movsd  0x2480(%rip),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mulsd  0x24e3(%rip),%xmm0
call   10c0 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0x78(%rbp),%xmm0
mulsd  %xmm1,%xmm0
mulsd  0x24da(%rip),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rdi
mov    -0x20(%rbp),%rsi
mov    $0x0,%al
call   10e0 <bcorr@plt>
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
cvtsi2sd %eax,%xmm0
call   10a0 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,0x242b(%rip)
movsd  0x2423(%rip),%xmm0
movsd  %xmm0,-0x8(%rbp)
movsd  -0x8(%rbp),%xmm0
add    $0x80,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<brcmp1>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x18,%rsp
mov    %r8,%r12
mov    %rcx,%rbx
mov    %rdx,%r13
mov    %rsi,%r15
mov    %rdi,%r14
movsd  (%rsi),%xmm0
movsd  (%rdx),%xmm1
mov    $0x2,%al
call   1080 <fifdmin1@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2e8d(%rip)
cmp    $0x7,%eax
jle    126e <brcmp1+0x9e>
movsd  (%r15),%xmm0
movsd  0x0(%r13),%xmm4
ucomisd %xmm4,%xmm0
jbe    129e <brcmp1+0xce>
movapd %xmm4,%xmm2
divsd  %xmm0,%xmm2
movsd  0xdd7(%rip),%xmm1
movapd %xmm2,%xmm3
addsd  %xmm1,%xmm3
divsd  %xmm3,%xmm1
movsd  %xmm1,0x2e93(%rip)
divsd  %xmm3,%xmm2
movsd  %xmm2,0x2e8f(%rip)
movapd %xmm0,%xmm3
addsd  %xmm4,%xmm3
xorpd  0xdcf(%rip),%xmm4
movapd %xmm4,%xmm2
mov    %r12,%rax
movapd %xmm3,%xmm4
jmp    12e1 <brcmp1+0x111>
movsd  (%rbx),%xmm0
ucomisd 0xd86(%rip),%xmm0
jbe    1338 <brcmp1+0x168>
movsd  (%r12),%xmm1
ucomisd 0xd72(%rip),%xmm1
jbe    1491 <brcmp1+0x2c1>
call   10b0 <log@plt>
jmp    14b6 <brcmp1+0x2e6>
movapd %xmm0,%xmm1
divsd  %xmm4,%xmm1
movsd  0xd5a(%rip),%xmm2
movapd %xmm1,%xmm3
addsd  %xmm2,%xmm3
divsd  %xmm3,%xmm1
movsd  %xmm1,0x2e16(%rip)
divsd  %xmm3,%xmm2
movsd  %xmm2,0x2e12(%rip)
addsd  %xmm0,%xmm4
xorpd  0xd56(%rip),%xmm4
movapd %xmm0,%xmm2
mov    %rbx,%rax
mulsd  (%rax),%xmm4
addsd  %xmm2,%xmm4
movsd  %xmm4,0x2dc7(%rip)
xorpd  0xd37(%rip),%xmm4
divsd  %xmm0,%xmm4
movsd  %xmm4,0x2dab(%rip)
movapd 0xd33(%rip),%xmm0
andpd  %xmm4,%xmm0
ucomisd 0xcff(%rip),%xmm0
jbe    1371 <brcmp1+0x1a1>
movsd  (%rbx),%xmm0
divsd  %xmm1,%xmm0
movapd %xmm4,(%rsp)
call   10b0 <log@plt>
movapd (%rsp),%xmm1
subsd  %xmm0,%xmm1
jmp    1386 <brcmp1+0x1b6>
call   10b0 <log@plt>
movsd  %xmm0,0x2d7b(%rip)
movsd  (%rbx),%xmm0
xorps  0xce0(%rip),%xmm0
movlps %xmm0,0x2d99(%rip)
lea    0x2d92(%rip),%rdi
xor    %eax,%eax
call   1040 <alnrel@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
jmp    14c9 <brcmp1+0x2f9>
lea    0x2d38(%rip),%rdi
xor    %eax,%eax
call   1060 <rlog1@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
movsd  %xmm1,0x2d42(%rip)
movsd  0x2d22(%rip),%xmm1
divsd  0x0(%r13),%xmm1
movsd  %xmm1,0x2d0c(%rip)
movapd 0xc94(%rip),%xmm0
andpd  %xmm1,%xmm0
ucomisd 0xc60(%rip),%xmm0
jbe    13dd <brcmp1+0x20d>
movsd  (%r12),%xmm0
divsd  0x2d18(%rip),%xmm0
movapd %xmm1,(%rsp)
call   10b0 <log@plt>
movapd (%rsp),%xmm1
subsd  %xmm0,%xmm1
jmp    13f2 <brcmp1+0x222>
lea    0x2ccc(%rip),%rdi
xor    %eax,%eax
call   1060 <rlog1@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
mulsd  0x0(%r13),%xmm1
movsd  (%r15),%xmm0
mulsd  0x2ccb(%rip),%xmm0
addsd  %xmm1,%xmm0
xorpd  0xc1f(%rip),%xmm0
movlpd %xmm0,0x2cef(%rip)
lea    0x2ce8(%rip),%rsi
mov    %r14,%rdi
xor    %eax,%eax
call   1050 <esum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2caf(%rip)
movsd  0x0(%r13),%xmm0
mulsd  0x2c91(%rip),%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1457 <brcmp1+0x287>
sqrtsd %xmm0,%xmm0
jmp    145c <brcmp1+0x28c>
call   10c0 <sqrt@plt>
mulsd  0xbbc(%rip),%xmm0
mulsd  0x2c7c(%rip),%xmm0
movsd  %xmm0,(%rsp)
mov    %r15,%rdi
mov    %r13,%rsi
xor    %eax,%eax
call   10e0 <bcorr@plt>
neg    %eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
call   10a0 <exp@plt>
jmp    1596 <brcmp1+0x3c6>
xorpd  0xb97(%rip),%xmm1
movlpd %xmm1,0x2c57(%rip)
lea    0x2c50(%rip),%rdi
xor    %eax,%eax
call   1040 <alnrel@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2c02(%rip)
movsd  (%r12),%xmm0
call   10b0 <log@plt>
movsd  (%r15),%xmm1
mulsd  0x0(%r13),%xmm0
mulsd  0x2be4(%rip),%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x2c00(%rip)
movsd  0xb18(%rip),%xmm0
ucomisd 0x2ba0(%rip),%xmm0
jbe    159d <brcmp1+0x3cd>
movsd  (%r15),%xmm0
movsd  0x0(%r13),%xmm1
mov    $0x2,%al
call   1070 <fifdmax1@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2b89(%rip)
cmp    $0x7,%eax
jle    15f4 <brcmp1+0x424>
lea    0x2b69(%rip),%rbx
mov    %rbx,%rdi
xor    %eax,%eax
call   10f0 <gamln1@plt>
mov    %eax,%ebp
lea    0x2b66(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1090 <algdiv@plt>
add    %ebp,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2b73(%rip)
movsd  0x2b83(%rip),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x2b8f(%rip)
lea    0x2b88(%rip),%rsi
movsd  0x2b18(%rip),%xmm0
movsd  %xmm0,(%rsp)
mov    %r14,%rdi
xor    %eax,%eax
call   1050 <esum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  (%rsp),%xmm0
jmp    15dd <brcmp1+0x40d>
mov    %r15,%rdi
mov    %r13,%rsi
xor    %eax,%eax
call   10d0 <betaln@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
lea    0x2b30(%rip),%rsi
movsd  0x2b28(%rip),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x2b1c(%rip)
mov    %r14,%rdi
xor    %eax,%eax
call   1050 <esum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2aab(%rip)
add    $0x18,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
cmp    $0x1,%eax
jle    1655 <brcmp1+0x485>
lea    0x2a98(%rip),%rdi
xor    %eax,%eax
call   10f0 <gamln1@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2aba(%rip)
movsd  0x2a8a(%rip),%xmm1
movsd  0x9ea(%rip),%xmm2
addsd  %xmm1,%xmm2
cvttsd2si %xmm2,%rax
test   %eax,%eax
jle    177e <brcmp1+0x5ae>
movsd  0x2a59(%rip),%xmm5
cmp    $0x1,%eax
jne    16e3 <brcmp1+0x513>
movsd  0x9b8(%rip),%xmm0
jmp    1735 <brcmp1+0x565>
lea    0x2a8c(%rip),%rsi
mov    %r14,%rdi
xor    %eax,%eax
call   1050 <esum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x2a1b(%rip)
test   %eax,%eax
je     15e5 <brcmp1+0x415>
movsd  (%r15),%xmm0
addsd  0x0(%r13),%xmm0
movsd  %xmm0,0x2a10(%rip)
ucomisd 0x970(%rip),%xmm0
jbe    186e <brcmp1+0x69e>
movsd  (%r15),%xmm0
addsd  0x0(%r13),%xmm0
addsd  0x95f(%rip),%xmm0
movsd  %xmm0,0x2a17(%rip)
lea    0x2a10(%rip),%rdi
xor    %eax,%eax
call   1030 <gam1@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x932(%rip),%xmm0
divsd  0x29c2(%rip),%xmm0
jmp    188b <brcmp1+0x6bb>
mov    %eax,%ecx
and    $0xfffffffe,%ecx
movsd  0x918(%rip),%xmm0
movsd  0x918(%rip),%xmm2
nopl   0x0(%rax,%rax,1)
addsd  %xmm2,%xmm1
movapd %xmm1,%xmm3
addsd  %xmm5,%xmm3
movapd %xmm1,%xmm4
divsd  %xmm3,%xmm4
mulsd  %xmm0,%xmm4
addsd  %xmm2,%xmm1
movapd %xmm1,%xmm3
addsd  %xmm5,%xmm3
movapd %xmm1,%xmm0
divsd  %xmm3,%xmm0
mulsd  %xmm4,%xmm0
add    $0xfffffffe,%ecx
jne    1700 <brcmp1+0x530>
test   $0x1,%al
je     1751 <brcmp1+0x581>
addsd  0x8cf(%rip),%xmm1
addsd  %xmm1,%xmm5
movapd %xmm1,%xmm2
divsd  %xmm5,%xmm2
mulsd  %xmm2,%xmm0
movsd  %xmm1,0x294f(%rip)
call   10b0 <log@plt>
addsd  0x296a(%rip),%xmm0
movsd  %xmm0,0x2962(%rip)
movsd  0x2932(%rip),%xmm2
addsd  0x892(%rip),%xmm2
movsd  0x2962(%rip),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x2956(%rip)
movsd  %xmm2,0x290e(%rip)
addsd  0x28f6(%rip),%xmm2
movsd  %xmm2,0x28f6(%rip)
ucomisd 0x856(%rip),%xmm2
jbe    17eb <brcmp1+0x61b>
addsd  0x854(%rip),%xmm2
movsd  %xmm2,0x290c(%rip)
lea    0x2905(%rip),%rdi
xor    %eax,%eax
call   1030 <gam1@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x827(%rip),%xmm0
divsd  0x28b7(%rip),%xmm0
jmp    1808 <brcmp1+0x638>
lea    0x28ae(%rip),%rdi
xor    %eax,%eax
call   1030 <gam1@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x800(%rip),%xmm0
movsd  %xmm0,0x28b8(%rip)
movsd  0x2880(%rip),%xmm0
movsd  %xmm0,(%rsp)
lea    0x28c4(%rip),%rsi
mov    %r14,%rdi
xor    %eax,%eax
call   1050 <esum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  (%rsp),%xmm0
movsd  %xmm0,(%rsp)
lea    0x2862(%rip),%rdi
xor    %eax,%eax
call   1030 <gam1@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x7ac(%rip),%xmm0
mulsd  (%rsp),%xmm0
divsd  0x285f(%rip),%xmm0
jmp    15dd <brcmp1+0x40d>
lea    0x282b(%rip),%rdi
xor    %eax,%eax
call   1030 <gam1@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x77d(%rip),%xmm0
movsd  %xmm0,0x2855(%rip)
mov    %r15,%rdi
xor    %eax,%eax
call   1030 <gam1@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
movsd  0x75c(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  %xmm1,(%rsp)
mov    %r13,%rdi
xor    %eax,%eax
call   1030 <gam1@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
movsd  0x73a(%rip),%xmm3
addsd  %xmm3,%xmm1
mulsd  (%rsp),%xmm1
movsd  0x27b9(%rip),%xmm0
unpcklpd %xmm0,%xmm1
movsd  0x27fd(%rip),%xmm2
movhpd 0x27b5(%rip),%xmm2
divpd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
mulsd  0x278d(%rip),%xmm0
unpckhpd %xmm1,%xmm1
addsd  %xmm3,%xmm1
divsd  %xmm1,%xmm0
jmp    15dd <brcmp1+0x40d>

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

LLVM IR (-O2):
@brcmp1.brcmp1 = internal unnamed_addr global double 0.000000e+00
@brcmp1.a0 = internal global double 0.000000e+00
@brcmp1.apb = internal global double 0.000000e+00
@brcmp1.b0 = internal global double 0.000000e+00
@brcmp1.e = internal global double 0.000000e+00
@brcmp1.lambda = internal unnamed_addr global double 0.000000e+00
@brcmp1.lnx = internal unnamed_addr global double 0.000000e+00
@brcmp1.t = internal unnamed_addr global double 0.000000e+00
@brcmp1.u = internal global double 0.000000e+00
@brcmp1.x0 = internal unnamed_addr global double 0.000000e+00
@brcmp1.y0 = internal unnamed_addr global double 0.000000e+00
@brcmp1.z = internal global double 0.000000e+00
@brcmp1.T1 = internal global double 0.000000e+00
@brcmp1.T2 = internal global double 0.000000e+00
@brcmp1.T3 = internal global double 0.000000e+00
@brcmp1.T4 = internal global double 0.000000e+00
define double @brcmp1(i32* %0, double* %1, double* %2, double* nocapture %3, double* nocapture %4) {
%6 = load double, double* %1
%7 = load double, double* %2
%8 = tail call i32 (double, double, ...) bitcast (i32 (...)* @fifdmin1 to i32 (double, double, ...)*)(double %6, double %7)
%9 = sitofp i32 %8 to double
store double %9, double* @brcmp1.a0
%10 = icmp sgt i32 %8, 7
br i1 %10, label %193, label %11
11: ; preds = %5
%12 = load double, double* %3
%13 = fcmp ogt double %12, 3.750000e-01
br i1 %13, label %20, label %14
14: ; preds = %11
%15 = tail call double @log(double %12)
store double %15, double* @brcmp1.lnx
%16 = load double, double* %3
%17 = fneg double %16
store double %17, double* @brcmp1.T1
%18 = tail call i32 (double*, ...) bitcast (i32 (...)* @alnrel to i32 (double*, ...)*)(double* @brcmp1.T1)
%19 = sitofp i32 %18 to double
br label %33
20: ; preds = %11
%21 = load double, double* %4
%22 = fcmp ogt double %21, 3.750000e-01
br i1 %22, label %29, label %23
23: ; preds = %20
%24 = fneg double %21
store double %24, double* @brcmp1.T2
%25 = tail call i32 (double*, ...) bitcast (i32 (...)* @alnrel to i32 (double*, ...)*)(double* @brcmp1.T2)
%26 = sitofp i32 %25 to double
store double %26, double* @brcmp1.lnx
%27 = load double, double* %4
%28 = tail call double @log(double %27)
br label %33
29: ; preds = %20
%30 = tail call double @log(double %12)
store double %30, double* @brcmp1.lnx
%31 = load double, double* %4
%32 = tail call double @log(double %31)
br label %33
33: ; preds = %29, %23, %14
%34 = phi double [ %32, %29 ], [ %28, %23 ], [ %19, %14 ]
%35 = load double, double* %1
%36 = load double, double* @brcmp1.lnx
%37 = load double, double* %2
%38 = fmul double %37, %34
%39 = tail call double @llvm.fmuladd.f64(double %35, double %36, double %38)
store double %39, double* @brcmp1.z
%40 = load double, double* @brcmp1.a0
%41 = fcmp olt double %40, 1.000000e+00
br i1 %41, label %49, label %42
42: ; preds = %33
%43 = tail call i32 (double*, double*, ...) bitcast (i32 (...)* @betaln to i32 (double*, double*, ...)*)(double* %1, double* %2)
%44 = sitofp i32 %43 to double
%45 = load double, double* @brcmp1.z
%46 = fsub double %45, %44
store double %46, double* @brcmp1.z
%47 = tail call i32 (i32*, double*, ...) bitcast (i32 (...)* @esum to i32 (i32*, double*, ...)*)(i32* %0, double* @brcmp1.z)
%48 = sitofp i32 %47 to double
br label %268
49: ; preds = %33
%50 = load double, double* %1
%51 = load double, double* %2
%52 = tail call i32 (double, double, ...) bitcast (i32 (...)* @fifdmax1 to i32 (double, double, ...)*)(double %50, double %51)
%53 = sitofp i32 %52 to double
store double %53, double* @brcmp1.b0
%54 = icmp sgt i32 %52, 7
br i1 %54, label %182, label %55
55: ; preds = %49
%56 = icmp sgt i32 %52, 1
br i1 %56, label %104, label %57
57: ; preds = %55
%58 = tail call i32 (i32*, double*, ...) bitcast (i32 (...)* @esum to i32 (i32*, double*, ...)*)(i32* %0, double* @brcmp1.z)
%59 = sitofp i32 %58 to double
store double %59, double* @brcmp1.brcmp1
%60 = icmp eq i32 %58, 0
br i1 %60, label %270, label %61
61: ; preds = %57
%62 = load double, double* %1
%63 = load double, double* %2
%64 = fadd double %62, %63
store double %64, double* @brcmp1.apb
%65 = fcmp ogt double %64, 1.000000e+00
br i1 %65, label %70, label %66
66: ; preds = %61
%67 = tail call i32 (double*, ...) bitcast (i32 (...)* @gam1 to i32 (double*, ...)*)(double* @brcmp1.apb)
%68 = sitofp i32 %67 to double
%69 = fadd double %68, 1.000000e+00
br label %80
70: ; preds = %61
%71 = load double, double* %1
%72 = load double, double* %2
%73 = fadd double %71, %72
%74 = fadd double %73, -1.000000e+00
store double %74, double* @brcmp1.u
%75 = tail call i32 (double*, ...) bitcast (i32 (...)* @gam1 to i32 (double*, ...)*)(double* @brcmp1.u)
%76 = sitofp i32 %75 to double
%77 = fadd double %76, 1.000000e+00
%78 = load double, double* @brcmp1.apb
%79 = fdiv double %77, %78
br label %80
80: ; preds = %70, %66
%81 = phi double [ %69, %66 ], [ %79, %70 ]
store double %81, double* @brcmp1.z
%82 = tail call i32 (double*, ...) bitcast (i32 (...)* @gam1 to i32 (double*, ...)*)(double* %1)
%83 = sitofp i32 %82 to double
%84 = fadd double %83, 1.000000e+00
%85 = tail call i32 (double*, ...) bitcast (i32 (...)* @gam1 to i32 (double*, ...)*)(double* %2)
%86 = sitofp i32 %85 to double
%87 = fadd double %86, 1.000000e+00
%88 = fmul double %84, %87
%89 = load double, double* @brcmp1.z
%90 = load double, double* @brcmp1.brcmp1
%91 = load double, double* @brcmp1.a0
%92 = load double, double* @brcmp1.b0
%93 = insertelement <2 x double> poison, double %88, i64 0
%94 = insertelement <2 x double> %93, double %91, i64 1
%95 = insertelement <2 x double> poison, double %89, i64 0
%96 = insertelement <2 x double> %95, double %92, i64 1
%97 = fdiv <2 x double> %94, %96
%98 = extractelement <2 x double> %97, i64 0
%99 = fmul double %91, %98
%100 = fmul double %90, %99
%101 = extractelement <2 x double> %97, i64 1
%102 = fadd double %101, 1.000000e+00
%103 = fdiv double %100, %102
br label %268
104: ; preds = %55
%105 = tail call i32 (double*, ...) bitcast (i32 (...)* @gamln1 to i32 (double*, ...)*)(double* @brcmp1.a0)
%106 = sitofp i32 %105 to double
store double %106, double* @brcmp1.u
%107 = load double, double* @brcmp1.b0
%108 = fadd double %107, -1.000000e+00
%109 = fptosi double %108 to i64
%110 = trunc i64 %109 to i32
%111 = icmp slt i32 %110, 1
br i1 %111, label %151, label %112
112: ; preds = %104
%113 = load double, double* @brcmp1.a0
%114 = and i32 %110, 1
%115 = icmp eq i32 %110, 1
br i1 %115, label %132, label %116
116: ; preds = %112
%117 = and i32 %110, -2
br label %118
118: ; preds = %118, %116
%119 = phi double [ %107, %116 ], [ %126, %118 ]
%120 = phi double [ 1.000000e+00, %116 ], [ %129, %118 ]
%121 = phi i32 [ 0, %116 ], [ %130, %118 ]
%122 = fadd double %119, -1.000000e+00
%123 = fadd double %122, %113
%124 = fdiv double %122, %123
%125 = fmul double %120, %124
%126 = fadd double %122, -1.000000e+00
%127 = fadd double %126, %113
%128 = fdiv double %126, %127
%129 = fmul double %125, %128
%130 = add i32 %121, 2
%131 = icmp eq i32 %130, %117
br i1 %131, label %132, label %118
132: ; preds = %118, %112
%133 = phi double [ undef, %112 ], [ %126, %118 ]
%134 = phi double [ undef, %112 ], [ %129, %118 ]
%135 = phi double [ %107, %112 ], [ %126, %118 ]
%136 = phi double [ 1.000000e+00, %112 ], [ %129, %118 ]
%137 = icmp eq i32 %114, 0
br i1 %137, label %143, label %138
138: ; preds = %132
%139 = fadd double %135, -1.000000e+00
%140 = fadd double %139, %113
%141 = fdiv double %139, %140
%142 = fmul double %136, %141
br label %143
143: ; preds = %132, %138
%144 = phi double [ %133, %132 ], [ %139, %138 ]
%145 = phi double [ %134, %132 ], [ %142, %138 ]
store double %144, double* @brcmp1.b0
%146 = tail call double @log(double %145)
%147 = load double, double* @brcmp1.u
%148 = fadd double %146, %147
store double %148, double* @brcmp1.u
%149 = load double, double* @brcmp1.b0
%150 = fadd double %149, -1.000000e+00
br label %151
151: ; preds = %104, %143
%152 = phi double [ %108, %104 ], [ %150, %143 ]
%153 = phi double [ %106, %104 ], [ %148, %143 ]
%154 = load double, double* @brcmp1.z
%155 = fsub double %154, %153
store double %155, double* @brcmp1.z
store double %152, double* @brcmp1.b0
%156 = load double, double* @brcmp1.a0
%157 = fadd double %152, %156
store double %157, double* @brcmp1.apb
%158 = fcmp ogt double %157, 1.000000e+00
br i1 %158, label %163, label %159
159: ; preds = %151
%160 = tail call i32 (double*, ...) bitcast (i32 (...)* @gam1 to i32 (double*, ...)*)(double* @brcmp1.apb)
%161 = sitofp i32 %160 to double
%162 = fadd double %161, 1.000000e+00
br label %170
163: ; preds = %151
%164 = fadd double %157, -1.000000e+00
store double %164, double* @brcmp1.u
%165 = tail call i32 (double*, ...) bitcast (i32 (...)* @gam1 to i32 (double*, ...)*)(double* @brcmp1.u)
%166 = sitofp i32 %165 to double
%167 = fadd double %166, 1.000000e+00
%168 = load double, double* @brcmp1.apb
%169 = fdiv double %167, %168
br label %170
170: ; preds = %163, %159
%171 = phi double [ %162, %159 ], [ %169, %163 ]
store double %171, double* @brcmp1.t
%172 = load double, double* @brcmp1.a0
%173 = tail call i32 (i32*, double*, ...) bitcast (i32 (...)* @esum to i32 (i32*, double*, ...)*)(i32* %0, double* @brcmp1.z)
%174 = sitofp i32 %173 to double
%175 = fmul double %172, %174
%176 = tail call i32 (double*, ...) bitcast (i32 (...)* @gam1 to i32 (double*, ...)*)(double* @brcmp1.b0)
%177 = sitofp i32 %176 to double
%178 = fadd double %177, 1.000000e+00
%179 = fmul double %175, %178
%180 = load double, double* @brcmp1.t
%181 = fdiv double %179, %180
br label %268
182: ; preds = %49
%183 = tail call i32 (double*, ...) bitcast (i32 (...)* @gamln1 to i32 (double*, ...)*)(double* @brcmp1.a0)
%184 = tail call i32 (double*, double*, ...) bitcast (i32 (...)* @algdiv to i32 (double*, double*, ...)*)(double* @brcmp1.a0, double* @brcmp1.b0)
%185 = add nsw i32 %184, %183
%186 = sitofp i32 %185 to double
store double %186, double* @brcmp1.u
%187 = load double, double* @brcmp1.z
%188 = fsub double %187, %186
store double %188, double* @brcmp1.T3
%189 = load double, double* @brcmp1.a0
%190 = tail call i32 (i32*, double*, ...) bitcast (i32 (...)* @esum to i32 (i32*, double*, ...)*)(i32* %0, double* @brcmp1.T3)
%191 = sitofp i32 %190 to double
%192 = fmul double %189, %191
br label %268
193: ; preds = %5
%194 = load double, double* %1
%195 = load double, double* %2
%196 = fcmp ogt double %194, %195
br i1 %196, label %204, label %197
197: ; preds = %193
%198 = fdiv double %194, %195
%199 = fadd double %198, 1.000000e+00
%200 = fdiv double %198, %199
store double %200, double* @brcmp1.x0
%201 = fdiv double 1.000000e+00, %199
store double %201, double* @brcmp1.y0
%202 = fadd double %194, %195
%203 = fneg double %202
br label %211
204: ; preds = %193
%205 = fdiv double %195, %194
%206 = fadd double %205, 1.000000e+00
%207 = fdiv double 1.000000e+00, %206
store double %207, double* @brcmp1.x0
%208 = fdiv double %205, %206
store double %208, double* @brcmp1.y0
%209 = fadd double %194, %195
%210 = fneg double %195
br label %211
211: ; preds = %204, %197
%212 = phi double [ %210, %204 ], [ %194, %197 ]
%213 = phi double* [ %4, %204 ], [ %3, %197 ]
%214 = phi double [ %209, %204 ], [ %203, %197 ]
%215 = phi double [ %207, %204 ], [ %200, %197 ]
%216 = load double, double* %213
%217 = tail call double @llvm.fmuladd.f64(double %214, double %216, double %212)
store double %217, double* @brcmp1.lambda
%218 = fneg double %217
%219 = fdiv double %218, %194
store double %219, double* @brcmp1.e
%220 = tail call double @llvm.fabs.f64(double %219)
%221 = fcmp ogt double %220, 6.000000e-01
br i1 %221, label %225, label %222
222: ; preds = %211
%223 = tail call i32 (double*, ...) bitcast (i32 (...)* @rlog1 to i32 (double*, ...)*)(double* @brcmp1.e)
%224 = sitofp i32 %223 to double
br label %230
225: ; preds = %211
%226 = load double, double* %3
%227 = fdiv double %226, %215
%228 = tail call double @log(double %227)
%229 = fsub double %219, %228
br label %230
230: ; preds = %225, %222
%231 = phi double [ %224, %222 ], [ %229, %225 ]
store double %231, double* @brcmp1.u
%232 = load double, double* @brcmp1.lambda
%233 = load double, double* %2
%234 = fdiv double %232, %233
store double %234, double* @brcmp1.e
%235 = tail call double @llvm.fabs.f64(double %234)
%236 = fcmp ogt double %235, 6.000000e-01
br i1 %236, label %240, label %237
237: ; preds = %230
%238 = tail call i32 (double*, ...) bitcast (i32 (...)* @rlog1 to i32 (double*, ...)*)(double* @brcmp1.e)
%239 = sitofp i32 %238 to double
br label %246
240: ; preds = %230
%241 = load double, double* %4
%242 = load double, double* @brcmp1.y0
%243 = fdiv double %241, %242
%244 = tail call double @log(double %243)
%245 = fsub double %234, %244
br label %246
246: ; preds = %240, %237
%247 = phi double [ %239, %237 ], [ %245, %240 ]
%248 = load double, double* %1
%249 = load double, double* @brcmp1.u
%250 = load double, double* %2
%251 = fmul double %247, %250
%252 = tail call double @llvm.fmuladd.f64(double %248, double %249, double %251)
%253 = fneg double %252
store double %253, double* @brcmp1.T4
%254 = tail call i32 (i32*, double*, ...) bitcast (i32 (...)* @esum to i32 (i32*, double*, ...)*)(i32* %0, double* @brcmp1.T4)
%255 = sitofp i32 %254 to double
store double %255, double* @brcmp1.z
%256 = load double, double* %2
%257 = load double, double* @brcmp1.x0
%258 = fmul double %256, %257
%259 = tail call double @sqrt(double %258)
%260 = fmul double %259, 0x3FD9884533D43656
%261 = load double, double* @brcmp1.z
%262 = fmul double %260, %261
%263 = tail call i32 (double*, double*, ...) bitcast (i32 (...)* @bcorr to i32 (double*, double*, ...)*)(double* %1, double* %2)
%264 = sub nsw i32 0, %263
%265 = sitofp i32 %264 to double
%266 = tail call double @exp(double %265)
%267 = fmul double %262, %266
br label %268
268: ; preds = %42, %80, %170, %182, %246
%269 = phi double [ %267, %246 ], [ %192, %182 ], [ %181, %170 ], [ %103, %80 ], [ %48, %42 ]
store double %269, double* @brcmp1.brcmp1
br label %270
270: ; preds = %268, %57
%271 = phi double [ %59, %57 ], [ %269, %268 ]
ret double %271
}