void mnbrak_sysrem(ax, bx, cx, fa, fb, fc, numlc, numJD, mag, sig, mag_ave,
                   sigma_clip, saturation) double *ax,
    *bx, *cx, *fa, *fb, *fc, **mag, **sig, *mag_ave, sigma_clip, saturation;
int numlc, numJD;
{
  double ulim, u, r, q, fu, dum;
  *fa = f1dim_sysrem(*ax, numlc, numJD, mag, sig, mag_ave, sigma_clip,
                     saturation);
  *fb = f1dim_sysrem(*bx, numlc, numJD, mag, sig, mag_ave, sigma_clip,
                     saturation);
  if (*fb > *fa) {
    (dum) = (*ax);
    (*ax) = (*bx);
    (*bx) = (dum);
    (dum) = (*fb);
    (*fb) = (*fa);
    (*fa) = (dum);
  }
  *cx = (*bx) + 1.618034 * (*bx - *ax);
  *fc = f1dim_sysrem(*cx, numlc, numJD, mag, sig, mag_ave, sigma_clip,
                     saturation);
  while (*fb > *fc) {
    r = (*bx - *ax) * (*fb - *fc);
    q = (*bx - *cx) * (*fb - *fa);
    u = (*bx) -
        ((*bx - *cx) * q - (*bx - *ax) * r) /
            (2.0 *
             ((q - r) >= 0.0
                  ? fabs(((((q - r) > 0 ? (q - r) : (-(q - r)))) > (1.0e-20)
                              ? (((q - r) > 0 ? (q - r) : (-(q - r))))
                              : (1.0e-20)))
                  : -fabs(((((q - r) > 0 ? (q - r) : (-(q - r)))) > (1.0e-20)
                               ? (((q - r) > 0 ? (q - r) : (-(q - r))))
                               : (1.0e-20)))));
    ulim = (*bx) + 100.0 * (*cx - *bx);
    if ((*bx - u) * (u - *cx) > 0.0) {
      fu = f1dim_sysrem(u, numlc, numJD, mag, sig, mag_ave, sigma_clip,
                        saturation);
      if (fu < *fc) {
        *ax = (*bx);
        *bx = u;
        *fa = (*fb);
        *fb = fu;
        return;
      } else if (fu > *fb) {
        *cx = u;
        *fc = fu;
        return;
      }
      u = (*cx) + 1.618034 * (*cx - *bx);
      fu = f1dim_sysrem(u, numlc, numJD, mag, sig, mag_ave, sigma_clip,
                        saturation);
    } else if ((*cx - u) * (u - ulim) > 0.0) {
      fu = f1dim_sysrem(u, numlc, numJD, mag, sig, mag_ave, sigma_clip,
                        saturation);
      if (fu < *fc) {
        (*bx) = (*cx);
        (*cx) = (u);
        (u) = (*cx + 1.618034 * (*cx - *bx));
        (*fb) = (*fc);
        (*fc) = (fu);
        (fu) = (f1dim_sysrem(u, numlc, numJD, mag, sig, mag_ave, sigma_clip,
                             saturation));
      }
    } else if ((u - ulim) * (ulim - *cx) >= 0.0) {
      u = ulim;
      fu = f1dim_sysrem(u, numlc, numJD, mag, sig, mag_ave, sigma_clip,
                        saturation);
    } else {
      u = (*cx) + 1.618034 * (*cx - *bx);
      fu = f1dim_sysrem(u, numlc, numJD, mag, sig, mag_ave, sigma_clip,
                        saturation);
    }
    (*ax) = (*bx);
    (*bx) = (*cx);
    (*cx) = (u);
    (*fa) = (*fb);
    (*fb) = (*fc);
    (*fc) = (fu);
  }
}


x86 assembly (clang, -O0):
<mnbrak_sysrem>:
push   %rbp
mov    %rsp,%rbp
sub    $0xc0,%rsp
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%eax
mov    0x10(%rbp),%eax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
movsd  %xmm0,-0x38(%rbp)
movsd  %xmm1,-0x40(%rbp)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x10(%rbp),%edi
mov    0x18(%rbp),%esi
mov    0x20(%rbp),%rdx
mov    0x28(%rbp),%rcx
mov    0x30(%rbp),%r8
movsd  -0x38(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm2
mov    $0x3,%al
call   1030 <f1dim_sysrem@plt>
cvtsi2sd %eax,%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x10(%rbp),%edi
mov    0x18(%rbp),%esi
mov    0x20(%rbp),%rdx
mov    0x28(%rbp),%rcx
mov    0x30(%rbp),%r8
movsd  -0x38(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm2
mov    $0x3,%al
call   1030 <f1dim_sysrem@plt>
cvtsi2sd %eax,%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
ucomisd (%rax),%xmm0
jbe    1227 <mnbrak_sysrem+0x117>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x70(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x70(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
subsd  (%rax),%xmm0
movsd  0xdb9(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x10(%rbp),%edi
mov    0x18(%rbp),%esi
mov    0x20(%rbp),%rdx
mov    0x28(%rbp),%rcx
mov    0x30(%rbp),%r8
movsd  -0x38(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm2
mov    $0x3,%al
call   1030 <f1dim_sysrem@plt>
cvtsi2sd %eax,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
ucomisd (%rax),%xmm0
jbe    197e <mnbrak_sysrem+0x86e>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x30(%rbp),%rax
subsd  (%rax),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  -0x60(%rbp),%xmm2
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x8(%rbp),%rax
subsd  (%rax),%xmm1
mulsd  -0x58(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x60(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     147a <mnbrak_sysrem+0x36a>
movsd  -0x60(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1396 <mnbrak_sysrem+0x286>
movsd  -0x60(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
jmp    13bf <mnbrak_sysrem+0x2af>
movsd  -0x60(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  0xc39(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1445 <mnbrak_sysrem+0x335>
movsd  -0x60(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1407 <mnbrak_sysrem+0x2f7>
movsd  -0x60(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
jmp    1430 <mnbrak_sysrem+0x320>
movsd  -0x60(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x98(%rbp)
ff
jmp    145a <mnbrak_sysrem+0x34a>
movsd  0xbbb(%rip),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
jmp    145a <mnbrak_sysrem+0x34a>
movsd  -0x98(%rbp),%xmm0
ff
movaps 0xbb7(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
jmp    159e <mnbrak_sysrem+0x48e>
movsd  -0x60(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    14a8 <mnbrak_sysrem+0x398>
movsd  -0x60(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
jmp    14d1 <mnbrak_sysrem+0x3c1>
movsd  -0x60(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0xb27(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1557 <mnbrak_sysrem+0x447>
movsd  -0x60(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1519 <mnbrak_sysrem+0x409>
movsd  -0x60(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
jmp    1542 <mnbrak_sysrem+0x432>
movsd  -0x60(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0xb8(%rbp)
ff
jmp    156c <mnbrak_sysrem+0x45c>
movsd  0xaa9(%rip),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
jmp    156c <mnbrak_sysrem+0x45c>
movsd  -0xb8(%rbp),%xmm0
ff
movaps 0xaa5(%rip),%xmm1
pand   %xmm1,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm1
movsd  -0xa0(%rbp),%xmm3
ff
movsd  0xa60(%rip),%xmm2
mulsd  %xmm3,%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  0xa27(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
subsd  -0x50(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm1
mulsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1742 <mnbrak_sysrem+0x632>
movsd  -0x50(%rbp),%xmm0
mov    0x10(%rbp),%edi
mov    0x18(%rbp),%esi
mov    0x20(%rbp),%rdx
mov    0x28(%rbp),%rcx
mov    0x30(%rbp),%r8
movsd  -0x38(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm2
mov    $0x3,%al
call   1030 <f1dim_sysrem@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    16a8 <mnbrak_sysrem+0x598>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x50(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x68(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    197e <mnbrak_sysrem+0x86e>
movsd  -0x68(%rbp),%xmm0
mov    -0x28(%rbp),%rax
ucomisd (%rax),%xmm0
jbe    16da <mnbrak_sysrem+0x5ca>
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x68(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    197e <mnbrak_sysrem+0x86e>
jmp    16df <mnbrak_sysrem+0x5cf>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  0x901(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    0x10(%rbp),%edi
mov    0x18(%rbp),%esi
mov    0x20(%rbp),%rdx
mov    0x28(%rbp),%rcx
mov    0x30(%rbp),%r8
movsd  -0x38(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm2
mov    $0x3,%al
call   1030 <f1dim_sysrem@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x68(%rbp)
jmp    191f <mnbrak_sysrem+0x80f>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
subsd  -0x50(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
subsd  -0x48(%rbp),%xmm1
mulsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    184f <mnbrak_sysrem+0x73f>
movsd  -0x50(%rbp),%xmm0
mov    0x10(%rbp),%edi
mov    0x18(%rbp),%esi
mov    0x20(%rbp),%rdx
mov    0x28(%rbp),%rcx
mov    0x30(%rbp),%r8
movsd  -0x38(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm2
mov    $0x3,%al
call   1030 <f1dim_sysrem@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    184a <mnbrak_sysrem+0x73a>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  0x811(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x68(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x50(%rbp),%xmm0
mov    0x10(%rbp),%edi
mov    0x18(%rbp),%esi
mov    0x20(%rbp),%rdx
mov    0x28(%rbp),%rcx
mov    0x30(%rbp),%r8
movsd  -0x38(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm2
mov    $0x3,%al
call   1030 <f1dim_sysrem@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x68(%rbp)
jmp    191a <mnbrak_sysrem+0x80a>
movsd  -0x50(%rbp),%xmm0
subsd  -0x48(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm1
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm1
mulsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     18b7 <mnbrak_sysrem+0x7a7>
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    0x10(%rbp),%edi
mov    0x18(%rbp),%esi
mov    0x20(%rbp),%rdx
mov    0x28(%rbp),%rcx
mov    0x30(%rbp),%r8
movsd  -0x38(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm2
mov    $0x3,%al
call   1030 <f1dim_sysrem@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x68(%rbp)
jmp    1915 <mnbrak_sysrem+0x805>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  0x729(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    0x10(%rbp),%edi
mov    0x18(%rbp),%esi
mov    0x20(%rbp),%rdx
mov    0x28(%rbp),%rcx
mov    0x30(%rbp),%r8
movsd  -0x38(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm2
mov    $0x3,%al
call   1030 <f1dim_sysrem@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x68(%rbp)
jmp    191a <mnbrak_sysrem+0x80a>
jmp    191f <mnbrak_sysrem+0x80f>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x68(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    128e <mnbrak_sysrem+0x17e>
add    $0xc0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<mnbrak_sysrem>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x18,%rsp
movaps %xmm1,%xmm2
movsd  %xmm1,0x10(%rsp)
movaps %xmm0,%xmm1
movsd  %xmm0,0x8(%rsp)
mov    %r9,%r15
mov    %r8,%r12
mov    %rcx,%r14
mov    %rdx,%r13
mov    %rsi,%rbx
mov    %rdi,%rbp
mov    0x70(%rsp),%r8
mov    0x68(%rsp),%rcx
mov    0x60(%rsp),%rdx
mov    0x58(%rsp),%esi
mov    0x50(%rsp),%edi
movsd  0x0(%rbp),%xmm0
mov    $0x3,%al
call   1030 <f1dim_sysrem@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,(%r14)
movsd  (%rbx),%xmm0
mov    0x50(%rsp),%edi
mov    0x58(%rsp),%esi
mov    0x60(%rsp),%rdx
mov    0x68(%rsp),%rcx
mov    0x70(%rsp),%r8
movsd  0x8(%rsp),%xmm1
movsd  0x10(%rsp),%xmm2
mov    $0x3,%al
call   1030 <f1dim_sysrem@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,(%r12)
ucomisd (%r14),%xmm0
jbe    11db <mnbrak_sysrem+0xcb>
movsd  0x0(%rbp),%xmm0
movsd  (%rbx),%xmm1
movsd  %xmm1,0x0(%rbp)
movsd  %xmm0,(%rbx)
movsd  (%r12),%xmm0
movsd  (%r14),%xmm1
movsd  %xmm1,(%r12)
movsd  %xmm0,(%r14)
movsd  (%rbx),%xmm1
movapd %xmm1,%xmm0
subsd  0x0(%rbp),%xmm0
mulsd  0xe10(%rip),%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x0(%r13)
mov    0x50(%rsp),%edi
mov    0x58(%rsp),%esi
mov    0x60(%rsp),%rdx
mov    0x68(%rsp),%rcx
mov    0x70(%rsp),%r8
movsd  0x8(%rsp),%xmm1
movsd  0x10(%rsp),%xmm2
mov    $0x3,%al
call   1030 <f1dim_sysrem@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,(%r15)
movsd  (%r12),%xmm2
ucomisd %xmm0,%xmm2
jbe    1596 <mnbrak_sysrem+0x486>
movapd 0xdd7(%rip),%xmm10
xorpd  %xmm11,%xmm11
jmp    1321 <mnbrak_sysrem+0x211>
movsd  0x0(%r13),%xmm1
movsd  %xmm1,(%rbx)
movsd  (%rsp),%xmm1
movsd  %xmm1,0x0(%r13)
movapd %xmm1,%xmm4
subsd  (%rbx),%xmm4
mulsd  0xd88(%rip),%xmm4
addsd  %xmm1,%xmm4
movsd  (%r15),%xmm1
movsd  %xmm1,(%r12)
movsd  %xmm0,(%r15)
nopl   0x0(%rax)
movsd  %xmm4,(%rsp)
movapd %xmm4,%xmm0
mov    0x50(%rsp),%edi
mov    0x58(%rsp),%esi
mov    0x60(%rsp),%rdx
mov    0x68(%rsp),%rcx
mov    0x70(%rsp),%r8
movsd  0x8(%rsp),%xmm1
movsd  0x10(%rsp),%xmm2
mov    $0x3,%al
call   1030 <f1dim_sysrem@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  (%rsp),%xmm2
movapd 0xd48(%rip),%xmm10
movsd  (%rbx),%xmm1
movsd  %xmm1,0x0(%rbp)
movsd  0x0(%r13),%xmm1
movsd  %xmm1,(%rbx)
movsd  %xmm2,0x0(%r13)
movsd  (%r12),%xmm1
movsd  %xmm1,(%r14)
movsd  (%r15),%xmm1
movsd  %xmm1,(%r12)
movsd  %xmm0,(%r15)
movsd  (%r12),%xmm2
ucomisd %xmm0,%xmm2
xorpd  %xmm11,%xmm11
jbe    1596 <mnbrak_sysrem+0x486>
movsd  (%rbx),%xmm9
movapd %xmm9,%xmm12
subsd  0x0(%rbp),%xmm12
movapd %xmm2,%xmm4
subsd  %xmm0,%xmm4
mulsd  %xmm12,%xmm4
movsd  0x0(%r13),%xmm8
movapd %xmm9,%xmm3
subsd  %xmm8,%xmm3
subsd  (%r14),%xmm2
mulsd  %xmm3,%xmm2
movapd %xmm2,%xmm6
subsd  %xmm4,%xmm6
movapd %xmm6,%xmm0
xorpd  %xmm10,%xmm0
xorpd  %xmm1,%xmm1
cmpltsd %xmm6,%xmm1
movapd %xmm1,%xmm7
andpd  %xmm6,%xmm7
andnpd %xmm0,%xmm1
orpd   %xmm7,%xmm1
movsd  0xc7f(%rip),%xmm5
ucomisd %xmm5,%xmm1
movapd %xmm5,%xmm7
cmpnltsd %xmm1,%xmm7
movapd %xmm7,%xmm1
andpd  %xmm5,%xmm1
andnpd %xmm6,%xmm7
orpd   %xmm1,%xmm7
movapd %xmm7,%xmm1
jbe    13b0 <mnbrak_sysrem+0x2a0>
movapd %xmm0,%xmm1
ucomisd %xmm11,%xmm6
ja     13bb <mnbrak_sysrem+0x2ab>
movapd %xmm1,%xmm7
mulsd  %xmm12,%xmm4
mulsd  %xmm2,%xmm3
subsd  %xmm4,%xmm3
movapd %xmm7,%xmm0
andpd  0xc5c(%rip),%xmm0
orpd   %xmm10,%xmm7
xorpd  %xmm1,%xmm1
cmpnlesd %xmm6,%xmm1
andpd  %xmm1,%xmm7
andnpd %xmm0,%xmm1
orpd   %xmm7,%xmm1
addsd  %xmm1,%xmm1
divsd  %xmm1,%xmm3
movapd %xmm9,%xmm0
subsd  %xmm3,%xmm0
movapd %xmm8,%xmm2
subsd  %xmm9,%xmm2
movapd %xmm2,%xmm4
mulsd  0xbfb(%rip),%xmm4
movapd %xmm9,%xmm3
subsd  %xmm0,%xmm3
movapd %xmm0,%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm3,%xmm1
ucomisd %xmm11,%xmm1
jbe    14b0 <mnbrak_sysrem+0x3a0>
movsd  %xmm0,(%rsp)
mov    0x50(%rsp),%edi
mov    0x58(%rsp),%esi
mov    0x60(%rsp),%rdx
mov    0x68(%rsp),%rcx
mov    0x70(%rsp),%r8
movsd  0x8(%rsp),%xmm1
movsd  0x10(%rsp),%xmm2
mov    $0x3,%al
call   1030 <f1dim_sysrem@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  (%r15),%xmm1
ucomisd %xmm0,%xmm1
ja     155e <mnbrak_sysrem+0x44e>
ucomisd (%r12),%xmm0
ja     1583 <mnbrak_sysrem+0x473>
movsd  0x0(%r13),%xmm0
movapd %xmm0,%xmm4
subsd  (%rbx),%xmm4
mulsd  0xb67(%rip),%xmm4
addsd  %xmm0,%xmm4
jmp    1290 <mnbrak_sysrem+0x180>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
addsd  %xmm9,%xmm4
movapd %xmm8,%xmm1
subsd  %xmm0,%xmm1
movapd %xmm0,%xmm3
subsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
ucomisd %xmm11,%xmm1
jbe    1530 <mnbrak_sysrem+0x420>
mov    0x50(%rsp),%edi
mov    0x58(%rsp),%esi
mov    0x60(%rsp),%rdx
mov    0x68(%rsp),%rcx
mov    0x70(%rsp),%r8
movsd  0x8(%rsp),%xmm1
movsd  0x10(%rsp),%xmm2
mov    $0x3,%al
movsd  %xmm0,(%rsp)
call   1030 <f1dim_sysrem@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  (%r15),%xmm1
ucomisd %xmm0,%xmm1
ja     1253 <mnbrak_sysrem+0x143>
movapd 0xb01(%rip),%xmm10
movsd  (%rsp),%xmm2
jmp    12d8 <mnbrak_sysrem+0x1c8>
nopl   0x0(%rax)
movapd %xmm4,%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm3,%xmm1
ucomisd %xmm11,%xmm1
jae    1290 <mnbrak_sysrem+0x180>
mulsd  0xab0(%rip),%xmm2
addsd  %xmm8,%xmm2
movapd %xmm2,%xmm4
jmp    1290 <mnbrak_sysrem+0x180>
movsd  (%rbx),%xmm1
movsd  %xmm1,0x0(%rbp)
movsd  (%rsp),%xmm1
movsd  %xmm1,(%rbx)
movsd  (%r12),%xmm1
movsd  %xmm1,(%r14)
movsd  %xmm0,(%r12)
jmp    1596 <mnbrak_sysrem+0x486>
movsd  (%rsp),%xmm1
movsd  %xmm1,0x0(%r13)
mov    %r15,%r12
movsd  %xmm0,(%r15)
add    $0x18,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
define void @mnbrak_sysrem(double* nocapture %0, double* nocapture %1, double* nocapture %2, double* nocapture %3, double* nocapture %4, double* nocapture %5, i32 %6, i32 %7, double** %8, double** %9, double* %10, double %11, double %12) {
%14 = load double, double* %0
%15 = tail call i32 (double, i32, i32, double**, double**, double*, double, double, ...) bitcast (i32 (...)* @f1dim_sysrem to i32 (double, i32, i32, double**, double**, double*, double, double, ...)*)(double %14, i32 %6, i32 %7, double** %8, double** %9, double* %10, double %11, double %12)
%16 = sitofp i32 %15 to double
store double %16, double* %3
%17 = load double, double* %1
%18 = tail call i32 (double, i32, i32, double**, double**, double*, double, double, ...) bitcast (i32 (...)* @f1dim_sysrem to i32 (double, i32, i32, double**, double**, double*, double, double, ...)*)(double %17, i32 %6, i32 %7, double** %8, double** %9, double* %10, double %11, double %12)
%19 = sitofp i32 %18 to double
store double %19, double* %4
%20 = load double, double* %3
%21 = fcmp olt double %20, %19
br i1 %21, label %22, label %27
22: ; preds = %13
%23 = load double, double* %0
%24 = load double, double* %1
store double %24, double* %0
store double %23, double* %1
%25 = load double, double* %4
%26 = load double, double* %3
store double %26, double* %4
store double %25, double* %3
br label %27
27: ; preds = %22, %13
%28 = load double, double* %1
%29 = load double, double* %0
%30 = fsub double %28, %29
%31 = tail call double @llvm.fmuladd.f64(double %30, double 0x3FF9E3779E9D0E99, double %28)
store double %31, double* %2
%32 = tail call i32 (double, i32, i32, double**, double**, double*, double, double, ...) bitcast (i32 (...)* @f1dim_sysrem to i32 (double, i32, i32, double**, double**, double*, double, double, ...)*)(double %31, i32 %6, i32 %7, double** %8, double** %9, double* %10, double %11, double %12)
%33 = sitofp i32 %32 to double
store double %33, double* %5
%34 = load double, double* %4
%35 = fcmp ogt double %34, %33
br i1 %35, label %36, label %127
36: ; preds = %27, %116
%37 = phi double [ %123, %116 ], [ %34, %27 ]
%38 = phi double [ %117, %116 ], [ %33, %27 ]
%39 = load double, double* %1
%40 = load double, double* %0
%41 = fsub double %39, %40
%42 = fsub double %37, %38
%43 = fmul double %42, %41
%44 = load double, double* %2
%45 = fsub double %39, %44
%46 = load double, double* %3
%47 = fsub double %37, %46
%48 = fmul double %45, %47
%49 = fneg double %41
%50 = fmul double %43, %49
%51 = tail call double @llvm.fmuladd.f64(double %45, double %48, double %50)
%52 = fsub double %48, %43
%53 = fcmp ult double %52, 0.000000e+00
%54 = fcmp ogt double %52, 0.000000e+00
%55 = fneg double %52
%56 = select i1 %54, double %52, double %55
%57 = fcmp ule double %56, 0x3BC79CA10C924223
%58 = or i1 %54, %57
%59 = select i1 %57, double 0x3BC79CA10C924223, double %52
%60 = select i1 %58, double %59, double %55
%61 = tail call double @llvm.fabs.f64(double %60)
%62 = fneg double %61
%63 = select i1 %53, double %62, double %61
%64 = fmul double %63, 2.000000e+00
%65 = fdiv double %51, %64
%66 = fsub double %39, %65
%67 = fsub double %44, %39
%68 = tail call double @llvm.fmuladd.f64(double %67, double 1.000000e+02, double %39)
%69 = fsub double %39, %66
%70 = fsub double %66, %44
%71 = fmul double %69, %70
%72 = fcmp ogt double %71, 0.000000e+00
br i1 %72, label %73, label %90
73: ; preds = %36
%74 = tail call i32 (double, i32, i32, double**, double**, double*, double, double, ...) bitcast (i32 (...)* @f1dim_sysrem to i32 (double, i32, i32, double**, double**, double*, double, double, ...)*)(double %66, i32 %6, i32 %7, double** %8, double** %9, double* %10, double %11, double %12)
%75 = sitofp i32 %74 to double
%76 = load double, double* %5
%77 = fcmp ogt double %76, %75
br i1 %77, label %78, label %81
78: ; preds = %73
%79 = load double, double* %1
store double %79, double* %0
store double %66, double* %1
%80 = load double, double* %4
store double %80, double* %3
br label %125
81: ; preds = %73
%82 = load double, double* %4
%83 = fcmp olt double %82, %75
br i1 %83, label %84, label %85
84: ; preds = %81
store double %66, double* %2
br label %125
85: ; preds = %81
%86 = load double, double* %2
%87 = load double, double* %1
%88 = fsub double %86, %87
%89 = tail call double @llvm.fmuladd.f64(double %88, double 0x3FF9E3779E9D0E99, double %86)
br label %112
90: ; preds = %36
%91 = fsub double %44, %66
%92 = fsub double %66, %68
%93 = fmul double %91, %92
%94 = fcmp ogt double %93, 0.000000e+00
br i1 %94, label %95, label %106
95: ; preds = %90
%96 = tail call i32 (double, i32, i32, double**, double**, double*, double, double, ...) bitcast (i32 (...)* @f1dim_sysrem to i32 (double, i32, i32, double**, double**, double*, double, double, ...)*)(double %66, i32 %6, i32 %7, double** %8, double** %9, double* %10, double %11, double %12)
%97 = sitofp i32 %96 to double
%98 = load double, double* %5
%99 = fcmp ogt double %98, %97
br i1 %99, label %100, label %116
100: ; preds = %95
%101 = load double, double* %2
store double %101, double* %1
store double %66, double* %2
%102 = load double, double* %1
%103 = fsub double %66, %102
%104 = tail call double @llvm.fmuladd.f64(double %103, double 0x3FF9E3779E9D0E99, double %66)
%105 = load double, double* %5
store double %105, double* %4
store double %97, double* %5
br label %112
106: ; preds = %90
%107 = fsub double %68, %44
%108 = fmul double %107, %92
%109 = fcmp ult double %108, 0.000000e+00
br i1 %109, label %110, label %112
110: ; preds = %106
%111 = tail call double @llvm.fmuladd.f64(double %67, double 0x3FF9E3779E9D0E99, double %44)
br label %112
112: ; preds = %106, %85, %110, %100
%113 = phi double [ %104, %100 ], [ %111, %110 ], [ %89, %85 ], [ %68, %106 ]
%114 = tail call i32 (double, i32, i32, double**, double**, double*, double, double, ...) bitcast (i32 (...)* @f1dim_sysrem to i32 (double, i32, i32, double**, double**, double*, double, double, ...)*)(double %113, i32 %6, i32 %7, double** %8, double** %9, double* %10, double %11, double %12)
%115 = sitofp i32 %114 to double
br label %116
116: ; preds = %112, %95
%117 = phi double [ %97, %95 ], [ %115, %112 ]
%118 = phi double [ %66, %95 ], [ %113, %112 ]
%119 = load double, double* %1
store double %119, double* %0
%120 = load double, double* %2
store double %120, double* %1
store double %118, double* %2
%121 = load double, double* %4
store double %121, double* %3
%122 = load double, double* %5
store double %122, double* %4
store double %117, double* %5
%123 = load double, double* %4
%124 = fcmp ogt double %123, %117
br i1 %124, label %36, label %127
125: ; preds = %78, %84
%126 = phi double* [ %5, %84 ], [ %4, %78 ]
store double %75, double* %126
br label %127
127: ; preds = %116, %125, %27
ret void
}