int jtridib_(int *n, double *eps1, double *d, double *e, double *e2, double *lb,
             double *ub, int *m11, int *m, double *w, int *ind, int *ierr,
             double *rv4, double *rv5) {
  static double machep = 1.25e-15;
  int i1, i2;
  double d1, d2, d3;
  static int i, j, k, l, p, q, r, s;
  static double u, v;
  static int m1, m2;
  static double t1, t2, x0, x1;
  static int m22, ii;
  static double xu;
  static int isturm, tag;
  --rv5;
  --rv4;
  --e2;
  --e;
  --d;
  --ind;
  --w;
  *ierr = 0;
  tag = 0;
  xu = d[1];
  x0 = d[1];
  u = 0.;
  i1 = *n;
  for (i = 1; i <= i1; ++i) {
    x1 = u;
    u = 0.;
    if (i != *n) {
      u = (d1 = e[i + 1], ((d1) >= 0 ? (d1) : -(d1)));
    }
    d1 = d[i] - (x1 + u);
    xu = ((d1) <= (xu) ? (d1) : (xu));
    d1 = d[i] + (x1 + u);
    x0 = ((d1) >= (x0) ? (d1) : (x0));
    if (i == 1) {
      goto L20;
    }
    if ((d1 = e[i], ((d1) >= 0 ? (d1) : -(d1))) >
        machep * ((d2 = d[i], ((d2) >= 0 ? (d2) : -(d2))) +
                  (d3 = d[i - 1], ((d3) >= 0 ? (d3) : -(d3))))) {
      goto L40;
    }
  L20:
    e2[i] = 0.;
  L40:;
  }
  d1 = ((xu) >= 0 ? (xu) : -(xu)), d2 = ((x0) >= 0 ? (x0) : -(x0));
  x1 = ((d1) >= (d2) ? (d1) : (d2)) * machep * (double)(*n);
  xu -= x1;
  t1 = xu;
  x0 += x1;
  t2 = x0;
  p = 1;
  q = *n;
  m1 = *m11 - 1;
  if (m1 == 0) {
    goto L75;
  }
  isturm = 1;
L50:
  v = x1;
  x1 = xu + (x0 - xu) * .5;
  if (x1 == v) {
    goto L980;
  }
  goto L320;
L60:
  if ((i1 = s - m1) < 0) {
    goto L65;
  } else if (i1 == 0) {
    goto L73;
  } else {
    goto L70;
  }
L65:
  xu = x1;
  goto L50;
L70:
  x0 = x1;
  goto L50;
L73:
  xu = x1;
  t1 = x1;
L75:
  m22 = m1 + *m;
  if (m22 == *n) {
    goto L90;
  }
  x0 = t2;
  isturm = 2;
  goto L50;
L80:
  if ((i1 = s - m22) < 0) {
    goto L65;
  } else if (i1 == 0) {
    goto L85;
  } else {
    goto L70;
  }
L85:
  t2 = x1;
L90:
  q = 0;
  r = 0;
L100:
  if (r == *m) {
    goto L1001;
  }
  ++tag;
  p = q + 1;
  xu = d[p];
  x0 = d[p];
  u = 0.;
  i1 = *n;
  for (q = p; q <= i1; ++q) {
    x1 = u;
    u = 0.;
    v = 0.;
    if (q == *n) {
      goto L110;
    }
    u = (d1 = e[q + 1], ((d1) >= 0 ? (d1) : -(d1)));
    v = e2[q + 1];
  L110:
    d1 = d[q] - (x1 + u);
    xu = ((d1) <= (xu) ? (d1) : (xu));
    d1 = d[q] + (x1 + u);
    x0 = ((d1) >= (x0) ? (d1) : (x0));
    if (v == 0.) {
      goto L140;
    }
  }
L140:
  d1 = ((xu) >= 0 ? (xu) : -(xu)), d2 = ((x0) >= 0 ? (x0) : -(x0));
  x1 = ((d1) >= (d2) ? (d1) : (d2)) * machep;
  if (*eps1 <= 0.) {
    *eps1 = -x1;
  }
  if (p != q) {
    goto L180;
  }
  if (t1 > d[p] || d[p] >= t2) {
    goto L940;
  }
  m1 = p;
  m2 = p;
  rv5[p] = d[p];
  goto L900;
L180:
  x1 *= (double)(q - p + 1);
  d1 = t1, d2 = xu - x1;
  *lb = ((d1) >= (d2) ? (d1) : (d2));
  d1 = t2, d2 = x0 + x1;
  *ub = ((d1) <= (d2) ? (d1) : (d2));
  x1 = *lb;
  isturm = 3;
  goto L320;
L200:
  m1 = s + 1;
  x1 = *ub;
  isturm = 4;
  goto L320;
L220:
  m2 = s;
  if (m1 > m2) {
    goto L940;
  }
  x0 = *ub;
  isturm = 5;
  i1 = m2;
  for (i = m1; i <= i1; ++i) {
    rv5[i] = *ub;
    rv4[i] = *lb;
  }
  k = m2;
L250:
  xu = *lb;
  i1 = k;
  for (ii = m1; ii <= i1; ++ii) {
    i = m1 + k - ii;
    if (xu >= rv4[i]) {
      goto L260;
    }
    xu = rv4[i];
    goto L280;
  L260:;
  }
L280:
  if (x0 > rv5[k]) {
    x0 = rv5[k];
  }
L300:
  x1 = (xu + x0) * .5;
  if (x0 - xu <=
      machep * 2. * (((xu) >= 0 ? (xu) : -(xu)) + ((x0) >= 0 ? (x0) : -(x0))) +
          ((*eps1) >= 0 ? (*eps1) : -(*eps1))) {
    goto L420;
  }
L320:
  s = p - 1;
  u = 1.;
  i1 = q;
  for (i = p; i <= i1; ++i) {
    if (u != 0.) {
      goto L325;
    }
    v = (d1 = e[i], ((d1) >= 0 ? (d1) : -(d1))) / machep;
    if (e2[i] == 0.) {
      v = 0.;
    }
    goto L330;
  L325:
    v = e2[i] / u;
  L330:
    u = d[i] - x1 - v;
    if (u < 0.) {
      ++s;
    }
  }
  switch ((int)isturm) {
  case 1:
    goto L60;
  case 2:
    goto L80;
  case 3:
    goto L200;
  case 4:
    goto L220;
  case 5:
    goto L360;
  }
L360:
  if (s >= k) {
    goto L400;
  }
  xu = x1;
  if (s >= m1) {
    goto L380;
  }
  rv4[m1] = x1;
  goto L300;
L380:
  rv4[s + 1] = x1;
  if (rv5[s] > x1) {
    rv5[s] = x1;
  }
  goto L300;
L400:
  x0 = x1;
  goto L300;
L420:
  rv5[k] = x1;
  --k;
  if (k >= m1) {
    goto L250;
  }
L900:
  s = r;
  r = r + m2 - m1 + 1;
  j = 1;
  k = m1;
  i1 = r;
  for (l = 1; l <= i1; ++l) {
    if (j > s) {
      goto L910;
    }
    if (k > m2) {
      goto L940;
    }
    if (rv5[k] >= w[l]) {
      goto L915;
    }
    i2 = s;
    for (ii = j; ii <= i2; ++ii) {
      i = l + s - ii;
      w[i + 1] = w[i];
      ind[i + 1] = ind[i];
    }
  L910:
    w[l] = rv5[k];
    ind[l] = tag;
    ++k;
    goto L920;
  L915:
    ++j;
  L920:;
  }
L940:
  if (q < *n) {
    goto L100;
  }
  goto L1001;
L980:
  *ierr = *n * 3 + isturm;
L1001:
  *lb = t1;
  *ub = t2;
  return 0;
}


x86 assembly (clang, -O0):
<jtridib_>:
push   %rbp
mov    %rsp,%rbp
sub    $0xb8,%rsp
mov    0x48(%rbp),%rax
mov    0x40(%rbp),%rax
mov    0x38(%rbp),%rax
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
mov    0x48(%rbp),%rax
add    $0xfffffffffffffff8,%rax
mov    %rax,0x48(%rbp)
mov    0x40(%rbp),%rax
add    $0xfffffffffffffff8,%rax
mov    %rax,0x40(%rbp)
mov    -0x28(%rbp),%rax
add    $0xfffffffffffffff8,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
add    $0xfffffffffffffff8,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
add    $0xfffffffffffffff8,%rax
mov    %rax,-0x18(%rbp)
mov    0x30(%rbp),%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,0x30(%rbp)
mov    0x28(%rbp),%rax
add    $0xfffffffffffffff8,%rax
mov    %rax,0x28(%rbp)
mov    0x38(%rbp),%rax
movl   $0x0,(%rax)
movl   $0x0,0x3ef1(%rip)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,0x3ed4(%rip)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,0x3eab(%rip)
xorps  %xmm0,%xmm0
movsd  %xmm0,0x3e78(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x34(%rbp)
movl   $0x1,0x3e45(%rip)
mov    0x3e3f(%rip),%eax
cmp    -0x34(%rbp),%eax
jg     150f <jtridib_+0x40f>
movsd  0x3e4e(%rip),%xmm0
movsd  %xmm0,0x3e76(%rip)
xorps  %xmm0,%xmm0
movsd  %xmm0,0x3e3b(%rip)
mov    0x3e15(%rip),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
je     1290 <jtridib_+0x190>
mov    -0x20(%rbp),%rax
mov    0x3dff(%rip),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x40(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1262 <jtridib_+0x162>
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x58(%rbp)
jmp    1283 <jtridib_+0x183>
movsd  -0x40(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  %xmm0,0x3dc0(%rip)
mov    -0x18(%rbp),%rax
movslq 0x3d95(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  0x3dd8(%rip),%xmm1
addsd  0x3da0(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x40(%rbp),%xmm1
movsd  0x3dca(%rip),%xmm0
ucomisd %xmm1,%xmm0
jb     12df <jtridib_+0x1df>
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
jmp    12ec <jtridib_+0x1ec>
movsd  0x3da9(%rip),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x60(%rbp),%xmm0
movsd  %xmm0,0x3d97(%rip)
mov    -0x18(%rbp),%rax
movslq 0x3d2c(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  0x3d6f(%rip),%xmm1
addsd  0x3d37(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x40(%rbp),%xmm0
ucomisd 0x3d49(%rip),%xmm0
jb     1344 <jtridib_+0x244>
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x68(%rbp)
jmp    1351 <jtridib_+0x251>
movsd  0x3d2c(%rip),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movsd  %xmm0,0x3d1a(%rip)
cmpl   $0x1,0x3ccb(%rip)
jne    1370 <jtridib_+0x270>
jmp    14e3 <jtridib_+0x3e3>
mov    -0x20(%rbp),%rax
movslq 0x3cb5(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x40(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     13a6 <jtridib_+0x2a6>
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
jmp    13c7 <jtridib_+0x2c7>
movsd  -0x40(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  0x3c47(%rip),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x18(%rbp),%rax
movslq 0x3c47(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x48(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1417 <jtridib_+0x317>
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
jmp    143b <jtridib_+0x33b>
movsd  -0x48(%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  %xmm0,-0x90(%rbp)
ff
mov    -0x18(%rbp),%rax
mov    0x3bdb(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x50(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1489 <jtridib_+0x389>
movsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
jmp    14ad <jtridib_+0x3ad>
movsd  -0x50(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm1
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x98(%rbp),%xmm3
ff
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
ucomisd %xmm1,%xmm0
jbe    14de <jtridib_+0x3de>
jmp    14f6 <jtridib_+0x3f6>
jmp    14e3 <jtridib_+0x3e3>
mov    -0x28(%rbp),%rax
movslq 0x3b42(%rip),%rcx
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
jmp    14fb <jtridib_+0x3fb>
mov    0x3b2f(%rip),%eax
add    $0x1,%eax
mov    %eax,0x3b26(%rip)
jmp    11eb <jtridib_+0xeb>
movsd  0x3b79(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1539 <jtridib_+0x439>
movsd  0x3b64(%rip),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
jmp    1560 <jtridib_+0x460>
movsd  0x3b4f(%rip),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0x40(%rbp)
movsd  0x3b03(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1597 <jtridib_+0x497>
movsd  0x3aee(%rip),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
jmp    15be <jtridib_+0x4be>
movsd  0x3ad9(%rip),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0x48(%rbp)
movsd  -0x40(%rbp),%xmm0
ucomisd -0x48(%rbp),%xmm0
jb     15ed <jtridib_+0x4ed>
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
jmp    15fa <jtridib_+0x4fa>
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
mulsd  0x3a16(%rip),%xmm0
mov    -0x8(%rbp),%rax
cvtsi2sdl (%rax),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,0x3a62(%rip)
movsd  0x3a5a(%rip),%xmm1
movsd  0x3a62(%rip),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x3a56(%rip)
movsd  0x3a4e(%rip),%xmm0
movsd  %xmm0,0x3a1e(%rip)
movsd  0x3a2e(%rip),%xmm0
addsd  0x3a1e(%rip),%xmm0
movsd  %xmm0,0x3a16(%rip)
movsd  0x3a0e(%rip),%xmm0
movsd  %xmm0,0x39fe(%rip)
movl   $0x1,0x39c4(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,0x39bc(%rip)
mov    0x18(%rbp),%rax
mov    (%rax),%eax
sub    $0x1,%eax
mov    %eax,0x39c9(%rip)
cmpl   $0x0,0x39c2(%rip)
jne    16a9 <jtridib_+0x5a9>
jmp    1794 <jtridib_+0x694>
movl   $0x1,0x39e5(%rip)
movsd  0x39c5(%rip),%xmm0
movsd  %xmm0,0x3995(%rip)
movsd  0x39c5(%rip),%xmm1
movsd  0x39a5(%rip),%xmm0
subsd  0x39b5(%rip),%xmm0
movsd  0x1925(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x398d(%rip)
movsd  0x3985(%rip),%xmm0
ucomisd 0x3955(%rip),%xmm0
jne    1714 <jtridib_+0x614>
jp     1714 <jtridib_+0x614>
jmp    25ca <jtridib_+0x14ca>
jmp    20fa <jtridib_+0xffa>
mov    0x392d(%rip),%eax
sub    0x393b(%rip),%eax
mov    %eax,-0x34(%rbp)
cmp    $0x0,%eax
jge    1736 <jtridib_+0x636>
jmp    174a <jtridib_+0x64a>
cmpl   $0x0,-0x34(%rbp)
jne    1745 <jtridib_+0x645>
jmp    1774 <jtridib_+0x674>
jmp    175f <jtridib_+0x65f>
movsd  0x392e(%rip),%xmm0
movsd  %xmm0,0x3936(%rip)
jmp    16b3 <jtridib_+0x5b3>
movsd  0x3919(%rip),%xmm0
movsd  %xmm0,0x3909(%rip)
jmp    16b3 <jtridib_+0x5b3>
movsd  0x3904(%rip),%xmm0
movsd  %xmm0,0x390c(%rip)
movsd  0x38f4(%rip),%xmm0
movsd  %xmm0,0x38d4(%rip)
mov    0x38c6(%rip),%eax
mov    0x20(%rbp),%rcx
add    (%rcx),%eax
mov    %eax,0x38e2(%rip)
mov    0x38dc(%rip),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
jne    17bd <jtridib_+0x6bd>
jmp    181d <jtridib_+0x71d>
movsd  0x38ab(%rip),%xmm0
movsd  %xmm0,0x38ab(%rip)
movl   $0x2,0x38c1(%rip)
jmp    16b3 <jtridib_+0x5b3>
mov    0x386a(%rip),%eax
sub    0x38a0(%rip),%eax
mov    %eax,-0x34(%rbp)
cmp    $0x0,%eax
jge    17f9 <jtridib_+0x6f9>
jmp    174a <jtridib_+0x64a>
cmpl   $0x0,-0x34(%rbp)
jne    1808 <jtridib_+0x708>
jmp    180d <jtridib_+0x70d>
jmp    175f <jtridib_+0x65f>
movsd  0x386b(%rip),%xmm0
movsd  %xmm0,0x3853(%rip)
movl   $0x0,0x381d(%rip)
movl   $0x0,0x3817(%rip)
mov    0x3811(%rip),%eax
mov    0x20(%rbp),%rcx
cmp    (%rcx),%eax
jne    1848 <jtridib_+0x748>
jmp    25dd <jtridib_+0x14dd>
mov    0x384e(%rip),%eax
add    $0x1,%eax
mov    %eax,0x3845(%rip)
mov    0x37e7(%rip),%eax
add    $0x1,%eax
mov    %eax,0x37da(%rip)
mov    -0x18(%rbp),%rax
movslq 0x37cf(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,0x3812(%rip)
mov    -0x18(%rbp),%rax
movslq 0x37b7(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,0x37e2(%rip)
xorps  %xmm0,%xmm0
movsd  %xmm0,0x37af(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x34(%rbp)
mov    0x3790(%rip),%eax
mov    %eax,0x378e(%rip)
mov    0x3788(%rip),%eax
cmp    -0x34(%rbp),%eax
jg     1aaa <jtridib_+0x9aa>
movsd  0x3783(%rip),%xmm0
movsd  %xmm0,0x37ab(%rip)
xorps  %xmm0,%xmm0
movsd  %xmm0,0x3770(%rip)
xorps  %xmm0,%xmm0
movsd  %xmm0,0x376d(%rip)
mov    0x3753(%rip),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
jne    1902 <jtridib_+0x802>
jmp    1991 <jtridib_+0x891>
mov    -0x20(%rbp),%rax
mov    0x3738(%rip),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x40(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1940 <jtridib_+0x840>
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
jmp    1964 <jtridib_+0x864>
movsd  -0x40(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,0x36dc(%rip)
mov    -0x28(%rbp),%rax
mov    0x36c6(%rip),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,0x36c7(%rip)
mov    -0x18(%rbp),%rax
movslq 0x36a8(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  0x36d7(%rip),%xmm1
addsd  0x369f(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x40(%rbp),%xmm1
movsd  0x36c9(%rip),%xmm0
ucomisd %xmm1,%xmm0
jb     19e3 <jtridib_+0x8e3>
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
jmp    19f3 <jtridib_+0x8f3>
movsd  0x36a5(%rip),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  %xmm0,0x368d(%rip)
mov    -0x18(%rbp),%rax
movslq 0x3636(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  0x3665(%rip),%xmm1
addsd  0x362d(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x40(%rbp),%xmm0
ucomisd 0x363f(%rip),%xmm0
jb     1a51 <jtridib_+0x951>
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
jmp    1a61 <jtridib_+0x961>
movsd  0x361f(%rip),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,0x3607(%rip)
movsd  0x35df(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1a91 <jtridib_+0x991>
jp     1a91 <jtridib_+0x991>
jmp    1aaf <jtridib_+0x9af>
jmp    1a96 <jtridib_+0x996>
mov    0x35a8(%rip),%eax
add    $0x1,%eax
mov    %eax,0x359f(%rip)
jmp    18b6 <jtridib_+0x7b6>
jmp    1aaf <jtridib_+0x9af>
movsd  0x35d9(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1ad9 <jtridib_+0x9d9>
movsd  0x35c4(%rip),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
jmp    1b00 <jtridib_+0xa00>
movsd  0x35af(%rip),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x40(%rbp)
movsd  0x3563(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1b37 <jtridib_+0xa37>
movsd  0x354e(%rip),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
jmp    1b5e <jtridib_+0xa5e>
movsd  0x3539(%rip),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0x48(%rbp)
movsd  -0x40(%rbp),%xmm0
ucomisd -0x48(%rbp),%xmm0
jb     1b8d <jtridib_+0xa8d>
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
jmp    1b9a <jtridib_+0xa9a>
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
mulsd  0x3476(%rip),%xmm0
movsd  %xmm0,0x34ce(%rip)
mov    -0x10(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
jb     1bea <jtridib_+0xaea>
movsd  0x34b5(%rip),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x3450(%rip),%eax
cmp    0x344e(%rip),%eax
je     1c01 <jtridib_+0xb01>
jmp    1c7f <jtridib_+0xb7f>
movsd  0x345f(%rip),%xmm0
mov    -0x18(%rbp),%rax
movslq 0x342c(%rip),%rcx
ucomisd (%rax,%rcx,8),%xmm0
ja     1c3d <jtridib_+0xb3d>
mov    -0x18(%rbp),%rax
movslq 0x3416(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
ucomisd 0x3439(%rip),%xmm0
jb     1c42 <jtridib_+0xb42>
jmp    25ae <jtridib_+0x14ae>
mov    0x33f8(%rip),%eax
mov    %eax,0x3412(%rip)
mov    0x33ec(%rip),%eax
mov    %eax,0x340a(%rip)
mov    -0x18(%rbp),%rax
movslq 0x33db(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x48(%rbp),%rax
movslq 0x33cb(%rip),%rcx
movsd  %xmm0,(%rax,%rcx,8)
jmp    23e6 <jtridib_+0x12e6>
mov    0x33bf(%rip),%eax
sub    0x33b5(%rip),%eax
add    $0x1,%eax
cvtsi2sd %eax,%xmm0
mulsd  0x33e6(%rip),%xmm0
movsd  %xmm0,0x33de(%rip)
movsd  0x33be(%rip),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  0x33d9(%rip),%xmm0
subsd  0x33c1(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x40(%rbp),%xmm0
ucomisd -0x48(%rbp),%xmm0
jb     1ce6 <jtridib_+0xbe6>
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
jmp    1cf3 <jtridib_+0xbf3>
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  0x3365(%rip),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  0x3360(%rip),%xmm0
addsd  0x3360(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x40(%rbp),%xmm1
movsd  -0x48(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jb     1d4b <jtridib_+0xc4b>
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
jmp    1d58 <jtridib_+0xc58>
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0xf0(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,0x3308(%rip)
movl   $0x3,0x3316(%rip)
jmp    20fa <jtridib_+0xffa>
mov    0x32bf(%rip),%eax
add    $0x1,%eax
mov    %eax,0x32ca(%rip)
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,0x32da(%rip)
movl   $0x4,0x32e8(%rip)
jmp    20fa <jtridib_+0xffa>
mov    0x3291(%rip),%eax
mov    %eax,0x32a3(%rip)
mov    0x3299(%rip),%eax
cmp    0x3297(%rip),%eax
jle    1dd8 <jtridib_+0xcd8>
jmp    25ae <jtridib_+0x14ae>
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,0x3290(%rip)
movl   $0x5,0x32a6(%rip)
mov    0x326c(%rip),%eax
mov    %eax,-0x34(%rbp)
mov    0x325f(%rip),%eax
mov    %eax,0x3229(%rip)
mov    0x3223(%rip),%eax
cmp    -0x34(%rbp),%eax
jg     1e5a <jtridib_+0xd5a>
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x48(%rbp),%rax
movslq 0x3207(%rip),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x40(%rbp),%rax
movslq 0x31ef(%rip),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x31e4(%rip),%eax
add    $0x1,%eax
mov    %eax,0x31db(%rip)
jmp    1e07 <jtridib_+0xd07>
mov    0x3204(%rip),%eax
mov    %eax,0x31d2(%rip)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,0x321a(%rip)
mov    0x31bc(%rip),%eax
mov    %eax,-0x34(%rbp)
mov    0x31db(%rip),%eax
mov    %eax,0x3201(%rip)
mov    0x31fb(%rip),%eax
cmp    -0x34(%rbp),%eax
jg     1f0b <jtridib_+0xe0b>
mov    0x31c0(%rip),%eax
add    0x3192(%rip),%eax
sub    0x31e0(%rip),%eax
mov    %eax,0x317e(%rip)
movsd  0x31d6(%rip),%xmm0
mov    0x40(%rbp),%rax
movslq 0x316b(%rip),%rcx
ucomisd (%rax,%rcx,8),%xmm0
jb     1ed5 <jtridib_+0xdd5>
jmp    1ef2 <jtridib_+0xdf2>
mov    0x40(%rbp),%rax
movslq 0x3150(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,0x31a3(%rip)
jmp    1f10 <jtridib_+0xe10>
jmp    1ef7 <jtridib_+0xdf7>
mov    0x318f(%rip),%eax
add    $0x1,%eax
mov    %eax,0x3186(%rip)
jmp    1e8b <jtridib_+0xd8b>
jmp    1f10 <jtridib_+0xe10>
movsd  0x3160(%rip),%xmm0
mov    0x48(%rbp),%rax
movslq 0x3115(%rip),%rcx
ucomisd (%rax,%rcx,8),%xmm0
jbe    1f46 <jtridib_+0xe46>
mov    0x48(%rbp),%rax
movslq 0x30ff(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,0x3132(%rip)
jmp    1f4b <jtridib_+0xe4b>
movsd  0x313d(%rip),%xmm0
addsd  0x311d(%rip),%xmm0
movsd  0x10a5(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,0x3111(%rip)
movsd  0x3101(%rip),%xmm0
subsd  0x3111(%rip),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  0x1081(%rip),%xmm0
mulsd  0x3089(%rip),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  0x30e9(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1fc9 <jtridib_+0xec9>
movsd  0x30d4(%rip),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
jmp    1ff0 <jtridib_+0xef0>
movsd  0x30bf(%rip),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x108(%rbp),%xmm0
ff
movsd  %xmm0,-0x110(%rbp)
ff
movsd  0x3070(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     202a <jtridib_+0xf2a>
movsd  0x305b(%rip),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
jmp    2051 <jtridib_+0xf51>
movsd  0x3046(%rip),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
movsd  -0x118(%rbp),%xmm1
ff
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2097 <jtridib_+0xf97>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
jmp    20be <jtridib_+0xfbe>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x100(%rbp),%xmm1
ff
movsd  -0x120(%rbp),%xmm3
ff
movsd  -0xf8(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm2
ff
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm1,%xmm0
jb     20f5 <jtridib_+0xff5>
jmp    23a3 <jtridib_+0x12a3>
jmp    20fa <jtridib_+0xffa>
mov    0x2f40(%rip),%eax
sub    $0x1,%eax
mov    %eax,0x2f43(%rip)
movsd  0xeef(%rip),%xmm0
movsd  %xmm0,0x2f37(%rip)
mov    0x2f25(%rip),%eax
mov    %eax,-0x34(%rbp)
mov    0x2f18(%rip),%eax
mov    %eax,0x2f02(%rip)
mov    0x2efc(%rip),%eax
cmp    -0x34(%rbp),%eax
jg     228b <jtridib_+0x118b>
movsd  0x2f0b(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    215d <jtridib_+0x105d>
jp     215d <jtridib_+0x105d>
jmp    2162 <jtridib_+0x1062>
jmp    220a <jtridib_+0x110a>
mov    -0x20(%rbp),%rax
movslq 0x2ec3(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x40(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     219b <jtridib_+0x109b>
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
jmp    21bf <jtridib_+0x10bf>
movsd  -0x40(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x130(%rbp),%xmm0
ff
divsd  0x2e51(%rip),%xmm0
movsd  %xmm0,0x2e81(%rip)
mov    -0x28(%rbp),%rax
movslq 0x2e4e(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    2205 <jtridib_+0x1105>
jp     2205 <jtridib_+0x1105>
xorps  %xmm0,%xmm0
movsd  %xmm0,0x2e53(%rip)
jmp    222a <jtridib_+0x112a>
mov    -0x28(%rbp),%rax
movslq 0x2e1b(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  0x2e2e(%rip),%xmm0
movsd  %xmm0,0x2e2e(%rip)
mov    -0x18(%rbp),%rax
movslq 0x2dfb(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
subsd  0x2e3e(%rip),%xmm0
subsd  0x2e0e(%rip),%xmm0
movsd  %xmm0,0x2dfe(%rip)
xorps  %xmm0,%xmm0
ucomisd 0x2df3(%rip),%xmm0
jbe    2272 <jtridib_+0x1172>
mov    0x2de3(%rip),%eax
add    $0x1,%eax
mov    %eax,0x2dda(%rip)
jmp    2277 <jtridib_+0x1177>
mov    0x2db3(%rip),%eax
add    $0x1,%eax
mov    %eax,0x2daa(%rip)
jmp    212e <jtridib_+0x102e>
mov    0x2e07(%rip),%eax
add    $0xffffffff,%eax
mov    %eax,%ecx
mov    %rcx,-0x138(%rbp)
sub    $0x4,%eax
ja     22d6 <jtridib_+0x11d6>
mov    -0x138(%rbp),%rax
lea    0xd64(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
jmp    1719 <jtridib_+0x619>
jmp    17dc <jtridib_+0x6dc>
jmp    1d87 <jtridib_+0xc87>
jmp    1db5 <jtridib_+0xcb5>
jmp    22db <jtridib_+0x11db>
jmp    22db <jtridib_+0x11db>
mov    0x2d6b(%rip),%eax
cmp    0x2d51(%rip),%eax
jl     22f2 <jtridib_+0x11f2>
jmp    238e <jtridib_+0x128e>
movsd  0x2d86(%rip),%xmm0
movsd  %xmm0,0x2d8e(%rip)
mov    0x2d44(%rip),%eax
cmp    0x2d52(%rip),%eax
jl     2319 <jtridib_+0x1219>
jmp    2336 <jtridib_+0x1236>
movsd  0x2d5f(%rip),%xmm0
mov    0x40(%rbp),%rax
movslq 0x2d34(%rip),%rcx
movsd  %xmm0,(%rax,%rcx,8)
jmp    1f4b <jtridib_+0xe4b>
movsd  0x2d42(%rip),%xmm0
mov    0x40(%rbp),%rax
mov    0x2d04(%rip),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x48(%rbp),%rax
movslq 0x2cee(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
ucomisd 0x2d15(%rip),%xmm0
jbe    2389 <jtridib_+0x1289>
movsd  0x2d07(%rip),%xmm0
mov    0x48(%rbp),%rax
movslq 0x2cc8(%rip),%rcx
movsd  %xmm0,(%rax,%rcx,8)
jmp    1f4b <jtridib_+0xe4b>
movsd  0x2cea(%rip),%xmm0
movsd  %xmm0,0x2cda(%rip)
jmp    1f4b <jtridib_+0xe4b>
movsd  0x2cd5(%rip),%xmm0
mov    0x48(%rbp),%rax
movslq 0x2c82(%rip),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x2c77(%rip),%eax
add    $0xffffffff,%eax
mov    %eax,0x2c6e(%rip)
mov    0x2c68(%rip),%eax
cmp    0x2c8a(%rip),%eax
jl     23e1 <jtridib_+0x12e1>
jmp    1e66 <jtridib_+0xd66>
jmp    23e6 <jtridib_+0x12e6>
mov    0x2c5c(%rip),%eax
mov    %eax,0x2c5a(%rip)
mov    0x2c50(%rip),%eax
add    0x2c66(%rip),%eax
sub    0x2c5c(%rip),%eax
add    $0x1,%eax
mov    %eax,0x2c3b(%rip)
movl   $0x1,0x2c1d(%rip)
mov    0x2c43(%rip),%eax
mov    %eax,0x2c15(%rip)
mov    0x2c1f(%rip),%eax
mov    %eax,-0x34(%rbp)
movl   $0x1,0x2c06(%rip)
mov    0x2c00(%rip),%eax
cmp    -0x34(%rbp),%eax
jg     25a9 <jtridib_+0x14a9>
mov    0x2be9(%rip),%eax
cmp    0x2bfb(%rip),%eax
jle    245c <jtridib_+0x135c>
jmp    2539 <jtridib_+0x1439>
mov    0x2bd6(%rip),%eax
cmp    0x2bfc(%rip),%eax
jle    2473 <jtridib_+0x1373>
jmp    25ae <jtridib_+0x14ae>
mov    0x48(%rbp),%rax
movslq 0x2bba(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
movslq 0x2bae(%rip),%rcx
ucomisd (%rax,%rcx,8),%xmm0
jb     249e <jtridib_+0x139e>
jmp    2581 <jtridib_+0x1481>
mov    0x2ba8(%rip),%eax
mov    %eax,-0x38(%rbp)
mov    0x2b87(%rip),%eax
mov    %eax,0x2bd9(%rip)
mov    0x2bd3(%rip),%eax
cmp    -0x38(%rbp),%eax
jg     2534 <jtridib_+0x1434>
mov    0x2b74(%rip),%eax
add    0x2b7e(%rip),%eax
sub    0x2bb8(%rip),%eax
mov    %eax,0x2b56(%rip)
mov    0x28(%rbp),%rax
movslq 0x2b4b(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
mov    0x2b3c(%rip),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x30(%rbp),%rax
movslq 0x2b26(%rip),%rcx
mov    (%rax,%rcx,4),%edx
mov    0x30(%rbp),%rax
mov    0x2b19(%rip),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    0x2b66(%rip),%eax
add    $0x1,%eax
mov    %eax,0x2b5d(%rip)
jmp    24b3 <jtridib_+0x13b3>
jmp    2539 <jtridib_+0x1439>
mov    0x48(%rbp),%rax
movslq 0x2af4(%rip),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
movslq 0x2ae8(%rip),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x2b3d(%rip),%edx
mov    0x30(%rbp),%rax
movslq 0x2ad2(%rip),%rcx
mov    %edx,(%rax,%rcx,4)
mov    0x2ac5(%rip),%eax
add    $0x1,%eax
mov    %eax,0x2abc(%rip)
jmp    2590 <jtridib_+0x1490>
mov    0x2aad(%rip),%eax
add    $0x1,%eax
mov    %eax,0x2aa4(%rip)
jmp    2595 <jtridib_+0x1495>
mov    0x2aa1(%rip),%eax
add    $0x1,%eax
mov    %eax,0x2a98(%rip)
jmp    2436 <jtridib_+0x1336>
jmp    25ae <jtridib_+0x14ae>
mov    0x2a90(%rip),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
jge    25c5 <jtridib_+0x14c5>
jmp    1831 <jtridib_+0x731>
jmp    25dd <jtridib_+0x14dd>
mov    -0x8(%rbp),%rax
imul   $0x3,(%rax),%ecx
add    0x2ac1(%rip),%ecx
mov    0x38(%rbp),%rax
mov    %ecx,(%rax)
movsd  0x2a83(%rip),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  0x2a7b(%rip),%xmm0
mov    0x10(%rbp),%rax
movsd  %xmm0,(%rax)
xor    %eax,%eax
add    $0xb8,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<jtridib_>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xa8,%rsp
mov    %r8,0x10(%rsp)
mov    %rcx,(%rsp)
mov    %rdx,%r14
mov    %rsi,0x30(%rsp)
mov    0x110(%rsp),%r8
mov    0x108(%rsp),%rax
mov    0xf8(%rsp),%r15
mov    0xe8(%rsp),%rcx
mov    0xe0(%rsp),%r12
movl   $0x0,(%rax)
movsd  (%rdx),%xmm9
mov    %rdi,0x88(%rsp)
mov    (%rdi),%edi
test   %edi,%edi
jle    1204 <jtridib_+0x104>
lea    0x1(%rdi),%rax
xorpd  %xmm1,%xmm1
xorpd  %xmm0,%xmm0
cmp    $0x1,%edi
je     11a2 <jtridib_+0xa2>
mov    (%rsp),%rdx
movsd  0x8(%rdx),%xmm2
movapd 0x1e77(%rip),%xmm3
xorpd  %xmm2,%xmm3
xorpd  %xmm0,%xmm0
cmplesd %xmm2,%xmm0
andpd  %xmm0,%xmm2
andnpd %xmm3,%xmm0
orpd   %xmm2,%xmm0
addsd  %xmm0,%xmm1
movapd %xmm9,%xmm2
subsd  %xmm1,%xmm2
movapd %xmm2,%xmm11
cmplesd %xmm9,%xmm11
andpd  %xmm11,%xmm2
andnpd %xmm9,%xmm11
orpd   %xmm2,%xmm11
addsd  %xmm9,%xmm1
movapd %xmm9,%xmm2
cmplesd %xmm1,%xmm2
andpd  %xmm2,%xmm1
andnpd %xmm9,%xmm2
orpd   %xmm1,%xmm2
movapd %xmm2,%xmm9
mov    0x10(%rsp),%rdx
movq   $0x0,(%rdx)
cmp    $0x2,%eax
jne    130a <jtridib_+0x20a>
mov    %rdi,%rbx
jmp    120c <jtridib_+0x10c>
mov    %rdi,%rbx
movapd %xmm9,%xmm11
movapd 0x1deb(%rip),%xmm12
movapd %xmm11,%xmm0
xorpd  %xmm12,%xmm0
xorpd  %xmm1,%xmm1
xorpd  %xmm2,%xmm2
cmplesd %xmm11,%xmm2
movapd %xmm2,%xmm3
andnpd %xmm0,%xmm3
andpd  %xmm11,%xmm2
orpd   %xmm3,%xmm2
movapd %xmm9,%xmm0
xorpd  %xmm12,%xmm0
cmplesd %xmm9,%xmm1
movapd %xmm1,%xmm3
andnpd %xmm0,%xmm3
andpd  %xmm9,%xmm1
orpd   %xmm3,%xmm1
movapd %xmm1,%xmm0
cmplesd %xmm2,%xmm0
movapd %xmm0,%xmm3
andpd  %xmm2,%xmm3
andnpd %xmm1,%xmm0
orpd   %xmm3,%xmm0
mulsd  0x1d90(%rip),%xmm0
mov    %rbx,%rdi
xorps  %xmm5,%xmm5
cvtsi2sd %edi,%xmm5
mulsd  %xmm0,%xmm5
subsd  %xmm5,%xmm11
addsd  %xmm5,%xmm9
mov    (%rcx),%edx
movl   $0x0,0xc(%rsp)
mov    $0x1,%eax
mov    %rax,-0x30(%rsp)
movapd %xmm9,%xmm10
movapd %xmm11,%xmm4
mov    %edi,%eax
mov    %edi,-0x68(%rsp)
mov    $0x1,%r11d
movapd %xmm9,0x60(%rsp)
movapd %xmm9,0x70(%rsp)
mov    $0x0,%ecx
mov    $0x0,%eax
movapd %xmm11,0x50(%rsp)
movapd %xmm11,%xmm0
add    $0xffffffff,%edx
mov    %edx,-0x28(%rsp)
mov    %edx,-0x70(%rsp)
mov    %edx,-0x74(%rsp)
mov    %r9,-0x48(%rsp)
mov    %r14,-0x18(%rsp)
jne    147a <jtridib_+0x37a>
jmp    14fa <jtridib_+0x3fa>
mov    $0x2,%edx
mov    $0x2,%esi
mov    %rdi,%rbx
sub    %rdi,%rsi
sub    %rax,%rdx
mov    $0x3,%edi
movapd 0x1cd6(%rip),%xmm1
movsd  0x1cde(%rip),%xmm2
movapd 0x1cc5(%rip),%xmm8
mov    (%rsp),%rbp
jmp    136a <jtridib_+0x26a>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
lea    (%rdx,%rdi,1),%rax
add    $0x1,%rax
add    $0x1,%rdi
movapd %xmm4,%xmm0
cmp    $0x3,%rax
je     120c <jtridib_+0x10c>
lea    (%rsi,%rdi,1),%rax
xorpd  %xmm4,%xmm4
cmp    $0x3,%rax
je     139e <jtridib_+0x29e>
mov    %edi,%eax
movsd  -0x8(%rbp,%rax,8),%xmm5
movapd %xmm5,%xmm6
xorpd  %xmm8,%xmm6
xorpd  %xmm4,%xmm4
cmplesd %xmm5,%xmm4
andpd  %xmm4,%xmm5
andnpd %xmm6,%xmm4
orpd   %xmm5,%xmm4
movsd  -0x18(%r14,%rdi,8),%xmm5
movsd  -0x10(%r14,%rdi,8),%xmm3
addsd  %xmm4,%xmm0
movapd %xmm3,%xmm6
subsd  %xmm0,%xmm6
movapd %xmm6,%xmm7
cmplesd %xmm11,%xmm7
andpd  %xmm7,%xmm6
andnpd %xmm11,%xmm7
orpd   %xmm6,%xmm7
movapd %xmm7,%xmm11
addsd  %xmm3,%xmm0
movapd %xmm9,%xmm6
cmplesd %xmm0,%xmm6
andpd  %xmm6,%xmm0
andnpd %xmm9,%xmm6
orpd   %xmm0,%xmm6
movapd %xmm6,%xmm9
mov    (%rsp),%rax
movsd  -0x10(%rax,%rdi,8),%xmm0
movapd %xmm0,%xmm6
xorpd  %xmm1,%xmm6
xorpd  %xmm7,%xmm7
cmplesd %xmm0,%xmm7
andpd  %xmm7,%xmm0
andnpd %xmm6,%xmm7
orpd   %xmm0,%xmm7
movapd %xmm3,%xmm0
xorpd  %xmm1,%xmm0
xorpd  %xmm6,%xmm6
cmplesd %xmm3,%xmm6
andpd  %xmm6,%xmm3
andnpd %xmm0,%xmm6
orpd   %xmm3,%xmm6
movapd %xmm5,%xmm0
xorpd  %xmm1,%xmm0
xorpd  %xmm3,%xmm3
cmplesd %xmm5,%xmm3
andpd  %xmm3,%xmm5
andnpd %xmm0,%xmm3
orpd   %xmm5,%xmm3
addsd  %xmm6,%xmm3
mulsd  %xmm2,%xmm3
ucomisd %xmm3,%xmm7
ja     1350 <jtridib_+0x250>
mov    0x10(%rsp),%rax
movq   $0x0,-0x10(%rax,%rdi,8)
jmp    1350 <jtridib_+0x250>
mov    %rdi,-0x20(%rsp)
movapd %xmm10,%xmm2
subsd  %xmm4,%xmm2
mulsd  0x1b90(%rip),%xmm2
addsd  %xmm4,%xmm2
ucomisd %xmm5,%xmm2
jne    149c <jtridib_+0x39c>
jnp    14a6 <jtridib_+0x3a6>
mov    -0x68(%rsp),%r10d
jmp    187d <jtridib_+0x77d>
mov    -0x20(%rsp),%rax
lea    (%rax,%rax,2),%eax
add    -0x30(%rsp),%eax
mov    0x108(%rsp),%rcx
mov    %eax,(%rcx)
movaps 0x60(%rsp),%xmm9
movaps 0x50(%rsp),%xmm13
jmp    2512 <jtridib_+0x1412>
movapd %xmm5,%xmm10
mov    %eax,-0x74(%rsp)
mov    -0x70(%rsp),%ecx
movapd %xmm5,%xmm0
mov    -0x18(%rsp),%r14
mov    0x110(%rsp),%r8
mov    0xf8(%rsp),%r15
mov    -0x40(%rsp),%r11
jne    147a <jtridib_+0x37a>
mov    0xf0(%rsp),%rdx
mov    (%rdx),%edx
add    %eax,%edx
mov    %edx,0x3b24(%rip)
mov    $0x2,%esi
mov    %rsi,-0x30(%rsp)
mov    %ecx,-0x70(%rsp)
movapd %xmm0,%xmm1
movapd %xmm0,0x50(%rsp)
movapd 0x70(%rsp),%xmm2
movapd %xmm2,%xmm10
movapd %xmm0,%xmm4
mov    %eax,-0x28(%rsp)
mov    %eax,-0x74(%rsp)
movapd 0x60(%rsp),%xmm0
cmp    %edi,%edx
jne    147a <jtridib_+0x37a>
jmp    1578 <jtridib_+0x478>
movapd %xmm5,%xmm10
movapd %xmm5,%xmm0
movapd %xmm5,%xmm2
mov    -0x18(%rsp),%r14
mov    0x110(%rsp),%r8
mov    0xf8(%rsp),%r15
mov    -0x40(%rsp),%r11
jne    147a <jtridib_+0x37a>
movl   $0x0,0x3aa6(%rip)
xor    %r10d,%r10d
movapd %xmm0,%xmm9
movapd %xmm2,%xmm1
xor    %ebp,%ebp
mov    0x100(%rsp),%r13
mov    0xf0(%rsp),%rax
movapd 0x50(%rsp),%xmm13
mov    -0x70(%rsp),%ecx
cmp    (%rax),%ebp
je     2512 <jtridib_+0x1412>
addl   $0x1,0xc(%rsp)
lea    0x1(%r10),%r11d
movslq %r10d,%rax
lea    0x1(%rax),%r8
mov    -0x18(%rsp),%rbx
movsd  (%rbx,%rax,8),%xmm4
cmp    %edi,%eax
mov    %ecx,-0x70(%rsp)
jge    16ee <jtridib_+0x5ee>
mov    %rbp,-0x58(%rsp)
mov    %r11,-0x40(%rsp)
movslq %edi,%rcx
lea    0x1(%rdi),%edx
mov    %edx,-0x68(%rsp)
mov    0x10(%rsp),%rdx
lea    0x8(%rdx,%rax,8),%r11
mov    (%rsp),%rdx
lea    (%rdx,%rax,8),%rbp
add    $0x8,%rbp
mov    %rax,%rsi
not    %rsi
add    %rcx,%rsi
lea    (%rbx,%rax,8),%rdx
mov    %eax,%eax
mov    %rdi,%rbx
mov    %edi,%ecx
neg    %ecx
add    %rax,%rcx
xorpd  %xmm11,%xmm11
xor    %edi,%edi
movapd 0x19d4(%rip),%xmm8
xorpd  %xmm2,%xmm2
movapd %xmm4,%xmm10
cs nopw 0x0(%rax,%rax,1)
nop
xorpd  %xmm6,%xmm6
xorpd  %xmm3,%xmm3
cmp    %rdi,%rsi
je     1677 <jtridib_+0x577>
movsd  0x0(%rbp,%rdi,8),%xmm6
movapd %xmm6,%xmm7
xorpd  %xmm8,%xmm7
xorpd  %xmm3,%xmm3
cmplesd %xmm6,%xmm3
andpd  %xmm3,%xmm6
andnpd %xmm7,%xmm3
orpd   %xmm6,%xmm3
movsd  (%r11,%rdi,8),%xmm6
movsd  (%rdx,%rdi,8),%xmm0
addsd  %xmm3,%xmm2
movapd %xmm0,%xmm7
subsd  %xmm2,%xmm7
movapd %xmm7,%xmm5
cmplesd %xmm4,%xmm5
andpd  %xmm5,%xmm7
andnpd %xmm4,%xmm5
orpd   %xmm7,%xmm5
movapd %xmm5,%xmm4
addsd  %xmm0,%xmm2
movapd %xmm10,%xmm0
cmplesd %xmm2,%xmm0
andpd  %xmm0,%xmm2
andnpd %xmm10,%xmm0
orpd   %xmm2,%xmm0
movapd %xmm0,%xmm10
ucomisd %xmm11,%xmm6
jne    16ca <jtridib_+0x5ca>
jnp    16f8 <jtridib_+0x5f8>
add    $0x1,%rdi
mov    %ecx,%eax
movapd %xmm3,%xmm2
add    %edi,%eax
jne    1640 <jtridib_+0x540>
mov    -0x70(%rsp),%ecx
mov    -0x40(%rsp),%r11
mov    %rbx,%rdi
mov    -0x68(%rsp),%edx
jmp    170b <jtridib_+0x60b>
movapd %xmm4,%xmm10
mov    %r11d,%edx
jmp    1710 <jtridib_+0x610>
lea    (%r10,%rdi,1),%edx
add    $0x1,%edx
mov    -0x70(%rsp),%ecx
mov    -0x40(%rsp),%r11
mov    %rbx,%rdi
mov    -0x58(%rsp),%rbp
movapd %xmm4,%xmm0
xorpd  %xmm12,%xmm0
xorpd  %xmm2,%xmm2
cmplesd %xmm4,%xmm2
movapd %xmm2,%xmm3
andnpd %xmm0,%xmm3
andpd  %xmm4,%xmm2
orpd   %xmm3,%xmm2
movapd %xmm10,%xmm0
xorpd  %xmm12,%xmm0
xorpd  %xmm3,%xmm3
cmplesd %xmm10,%xmm3
movapd %xmm3,%xmm5
andnpd %xmm0,%xmm5
andpd  %xmm10,%xmm3
orpd   %xmm5,%xmm3
movapd %xmm3,%xmm0
cmplesd %xmm2,%xmm0
movapd %xmm0,%xmm5
andpd  %xmm2,%xmm5
andnpd %xmm3,%xmm0
orpd   %xmm5,%xmm0
mulsd  0x1898(%rip),%xmm0
xorpd  %xmm2,%xmm2
mov    0x30(%rsp),%rax
ucomisd (%rax),%xmm2
jb     179c <jtridib_+0x69c>
movapd 0x1871(%rip),%xmm2
xorpd  %xmm0,%xmm2
mov    0x30(%rsp),%rax
movlpd %xmm2,(%rax)
cmp    %r11d,%edx
jne    17e9 <jtridib_+0x6e9>
mov    -0x18(%rsp),%rax
movsd  -0x8(%rax,%r8,8),%xmm0
ucomisd %xmm0,%xmm13
ja     2531 <jtridib_+0x1431>
ucomisd %xmm9,%xmm0
jae    2531 <jtridib_+0x1431>
mov    %r11d,0x3862(%rip)
mov    0x118(%rsp),%rax
movsd  %xmm0,-0x8(%rax,%r8,8)
mov    %r11d,%ecx
mov    %r11d,%edx
movapd %xmm9,%xmm1
jmp    1fa2 <jtridib_+0xea2>
mov    %rdi,-0x20(%rsp)
movapd %xmm9,0x60(%rsp)
mov    %edx,%eax
sub    %r10d,%eax
xorps  %xmm2,%xmm2
cvtsi2sd %eax,%xmm2
mulsd  %xmm2,%xmm0
movapd %xmm4,%xmm2
subsd  %xmm0,%xmm2
movapd %xmm2,%xmm3
cmplesd %xmm13,%xmm3
movapd %xmm3,%xmm5
andnpd %xmm2,%xmm5
movapd %xmm13,0x50(%rsp)
andpd  %xmm13,%xmm3
orpd   %xmm5,%xmm3
movlpd %xmm3,(%r9)
addsd  %xmm10,%xmm0
movapd %xmm1,%xmm2
cmplesd %xmm0,%xmm2
movapd %xmm2,%xmm3
andnpd %xmm0,%xmm3
movapd %xmm1,0x70(%rsp)
andpd  %xmm1,%xmm2
orpd   %xmm3,%xmm2
movlpd %xmm2,(%r12)
movsd  (%r9),%xmm2
mov    $0x3,%eax
mov    %rax,-0x30(%rsp)
mov    0x110(%rsp),%r8
mov    %edx,%r10d
mov    -0x18(%rsp),%r14
lea    -0x1(%r11),%eax
mov    %eax,-0x6c(%rsp)
mov    0x3799(%rip),%ecx
movslq %r11d,%rax
mov    0x118(%rsp),%rbx
lea    0x8(%rbx),%rdx
mov    %rdx,-0x10(%rsp)
lea    0x8(%r8),%rdx
mov    %rdx,0x40(%rsp)
lea    0x8(%r12),%rdx
mov    %rdx,0x28(%rsp)
lea    0x8(%r9),%rdx
mov    %rdx,0x20(%rsp)
mov    0x10(%rsp),%rdx
lea    (%rdx,%rax,8),%rdx
mov    (%rsp),%rsi
lea    (%rsi,%rax,8),%r15
lea    (%r14,%rax,8),%rdi
mov    %r10d,-0x68(%rsp)
mov    %r10d,%r13d
sub    %eax,%r13d
lea    0x30(%r8),%r10
lea    0x30(%rbx),%r14
movsd  0x1734(%rip),%xmm13
xorpd  %xmm11,%xmm11
movsd  0x172e(%rip),%xmm14
movapd 0x16fd(%rip),%xmm15
movsd  0x1704(%rip),%xmm9
movapd %xmm2,%xmm5
movapd %xmm10,%xmm6
mov    %r11,-0x40(%rsp)
movslq -0x74(%rsp),%rax
lea    0x1(%rax),%rsi
mov    %rsi,-0x38(%rsp)
mov    %eax,%esi
not    %esi
mov    %rsi,0x48(%rsp)
lea    (%rbx,%rax,8),%rsi
mov    %rsi,0x18(%rsp)
lea    (%r8,%rax,8),%rsi
mov    %rsi,0x38(%rsp)
mov    %r10,0x98(%rsp)
lea    (%r10,%rax,8),%rsi
mov    %rsi,0xa0(%rsp)
mov    %r14,0x90(%rsp)
lea    (%r14,%rax,8),%r8
mov    %rax,-0x58(%rsp)
lea    -0x1(%rax),%r11d
mov    %ecx,%r10d
mov    0x30(%rsp),%r14
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    %r10d,%ecx
mov    -0x6c(%rsp),%eax
mov    %eax,%r10d
mov    -0x68(%rsp),%eax
cmp    %eax,-0x40(%rsp)
jle    1c50 <jtridib_+0xb50>
mov    -0x30(%rsp),%rax
add    $0xffffffff,%eax
cmp    $0x3,%eax
ja     1cf0 <jtridib_+0xbf0>
lea    0x1680(%rip),%rsi
movslq (%rsi,%rax,4),%rax
add    %rsi,%rax
jmp    *%rax
mov    %r10d,0x366c(%rip)
cmp    %r10d,-0x74(%rsp)
jg     25a4 <jtridib_+0x14a4>
movsd  (%r12),%xmm10
lea    0x1(%r10),%ebp
mov    -0x58(%rsp),%rcx
movsd  %xmm10,-0x8(%rbx,%rcx,8)
movsd  (%r9),%xmm2
mov    0x110(%rsp),%rax
movsd  %xmm2,-0x8(%rax,%rcx,8)
cmp    -0x38(%rsp),%ebp
je     1de4 <jtridib_+0xce4>
mov    0x48(%rsp),%rax
add    %r10d,%eax
lea    0x1(%rax),%rcx
mov    %rcx,-0x30(%rsp)
mov    -0x38(%rsp),%r14
cmp    $0x3,%eax
jb     1c30 <jtridib_+0xb30>
mov    0x20(%rsp),%rsi
mov    0x38(%rsp),%rbx
cmp    %rsi,%rbx
setb   -0x24(%rsp)
mov    0x28(%rsp),%rcx
cmp    %rcx,%rbx
setb   -0x50(%rsp)
mov    %ebp,-0x60(%rsp)
mov    0x18(%rsp),%rbp
cmp    %rsi,%rbp
setb   %r14b
cmp    %rcx,%rbp
setb   %r9b
add    -0x58(%rsp),%rax
mov    -0x10(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    0x40(%rsp),%rsi
lea    (%rsi,%rax,8),%rsi
cmp    %rsi,%rbp
mov    -0x60(%rsp),%ebp
setb   -0x8(%rsp)
cmp    %rcx,%rbx
setb   %r12b
cmp    0xe0(%rsp),%rcx
seta   %al
and    %r9b,%al
cmp    -0x48(%rsp),%rcx
seta   %bl
and    %r14b,%bl
cmp    0xe0(%rsp),%rsi
seta   %cl
and    -0x50(%rsp),%cl
cmp    -0x48(%rsp),%rsi
seta   %sil
and    -0x24(%rsp),%sil
mov    -0x38(%rsp),%r14
test   %r12b,-0x8(%rsp)
mov    0xe0(%rsp),%r12
mov    -0x48(%rsp),%r9
jne    1c30 <jtridib_+0xb30>
mov    -0x38(%rsp),%r14
test   %al,%al
jne    1c30 <jtridib_+0xb30>
mov    -0x38(%rsp),%r14
test   %bl,%bl
jne    1c30 <jtridib_+0xb30>
mov    -0x38(%rsp),%r14
test   %cl,%cl
jne    1c30 <jtridib_+0xb30>
mov    -0x38(%rsp),%r14
test   %sil,%sil
jne    1c30 <jtridib_+0xb30>
mov    -0x30(%rsp),%rbx
mov    %rbx,%r9
movabs $0x1fffffffc,%rax
and    %rax,%r9
mov    -0x38(%rsp),%rax
lea    (%rax,%r9,1),%r14
lea    -0x4(%r9),%rax
mov    %rax,%rcx
shr    $0x2,%rcx
add    $0x1,%rcx
mov    $0x0,%r12d
test   %rax,%rax
mov    0xa0(%rsp),%rbp
je     1bb1 <jtridib_+0xab1>
mov    %rcx,%rax
and    $0xfffffffffffffffe,%rax
mov    0xe0(%rsp),%rsi
movsd  (%rsi),%xmm2
unpcklpd %xmm2,%xmm2
mov    -0x48(%rsp),%rsi
movsd  (%rsi),%xmm4
unpcklpd %xmm4,%xmm4
xor    %r12d,%r12d
nopl   0x0(%rax)
movupd %xmm2,-0x30(%r8,%r12,8)
movupd %xmm2,-0x20(%r8,%r12,8)
movupd %xmm4,-0x30(%rbp,%r12,8)
movupd %xmm4,-0x20(%rbp,%r12,8)
movupd %xmm2,-0x10(%r8,%r12,8)
movupd %xmm2,(%r8,%r12,8)
movupd %xmm4,-0x10(%rbp,%r12,8)
movupd %xmm4,0x0(%rbp,%r12,8)
add    $0x8,%r12
add    $0xfffffffffffffffe,%rax
jne    1b70 <jtridib_+0xa70>
test   $0x1,%cl
je     1c01 <jtridib_+0xb01>
add    -0x38(%rsp),%r12
mov    0xe0(%rsp),%rax
movsd  (%rax),%xmm2
movlhps %xmm2,%xmm2
mov    0x118(%rsp),%rax
movups %xmm2,-0x8(%rax,%r12,8)
movups %xmm2,0x8(%rax,%r12,8)
mov    -0x48(%rsp),%rax
movsd  (%rax),%xmm2
unpcklpd %xmm2,%xmm2
mov    0x110(%rsp),%rax
movupd %xmm2,-0x8(%rax,%r12,8)
movupd %xmm2,0x8(%rax,%r12,8)
cmp    %r9,%rbx
mov    -0x48(%rsp),%r9
mov    0xe0(%rsp),%r12
mov    0x118(%rsp),%rbx
mov    -0x60(%rsp),%ebp
je     1de4 <jtridib_+0xce4>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    %r10d,%eax
sub    %r14d,%eax
add    $0x1,%eax
test   $0x1,%al
jne    1d5f <jtridib_+0xc5f>
mov    %r14,%rax
jmp    1d8f <jtridib_+0xc8f>
nopl   0x0(%rax)
mov    $0xffffffffffffffff,%rax
movsd  0x13b9(%rip),%xmm2
mov    -0x6c(%rsp),%esi
mov    %esi,%r10d
jmp    1ca8 <jtridib_+0xba8>
nopl   0x0(%rax,%rax,1)
movsd  (%rdx,%rax,8),%xmm8
divsd  %xmm2,%xmm8
movapd %xmm8,%xmm3
movsd  (%rdi,%rax,8),%xmm2
subsd  %xmm5,%xmm2
subsd  %xmm3,%xmm2
xor    %esi,%esi
ucomisd %xmm2,%xmm11
seta   %sil
add    %esi,%r10d
add    $0x1,%rax
cmp    %eax,%r13d
je     1998 <jtridib_+0x898>
ucomisd %xmm11,%xmm2
jne    1c70 <jtridib_+0xb70>
jp     1c70 <jtridib_+0xb70>
movsd  (%r15,%rax,8),%xmm0
movapd %xmm0,%xmm1
xorpd  %xmm15,%xmm1
xorpd  %xmm8,%xmm8
xorpd  %xmm3,%xmm3
cmplesd %xmm0,%xmm3
andpd  %xmm3,%xmm0
andnpd %xmm1,%xmm3
orpd   %xmm0,%xmm3
divsd  %xmm9,%xmm3
movsd  (%rdx,%rax,8),%xmm0
ucomisd %xmm8,%xmm0
jne    1c80 <jtridib_+0xb80>
jnp    1c7b <jtridib_+0xb7b>
jmp    1c80 <jtridib_+0xb80>
nop
cmp    %ecx,%r10d
jge    1d20 <jtridib_+0xc20>
cmp    -0x74(%rsp),%r10d
jge    1d31 <jtridib_+0xc31>
mov    0x110(%rsp),%rax
mov    -0x58(%rsp),%rsi
movsd  %xmm5,-0x8(%rax,%rsi,8)
jmp    1d53 <jtridib_+0xc53>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movapd %xmm5,%xmm10
mov    %ecx,%r10d
movapd %xmm5,%xmm6
jmp    1e63 <jtridib_+0xd63>
movslq %r10d,%rax
mov    0x110(%rsp),%rsi
movsd  %xmm5,(%rsi,%rax,8)
movsd  -0x8(%rbx,%rax,8),%xmm0
ucomisd %xmm5,%xmm0
jbe    1d53 <jtridib_+0xc53>
movsd  %xmm5,-0x8(%rbx,%rax,8)
movapd %xmm5,%xmm4
mov    %ecx,%r10d
jmp    1e63 <jtridib_+0xd63>
movsd  (%r12),%xmm2
mov    0x118(%rsp),%rax
movsd  %xmm2,-0x8(%rax,%r14,8)
movsd  (%r9),%xmm2
mov    0x110(%rsp),%rax
movsd  %xmm2,-0x8(%rax,%r14,8)
mov    %r14,%rax
add    $0x1,%rax
cmp    %r14d,%r10d
mov    0x118(%rsp),%rbx
mov    0x110(%rsp),%rsi
je     1de4 <jtridib_+0xce4>
mov    %ebp,%ecx
cs nopw 0x0(%rax,%rax,1)
movsd  (%r12),%xmm2
movsd  %xmm2,-0x8(%rbx,%rax,8)
movsd  (%r9),%xmm2
movsd  %xmm2,-0x8(%rsi,%rax,8)
movsd  (%r12),%xmm2
movsd  %xmm2,(%rbx,%rax,8)
movsd  (%r9),%xmm2
movsd  %xmm2,(%rsi,%rax,8)
add    $0x2,%rax
cmp    %eax,%ecx
jne    1db0 <jtridib_+0xcb0>
mov    %r10d,0x3239(%rip)
mov    $0x5,%eax
mov    %rax,-0x30(%rsp)
movapd %xmm10,%xmm6
mov    0x30(%rsp),%r14
mov    -0x74(%rsp),%eax
movsd  (%r9),%xmm2
cmp    %eax,%r10d
jl     1e2f <jtridib_+0xd2f>
mov    %r10d,%eax
movslq %eax,%rcx
mov    0x110(%rsp),%rsi
movsd  -0x8(%rsi,%rcx,8),%xmm4
ucomisd %xmm4,%xmm2
jb     1e33 <jtridib_+0xd33>
add    $0xffffffff,%eax
cmp    %eax,%r11d
jne    1e10 <jtridib_+0xd10>
movapd %xmm2,%xmm4
movslq %r10d,%rax
movsd  -0x8(%rbx,%rax,8),%xmm2
movapd %xmm2,%xmm3
cmpltsd %xmm6,%xmm3
movapd %xmm3,%xmm5
andpd  %xmm2,%xmm5
andnpd %xmm10,%xmm3
orpd   %xmm5,%xmm3
minsd  %xmm6,%xmm2
movapd %xmm3,%xmm10
movapd %xmm2,%xmm6
movapd %xmm4,%xmm5
addsd  %xmm6,%xmm5
mulsd  %xmm13,%xmm5
movapd %xmm6,%xmm2
subsd  %xmm4,%xmm2
movapd %xmm4,%xmm3
xorpd  %xmm12,%xmm3
xorpd  %xmm0,%xmm0
cmplesd %xmm4,%xmm0
movapd %xmm0,%xmm1
andnpd %xmm3,%xmm1
andpd  %xmm4,%xmm0
orpd   %xmm1,%xmm0
movapd %xmm6,%xmm1
xorpd  %xmm12,%xmm1
xorpd  %xmm3,%xmm3
cmplesd %xmm6,%xmm3
movapd %xmm3,%xmm7
andnpd %xmm1,%xmm7
andpd  %xmm6,%xmm3
orpd   %xmm7,%xmm3
addsd  %xmm0,%xmm3
movsd  (%r14),%xmm0
movapd %xmm0,%xmm1
xorpd  %xmm12,%xmm1
xorpd  %xmm7,%xmm7
cmpnlesd %xmm0,%xmm7
andpd  %xmm7,%xmm1
andnpd %xmm0,%xmm7
orpd   %xmm1,%xmm7
mulsd  %xmm14,%xmm3
addsd  %xmm7,%xmm3
ucomisd %xmm2,%xmm3
jb     1980 <jtridib_+0x880>
movslq %r10d,%rax
movsd  %xmm5,-0x8(%rbx,%rax,8)
lea    -0x1(%rax),%r10d
mov    %r10d,0x311a(%rip)
mov    -0x74(%rsp),%ecx
cmp    %ecx,%eax
mov    %ecx,%eax
jg     1e03 <jtridib_+0xd03>
jmp    1f62 <jtridib_+0xe62>
add    $0x1,%r10d
movsd  (%r12),%xmm5
mov    $0x4,%eax
mov    %rax,-0x30(%rsp)
mov    %r10d,%eax
mov    %r10d,-0x70(%rsp)
mov    %r10d,-0x28(%rsp)
mov    %r10d,-0x74(%rsp)
mov    0x110(%rsp),%r8
mov    -0x40(%rsp),%r11
mov    0x98(%rsp),%r10
mov    0x90(%rsp),%r14
jmp    1915 <jtridib_+0x815>
mov    0x30c0(%rip),%ebp
mov    0x30be(%rip),%edx
mov    -0x68(%rsp),%eax
mov    %eax,%r11d
mov    0x100(%rsp),%r13
mov    0xf8(%rsp),%r15
movapd 0x60(%rsp),%xmm9
movapd 0x50(%rsp),%xmm13
mov    -0x70(%rsp),%ecx
movapd 0x70(%rsp),%xmm1
mov    -0x20(%rsp),%rdi
lea    0x1(%rbp),%ebx
lea    (%rdx,%rbp,1),%eax
add    $0x1,%eax
sub    %ecx,%eax
mov    %eax,0x3075(%rip)
mov    %ecx,0x306b(%rip)
test   %eax,%eax
jle    2538 <jtridib_+0x1438>
mov    %r11,-0x40(%rsp)
mov    %rdx,0x48(%rsp)
lea    (%rdx,%rbp,1),%eax
sub    %ecx,%eax
add    $0x2,%eax
mov    %rax,-0x38(%rsp)
lea    0x2(%rbp),%eax
mov    %rax,-0x30(%rsp)
lea    -0x8(%r15),%rax
mov    %rax,0x28(%rsp)
lea    -0x4(%r13),%rax
mov    %rax,0x20(%rsp)
lea    -0x1(%rbp),%edx
movl   $0x1,-0x6c(%rsp)
mov    $0x1,%edi
xor    %r8d,%r8d
mov    %ebx,%r10d
mov    %ebp,%r11d
mov    %ecx,-0x70(%rsp)
mov    %ecx,-0x74(%rsp)
mov    %rbp,-0x58(%rsp)
mov    %rbx,-0x68(%rsp)
jmp    2048 <jtridib_+0xf48>
nop
addl   $0x1,-0x6c(%rsp)
mov    -0x68(%rsp),%rbx
add    $0x1,%rdi
add    $0x1,%r8d
add    $0x1,%r11d
add    $0x1,%edx
add    $0x1,%r10d
cmp    -0x38(%rsp),%rdi
je     24ea <jtridib_+0x13ea>
mov    -0x30(%rsp),%rax
add    %r8d,%eax
lea    (%rbx,%r8,1),%esi
mov    %ebp,%ecx
sub    -0x6c(%rsp),%ecx
jge    20a0 <jtridib_+0xfa0>
mov    -0x74(%rsp),%esi
movslq %esi,%r14
mov    0x118(%rsp),%rax
movsd  -0x8(%rax,%r14,8),%xmm0
movsd  %xmm0,-0x8(%r15,%rdi,8)
mov    0xc(%rsp),%eax
mov    %eax,-0x4(%r13,%rdi,4)
add    $0x1,%esi
mov    %esi,-0x74(%rsp)
mov    %esi,0x2f95(%rip)
jmp    202a <jtridib_+0xf2a>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    -0x74(%rsp),%r14d
cmp    0x48(%rsp),%r14d
jg     24ea <jtridib_+0x13ea>
movslq -0x74(%rsp),%r14
mov    0x118(%rsp),%rbx
movsd  -0x8(%rbx,%r14,8),%xmm0
ucomisd -0x8(%r15,%rdi,8),%xmm0
jae    2020 <jtridib_+0xf20>
lea    (%rdi,%rbp,1),%ebx
mov    %ebx,-0x24(%rsp)
mov    -0x6c(%rsp),%ebx
mov    %ebx,%ebp
mov    %rbp,-0x60(%rsp)
lea    0x1(%rcx),%rbp
test   %ecx,%ecx
je     2392 <jtridib_+0x1292>
mov    %rbp,0x18(%rsp)
mov    %r14,-0x50(%rsp)
sub    %ebx,%eax
sub    %ebx,%esi
movslq %eax,%rbp
mov    0x28(%rsp),%r14
lea    (%r14,%rbp,8),%r9
lea    0x0(,%rcx,8),%r15
mov    %r9,-0x8(%rsp)
sub    %r15,%r9
movslq %esi,%rbx
lea    (%r14,%rbx,8),%r13
mov    %r13,-0x10(%rsp)
sub    %r15,%r13
mov    0x20(%rsp),%r15
lea    (%r15,%rbp,4),%r14
lea    0x0(,%rcx,4),%r12
mov    %r14,0x40(%rsp)
sub    %r12,%r14
mov    %rbx,-0x20(%rsp)
lea    (%r15,%rbx,4),%rbx
mov    %rbx,%r15
sub    %r12,%r15
mov    %esi,%r12d
sub    %ecx,%r12d
sub    %ecx,%eax
mov    %rbp,0x38(%rsp)
cmp    %ebp,%eax
jg     24aa <jtridib_+0x13aa>
mov    %rbx,%rax
cmp    %esi,%r12d
mov    -0x68(%rsp),%rbx
jg     24c4 <jtridib_+0x13c4>
cmp    -0x8(%rsp),%r9
mov    -0x48(%rsp),%r9
mov    0xe0(%rsp),%r12
mov    -0x74(%rsp),%esi
ja     23cb <jtridib_+0x12cb>
cmp    -0x10(%rsp),%r13
ja     23cb <jtridib_+0x12cb>
cmp    0x40(%rsp),%r14
mov    0x100(%rsp),%r13
ja     23d3 <jtridib_+0x12d3>
cmp    %rax,%r15
ja     23d3 <jtridib_+0x12d3>
mov    0x38(%rsp),%r14
mov    %r14,%rax
sub    %rcx,%rax
mov    0x28(%rsp),%rbp
lea    0x0(,%rax,8),%r15
add    %rbp,%r15
mov    0xf8(%rsp),%r12
lea    (%r12,%r14,8),%r9
mov    -0x20(%rsp),%rsi
mov    %rsi,%rbx
sub    %rcx,%rbx
lea    0x0(,%rbx,8),%rcx
add    %rbp,%rcx
lea    (%r12,%rsi,8),%rbp
mov    0x20(%rsp),%r12
lea    (%r12,%rax,4),%rax
lea    0x0(,%r14,4),%r14
add    %r13,%r14
lea    (%r12,%rbx,4),%r12
lea    0x0(,%rsi,4),%rsi
add    %r13,%rsi
cmp    %rbp,%r15
setb   %bpl
cmp    %r9,%rcx
setb   %cl
cmp    %rsi,%rax
setb   %bl
cmp    %r14,%r12
setb   %al
and    %bl,%al
test   %cl,%bpl
jne    239d <jtridib_+0x129d>
test   %al,%al
mov    -0x48(%rsp),%r9
mov    0xe0(%rsp),%r12
mov    -0x58(%rsp),%rbp
mov    -0x68(%rsp),%rbx
mov    -0x50(%rsp),%r14
mov    -0x60(%rsp),%rcx
jne    23bd <jtridib_+0x12bd>
movabs $0x1fffffffc,%rax
add    $0x2,%rax
and    0x18(%rsp),%rax
add    %rax,%rcx
mov    %rax,-0x8(%rsp)
lea    -0x2(%rax),%r15
mov    %r15,%rax
shr    %rax
add    $0x1,%rax
mov    $0x0,%esi
test   %r15,%r15
je     2346 <jtridib_+0x1246>
mov    %rcx,-0x60(%rsp)
mov    %rax,-0x10(%rsp)
and    $0xfffffffffffffffe,%rax
mov    %r11d,%r14d
mov    -0x6c(%rsp),%ecx
sub    %ecx,%r14d
mov    %edx,%r12d
sub    %ecx,%r12d
xor    %esi,%esi
mov    0xf8(%rsp),%r15
nopl   0x0(%rax)
lea    (%r14,%rsi,1),%rbp
lea    0x1(%rbp),%ebx
movslq %ebx,%rbx
movups -0x10(%r15,%rbx,8),%xmm0
lea    0x2(%rbp),%ecx
movslq %ecx,%rcx
movups %xmm0,-0x10(%r15,%rcx,8)
mov    -0x8(%r13,%rbx,4),%rbx
mov    %rbx,-0x8(%r13,%rcx,4)
lea    (%r12,%rsi,1),%ecx
movslq %ecx,%rcx
movupd -0x10(%r15,%rcx,8),%xmm0
movslq %ebp,%rbx
movupd %xmm0,-0x10(%r15,%rbx,8)
mov    -0x8(%r13,%rcx,4),%rcx
mov    %rcx,-0x8(%r13,%rbx,4)
add    $0xfffffffffffffffc,%rsi
add    $0xfffffffffffffffe,%rax
jne    22d0 <jtridib_+0x11d0>
neg    %rsi
mov    0xe0(%rsp),%r12
mov    -0x58(%rsp),%rbp
mov    -0x68(%rsp),%rbx
mov    -0x50(%rsp),%r14
mov    -0x60(%rsp),%rcx
mov    -0x10(%rsp),%rax
test   $0x1,%al
mov    0xf8(%rsp),%r15
je     237c <jtridib_+0x127c>
add    -0x6c(%rsp),%esi
mov    -0x24(%rsp),%eax
sub    %esi,%eax
cltq
movupd -0x10(%r15,%rax,8),%xmm0
movupd %xmm0,-0x8(%r15,%rax,8)
mov    %rcx,%rsi
mov    -0x8(%r13,%rax,4),%rcx
mov    %rcx,-0x4(%r13,%rax,4)
mov    %rsi,%rcx
mov    -0x8(%rsp),%rax
cmp    %rax,0x18(%rsp)
mov    -0x74(%rsp),%esi
je     2063 <jtridib_+0xf63>
jmp    23e5 <jtridib_+0x12e5>
mov    -0x68(%rsp),%rbx
mov    -0x74(%rsp),%esi
jmp    23e0 <jtridib_+0x12e0>
mov    -0x48(%rsp),%r9
mov    0xe0(%rsp),%r12
mov    0xf8(%rsp),%r15
mov    -0x68(%rsp),%rbx
mov    -0x74(%rsp),%esi
jmp    23db <jtridib_+0x12db>
mov    0xf8(%rsp),%r15
mov    -0x74(%rsp),%esi
jmp    23e5 <jtridib_+0x12e5>
mov    0x100(%rsp),%r13
mov    0xf8(%rsp),%r15
mov    -0x50(%rsp),%r14
mov    -0x60(%rsp),%rcx
mov    %ebx,%eax
sub    %ecx,%eax
test   $0x1,%al
jne    246d <jtridib_+0x136d>
mov    %rcx,%rbp
cmp    %ecx,-0x58(%rsp)
je     24a0 <jtridib_+0x13a0>
mov    %r10d,%eax
sub    %ebp,%eax
mov    %r11d,%ecx
sub    %ebp,%ecx
mov    -0x30(%rsp),%rsi
sub    %ebp,%esi
nop
cltq
movsd  -0x8(%r15,%rax,8),%xmm0
lea    (%r8,%rsi,1),%ebp
movslq %ebp,%rbp
movsd  %xmm0,-0x8(%r15,%rbp,8)
mov    -0x4(%r13,%rax,4),%ebx
mov    %ebx,-0x4(%r13,%rbp,4)
movslq %ecx,%rcx
movsd  -0x8(%r15,%rcx,8),%xmm0
movsd  %xmm0,-0x8(%r15,%rax,8)
mov    -0x4(%r13,%rcx,4),%ebp
mov    %ebp,-0x4(%r13,%rax,4)
add    $0xfffffffe,%eax
add    $0xfffffffe,%ecx
add    $0xfffffffe,%esi
cmp    $0x1,%esi
jne    2410 <jtridib_+0x1310>
mov    -0x58(%rsp),%rbp
mov    -0x68(%rsp),%rbx
mov    -0x74(%rsp),%esi
jmp    2063 <jtridib_+0xf63>
mov    -0x24(%rsp),%eax
sub    %ecx,%eax
cltq
movsd  -0x8(%r15,%rax,8),%xmm0
movsd  %xmm0,(%r15,%rax,8)
mov    %rcx,%rbp
mov    -0x4(%r13,%rax,4),%ecx
mov    %ecx,0x0(%r13,%rax,4)
mov    %rbp,%rcx
add    $0x1,%rbp
cmp    %ecx,-0x58(%rsp)
jne    23fe <jtridib_+0x12fe>
mov    -0x58(%rsp),%rbp
jmp    2063 <jtridib_+0xf63>
mov    -0x48(%rsp),%r9
mov    0xe0(%rsp),%r12
mov    0x100(%rsp),%r13
jmp    23aa <jtridib_+0x12aa>
mov    -0x48(%rsp),%r9
mov    0xe0(%rsp),%r12
mov    0x100(%rsp),%r13
mov    0xf8(%rsp),%r15
mov    -0x74(%rsp),%esi
jmp    23db <jtridib_+0x12db>
mov    0x88(%rsp),%rax
mov    (%rax),%edi
mov    -0x70(%rsp),%ecx
mov    %ecx,-0x28(%rsp)
mov    %ecx,-0x74(%rsp)
mov    0xf0(%rsp),%rax
mov    -0x40(%rsp),%r11
cmp    %edi,%r11d
jl     254d <jtridib_+0x144d>
movsd  %xmm13,(%r9)
movsd  %xmm9,(%r12)
xor    %eax,%eax
add    $0xa8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
movapd %xmm9,%xmm1
jmp    2540 <jtridib_+0x1440>
mov    %ecx,-0x28(%rsp)
mov    %ecx,-0x74(%rsp)
mov    0xf0(%rsp),%rax
cmp    %edi,%r11d
jge    2512 <jtridib_+0x1412>
mov    0x2ad5(%rip),%ebp
mov    %r11d,%r10d
jmp    15ab <jtridib_+0x4ab>
mov    -0x28(%rsp),%eax
cmp    %eax,%r10d
mov    -0x20(%rsp),%rdi
jns    14cd <jtridib_+0x3cd>
movapd %xmm5,%xmm4
mov    %eax,-0x74(%rsp)
jmp    258d <jtridib_+0x148d>
cmp    0x2ab2(%rip),%r10d
mov    -0x20(%rsp),%rdi
jns    154b <jtridib_+0x44b>
movapd %xmm5,%xmm4
mov    -0x18(%rsp),%r14
mov    0x110(%rsp),%r8
mov    -0x40(%rsp),%r11
jmp    147a <jtridib_+0x37a>
mov    -0x68(%rsp),%eax
mov    %eax,%r11d
mov    0x100(%rsp),%r13
mov    0xf8(%rsp),%r15
mov    0xf0(%rsp),%rax
movapd 0x60(%rsp),%xmm9
movapd 0x50(%rsp),%xmm13
mov    -0x70(%rsp),%ecx
movapd 0x70(%rsp),%xmm1
mov    -0x20(%rsp),%rdi
cmp    %edi,%r11d
jl     254d <jtridib_+0x144d>
jmp    2512 <jtridib_+0x1412>

LLVM IR (-O0):
@jtridib_.machep = internal global double 1.250000e-15
@jtridib_.i = internal global i32 0
@jtridib_.j = internal global i32 0
@jtridib_.k = internal global i32 0
@jtridib_.l = internal global i32 0
@jtridib_.p = internal global i32 0
@jtridib_.q = internal global i32 0
@jtridib_.r = internal global i32 0
@jtridib_.s = internal global i32 0
@jtridib_.u = internal global double 0.000000e+00
@jtridib_.v = internal global double 0.000000e+00
@jtridib_.m1 = internal global i32 0
@jtridib_.m2 = internal global i32 0
@jtridib_.t1 = internal global double 0.000000e+00
@jtridib_.t2 = internal global double 0.000000e+00
@jtridib_.x0 = internal global double 0.000000e+00
@jtridib_.x1 = internal global double 0.000000e+00
@jtridib_.m22 = internal global i32 0
@jtridib_.ii = internal global i32 0
@jtridib_.xu = internal global double 0.000000e+00
@jtridib_.isturm = internal global i32 0
@jtridib_.tag = internal global i32 0
define i32 @jtridib_(i32* %0, double* %1, double* %2, double* %3, double* %4, double* %5, double* %6, i32* %7, i32* %8, double* %9, i32* %10, i32* %11, double* %12, double* %13) {
%15 = alloca i32*
%16 = alloca double*
%17 = alloca double*
%18 = alloca double*
%19 = alloca double*
%20 = alloca double*
%21 = alloca double*
%22 = alloca i32*
%23 = alloca i32*
%24 = alloca double*
%25 = alloca i32*
%26 = alloca i32*
%27 = alloca double*
%28 = alloca double*
%29 = alloca i32
%30 = alloca i32
%31 = alloca double
%32 = alloca double
%33 = alloca double
store i32* %0, i32** %15
store double* %1, double** %16
store double* %2, double** %17
store double* %3, double** %18
store double* %4, double** %19
store double* %5, double** %20
store double* %6, double** %21
store i32* %7, i32** %22
store i32* %8, i32** %23
store double* %9, double** %24
store i32* %10, i32** %25
store i32* %11, i32** %26
store double* %12, double** %27
store double* %13, double** %28
%34 = load double*, double** %28
%35 = getelementptr inbounds double, double* %34, i32 -1
store double* %35, double** %28
%36 = load double*, double** %27
%37 = getelementptr inbounds double, double* %36, i32 -1
store double* %37, double** %27
%38 = load double*, double** %19
%39 = getelementptr inbounds double, double* %38, i32 -1
store double* %39, double** %19
%40 = load double*, double** %18
%41 = getelementptr inbounds double, double* %40, i32 -1
store double* %41, double** %18
%42 = load double*, double** %17
%43 = getelementptr inbounds double, double* %42, i32 -1
store double* %43, double** %17
%44 = load i32*, i32** %25
%45 = getelementptr inbounds i32, i32* %44, i32 -1
store i32* %45, i32** %25
%46 = load double*, double** %24
%47 = getelementptr inbounds double, double* %46, i32 -1
store double* %47, double** %24
%48 = load i32*, i32** %26
store i32 0, i32* %48
store i32 0, i32* @jtridib_.tag
%49 = load double*, double** %17
%50 = getelementptr inbounds double, double* %49, i64 1
%51 = load double, double* %50
store double %51, double* @jtridib_.xu
%52 = load double*, double** %17
%53 = getelementptr inbounds double, double* %52, i64 1
%54 = load double, double* %53
store double %54, double* @jtridib_.x0
store double 0.000000e+00, double* @jtridib_.u
%55 = load i32*, i32** %15
%56 = load i32, i32* %55
store i32 %56, i32* %29
store i32 1, i32* @jtridib_.i
br label %57
57: ; preds = %179, %14
%58 = load i32, i32* @jtridib_.i
%59 = load i32, i32* %29
%60 = icmp sle i32 %58, %59
br i1 %60, label %61, label %182
61: ; preds = %57
%62 = load double, double* @jtridib_.u
store double %62, double* @jtridib_.x1
store double 0.000000e+00, double* @jtridib_.u
%63 = load i32, i32* @jtridib_.i
%64 = load i32*, i32** %15
%65 = load i32, i32* %64
%66 = icmp ne i32 %63, %65
br i1 %66, label %67, label %83
67: ; preds = %61
%68 = load double*, double** %18
%69 = load i32, i32* @jtridib_.i
%70 = add nsw i32 %69, 1
%71 = sext i32 %70 to i64
%72 = getelementptr inbounds double, double* %68, i64 %71
%73 = load double, double* %72
store double %73, double* %31
%74 = load double, double* %31
%75 = fcmp oge double %74, 0.000000e+00
br i1 %75, label %76, label %78
76: ; preds = %67
%77 = load double, double* %31
br label %81
78: ; preds = %67
%79 = load double, double* %31
%80 = fneg double %79
br label %81
81: ; preds = %78, %76
%82 = phi double [ %77, %76 ], [ %80, %78 ]
store double %82, double* @jtridib_.u
br label %83
83: ; preds = %81, %61
%84 = load double*, double** %17
%85 = load i32, i32* @jtridib_.i
%86 = sext i32 %85 to i64
%87 = getelementptr inbounds double, double* %84, i64 %86
%88 = load double, double* %87
%89 = load double, double* @jtridib_.x1
%90 = load double, double* @jtridib_.u
%91 = fadd double %89, %90
%92 = fsub double %88, %91
store double %92, double* %31
%93 = load double, double* %31
%94 = load double, double* @jtridib_.xu
%95 = fcmp ole double %93, %94
br i1 %95, label %96, label %98
96: ; preds = %83
%97 = load double, double* %31
br label %100
98: ; preds = %83
%99 = load double, double* @jtridib_.xu
br label %100
100: ; preds = %98, %96
%101 = phi double [ %97, %96 ], [ %99, %98 ]
store double %101, double* @jtridib_.xu
%102 = load double*, double** %17
%103 = load i32, i32* @jtridib_.i
%104 = sext i32 %103 to i64
%105 = getelementptr inbounds double, double* %102, i64 %104
%106 = load double, double* %105
%107 = load double, double* @jtridib_.x1
%108 = load double, double* @jtridib_.u
%109 = fadd double %107, %108
%110 = fadd double %106, %109
store double %110, double* %31
%111 = load double, double* %31
%112 = load double, double* @jtridib_.x0
%113 = fcmp oge double %111, %112
br i1 %113, label %114, label %116
114: ; preds = %100
%115 = load double, double* %31
br label %118
116: ; preds = %100
%117 = load double, double* @jtridib_.x0
br label %118
118: ; preds = %116, %114
%119 = phi double [ %115, %114 ], [ %117, %116 ]
store double %119, double* @jtridib_.x0
%120 = load i32, i32* @jtridib_.i
%121 = icmp eq i32 %120, 1
br i1 %121, label %122, label %123
122: ; preds = %118
br label %173
123: ; preds = %118
%124 = load double*, double** %18
%125 = load i32, i32* @jtridib_.i
%126 = sext i32 %125 to i64
%127 = getelementptr inbounds double, double* %124, i64 %126
%128 = load double, double* %127
store double %128, double* %31
%129 = load double, double* %31
%130 = fcmp oge double %129, 0.000000e+00
br i1 %130, label %131, label %133
131: ; preds = %123
%132 = load double, double* %31
br label %136
133: ; preds = %123
%134 = load double, double* %31
%135 = fneg double %134
br label %136
136: ; preds = %133, %131
%137 = phi double [ %132, %131 ], [ %135, %133 ]
%138 = load double, double* @jtridib_.machep
%139 = load double*, double** %17
%140 = load i32, i32* @jtridib_.i
%141 = sext i32 %140 to i64
%142 = getelementptr inbounds double, double* %139, i64 %141
%143 = load double, double* %142
store double %143, double* %32
%144 = load double, double* %32
%145 = fcmp oge double %144, 0.000000e+00
br i1 %145, label %146, label %148
146: ; preds = %136
%147 = load double, double* %32
br label %151
148: ; preds = %136
%149 = load double, double* %32
%150 = fneg double %149
br label %151
151: ; preds = %148, %146
%152 = phi double [ %147, %146 ], [ %150, %148 ]
%153 = load double*, double** %17
%154 = load i32, i32* @jtridib_.i
%155 = sub nsw i32 %154, 1
%156 = sext i32 %155 to i64
%157 = getelementptr inbounds double, double* %153, i64 %156
%158 = load double, double* %157
store double %158, double* %33
%159 = load double, double* %33
%160 = fcmp oge double %159, 0.000000e+00
br i1 %160, label %161, label %163
161: ; preds = %151
%162 = load double, double* %33
br label %166
163: ; preds = %151
%164 = load double, double* %33
%165 = fneg double %164
br label %166
166: ; preds = %163, %161
%167 = phi double [ %162, %161 ], [ %165, %163 ]
%168 = fadd double %152, %167
%169 = fmul double %138, %168
%170 = fcmp ogt double %137, %169
br i1 %170, label %171, label %172
171: ; preds = %166
br label %178
172: ; preds = %166
br label %173
173: ; preds = %172, %122
%174 = load double*, double** %19
%175 = load i32, i32* @jtridib_.i
%176 = sext i32 %175 to i64
%177 = getelementptr inbounds double, double* %174, i64 %176
store double 0.000000e+00, double* %177
br label %178
178: ; preds = %173, %171
br label %179
179: ; preds = %178
%180 = load i32, i32* @jtridib_.i
%181 = add nsw i32 %180, 1
store i32 %181, i32* @jtridib_.i
br label %57
182: ; preds = %57
%183 = load double, double* @jtridib_.xu
%184 = fcmp oge double %183, 0.000000e+00
br i1 %184, label %185, label %187
185: ; preds = %182
%186 = load double, double* @jtridib_.xu
br label %190
187: ; preds = %182
%188 = load double, double* @jtridib_.xu
%189 = fneg double %188
br label %190
190: ; preds = %187, %185
%191 = phi double [ %186, %185 ], [ %189, %187 ]
store double %191, double* %31
%192 = load double, double* @jtridib_.x0
%193 = fcmp oge double %192, 0.000000e+00
br i1 %193, label %194, label %196
194: ; preds = %190
%195 = load double, double* @jtridib_.x0
br label %199
196: ; preds = %190
%197 = load double, double* @jtridib_.x0
%198 = fneg double %197
br label %199
199: ; preds = %196, %194
%200 = phi double [ %195, %194 ], [ %198, %196 ]
store double %200, double* %32
%201 = load double, double* %31
%202 = load double, double* %32
%203 = fcmp oge double %201, %202
br i1 %203, label %204, label %206
204: ; preds = %199
%205 = load double, double* %31
br label %208
206: ; preds = %199
%207 = load double, double* %32
br label %208
208: ; preds = %206, %204
%209 = phi double [ %205, %204 ], [ %207, %206 ]
%210 = load double, double* @jtridib_.machep
%211 = fmul double %209, %210
%212 = load i32*, i32** %15
%213 = load i32, i32* %212
%214 = sitofp i32 %213 to double
%215 = fmul double %211, %214
store double %215, double* @jtridib_.x1
%216 = load double, double* @jtridib_.x1
%217 = load double, double* @jtridib_.xu
%218 = fsub double %217, %216
store double %218, double* @jtridib_.xu
%219 = load double, double* @jtridib_.xu
store double %219, double* @jtridib_.t1
%220 = load double, double* @jtridib_.x1
%221 = load double, double* @jtridib_.x0
%222 = fadd double %221, %220
store double %222, double* @jtridib_.x0
%223 = load double, double* @jtridib_.x0
store double %223, double* @jtridib_.t2
store i32 1, i32* @jtridib_.p
%224 = load i32*, i32** %15
%225 = load i32, i32* %224
store i32 %225, i32* @jtridib_.q
%226 = load i32*, i32** %22
%227 = load i32, i32* %226
%228 = sub nsw i32 %227, 1
store i32 %228, i32* @jtridib_.m1
%229 = load i32, i32* @jtridib_.m1
%230 = icmp eq i32 %229, 0
br i1 %230, label %231, label %232
231: ; preds = %208
br label %263
232: ; preds = %208
store i32 1, i32* @jtridib_.isturm
br label %233
233: ; preds = %273, %258, %256, %232
%234 = load double, double* @jtridib_.x1
store double %234, double* @jtridib_.v
%235 = load double, double* @jtridib_.xu
%236 = load double, double* @jtridib_.x0
%237 = load double, double* @jtridib_.xu
%238 = fsub double %236, %237
%239 = call double @llvm.fmuladd.f64(double %238, double 5.000000e-01, double %235)
store double %239, double* @jtridib_.x1
%240 = load double, double* @jtridib_.x1
%241 = load double, double* @jtridib_.v
%242 = fcmp oeq double %240, %241
br i1 %242, label %243, label %244
243: ; preds = %233
br label %864
244: ; preds = %233
br label %632
245: ; preds = %699
%246 = load i32, i32* @jtridib_.s
%247 = load i32, i32* @jtridib_.m1
%248 = sub nsw i32 %246, %247
store i32 %248, i32* %29
%249 = icmp slt i32 %248, 0
br i1 %249, label %250, label %251
250: ; preds = %245
br label %256
251: ; preds = %245
%252 = load i32, i32* %29
%253 = icmp eq i32 %252, 0
br i1 %253, label %254, label %255
254: ; preds = %251
br label %260
255: ; preds = %251
br label %258
256: ; preds = %280, %250
%257 = load double, double* @jtridib_.x1
store double %257, double* @jtridib_.xu
br label %233
258: ; preds = %285, %255
%259 = load double, double* @jtridib_.x1
store double %259, double* @jtridib_.x0
br label %233
260: ; preds = %254
%261 = load double, double* @jtridib_.x1
store double %261, double* @jtridib_.xu
%262 = load double, double* @jtridib_.x1
store double %262, double* @jtridib_.t1
br label %263
263: ; preds = %260, %231
%264 = load i32, i32* @jtridib_.m1
%265 = load i32*, i32** %23
%266 = load i32, i32* %265
%267 = add nsw i32 %264, %266
store i32 %267, i32* @jtridib_.m22
%268 = load i32, i32* @jtridib_.m22
%269 = load i32*, i32** %15
%270 = load i32, i32* %269
%271 = icmp eq i32 %268, %270
br i1 %271, label %272, label %273
272: ; preds = %263
br label %288
273: ; preds = %263
%274 = load double, double* @jtridib_.t2
store double %274, double* @jtridib_.x0
store i32 2, i32* @jtridib_.isturm
br label %233
275: ; preds = %700
%276 = load i32, i32* @jtridib_.s
%277 = load i32, i32* @jtridib_.m22
%278 = sub nsw i32 %276, %277
store i32 %278, i32* %29
%279 = icmp slt i32 %278, 0
br i1 %279, label %280, label %281
280: ; preds = %275
br label %256
281: ; preds = %275
%282 = load i32, i32* %29
%283 = icmp eq i32 %282, 0
br i1 %283, label %284, label %285
284: ; preds = %281
br label %286
285: ; preds = %281
br label %258
286: ; preds = %284
%287 = load double, double* @jtridib_.x1
store double %287, double* @jtridib_.t2
br label %288
288: ; preds = %286, %272
store i32 0, i32* @jtridib_.q
store i32 0, i32* @jtridib_.r
br label %289
289: ; preds = %862, %288
%290 = load i32, i32* @jtridib_.r
%291 = load i32*, i32** %23
%292 = load i32, i32* %291
%293 = icmp eq i32 %290, %292
br i1 %293, label %294, label %295
294: ; preds = %289
br label %871
295: ; preds = %289
%296 = load i32, i32* @jtridib_.tag
%297 = add nsw i32 %296, 1
store i32 %297, i32* @jtridib_.tag
%298 = load i32, i32* @jtridib_.q
%299 = add nsw i32 %298, 1
store i32 %299, i32* @jtridib_.p
%300 = load double*, double** %17
%301 = load i32, i32* @jtridib_.p
%302 = sext i32 %301 to i64
%303 = getelementptr inbounds double, double* %300, i64 %302
%304 = load double, double* %303
store double %304, double* @jtridib_.xu
%305 = load double*, double** %17
%306 = load i32, i32* @jtridib_.p
%307 = sext i32 %306 to i64
%308 = getelementptr inbounds double, double* %305, i64 %307
%309 = load double, double* %308
store double %309, double* @jtridib_.x0
store double 0.000000e+00, double* @jtridib_.u
%310 = load i32*, i32** %15
%311 = load i32, i32* %310
store i32 %311, i32* %29
%312 = load i32, i32* @jtridib_.p
store i32 %312, i32* @jtridib_.q
br label %313
313: ; preds = %387, %295
%314 = load i32, i32* @jtridib_.q
%315 = load i32, i32* %29
%316 = icmp sle i32 %314, %315
br i1 %316, label %317, label %390
317: ; preds = %313
%318 = load double, double* @jtridib_.u
store double %318, double* @jtridib_.x1
store double 0.000000e+00, double* @jtridib_.u
store double 0.000000e+00, double* @jtridib_.v
%319 = load i32, i32* @jtridib_.q
%320 = load i32*, i32** %15
%321 = load i32, i32* %320
%322 = icmp eq i32 %319, %321
br i1 %322, label %323, label %324
323: ; preds = %317
br label %346
324: ; preds = %317
%325 = load double*, double** %18
%326 = load i32, i32* @jtridib_.q
%327 = add nsw i32 %326, 1
%328 = sext i32 %327 to i64
%329 = getelementptr inbounds double, double* %325, i64 %328
%330 = load double, double* %329
store double %330, double* %31
%331 = load double, double* %31
%332 = fcmp oge double %331, 0.000000e+00
br i1 %332, label %333, label %335
333: ; preds = %324
%334 = load double, double* %31
br label %338
335: ; preds = %324
%336 = load double, double* %31
%337 = fneg double %336
br label %338
338: ; preds = %335, %333
%339 = phi double [ %334, %333 ], [ %337, %335 ]
store double %339, double* @jtridib_.u
%340 = load double*, double** %19
%341 = load i32, i32* @jtridib_.q
%342 = add nsw i32 %341, 1
%343 = sext i32 %342 to i64
%344 = getelementptr inbounds double, double* %340, i64 %343
%345 = load double, double* %344
store double %345, double* @jtridib_.v
br label %346
346: ; preds = %338, %323
%347 = load double*, double** %17
%348 = load i32, i32* @jtridib_.q
%349 = sext i32 %348 to i64
%350 = getelementptr inbounds double, double* %347, i64 %349
%351 = load double, double* %350
%352 = load double, double* @jtridib_.x1
%353 = load double, double* @jtridib_.u
%354 = fadd double %352, %353
%355 = fsub double %351, %354
store double %355, double* %31
%356 = load double, double* %31
%357 = load double, double* @jtridib_.xu
%358 = fcmp ole double %356, %357
br i1 %358, label %359, label %361
359: ; preds = %346
%360 = load double, double* %31
br label %363
361: ; preds = %346
%362 = load double, double* @jtridib_.xu
br label %363
363: ; preds = %361, %359
%364 = phi double [ %360, %359 ], [ %362, %361 ]
store double %364, double* @jtridib_.xu
%365 = load double*, double** %17
%366 = load i32, i32* @jtridib_.q
%367 = sext i32 %366 to i64
%368 = getelementptr inbounds double, double* %365, i64 %367
%369 = load double, double* %368
%370 = load double, double* @jtridib_.x1
%371 = load double, double* @jtridib_.u
%372 = fadd double %370, %371
%373 = fadd double %369, %372
store double %373, double* %31
%374 = load double, double* %31
%375 = load double, double* @jtridib_.x0
%376 = fcmp oge double %374, %375
br i1 %376, label %377, label %379
377: ; preds = %363
%378 = load double, double* %31
br label %381
379: ; preds = %363
%380 = load double, double* @jtridib_.x0
br label %381
381: ; preds = %379, %377
%382 = phi double [ %378, %377 ], [ %380, %379 ]
store double %382, double* @jtridib_.x0
%383 = load double, double* @jtridib_.v
%384 = fcmp oeq double %383, 0.000000e+00
br i1 %384, label %385, label %386
385: ; preds = %381
br label %391
386: ; preds = %381
br label %387
387: ; preds = %386
%388 = load i32, i32* @jtridib_.q
%389 = add nsw i32 %388, 1
store i32 %389, i32* @jtridib_.q
br label %313
390: ; preds = %313
br label %391
391: ; preds = %390, %385
%392 = load double, double* @jtridib_.xu
%393 = fcmp oge double %392, 0.000000e+00
br i1 %393, label %394, label %396
394: ; preds = %391
%395 = load double, double* @jtridib_.xu
br label %399
396: ; preds = %391
%397 = load double, double* @jtridib_.xu
%398 = fneg double %397
br label %399
399: ; preds = %396, %394
%400 = phi double [ %395, %394 ], [ %398, %396 ]
store double %400, double* %31
%401 = load double, double* @jtridib_.x0
%402 = fcmp oge double %401, 0.000000e+00
br i1 %402, label %403, label %405
403: ; preds = %399
%404 = load double, double* @jtridib_.x0
br label %408
405: ; preds = %399
%406 = load double, double* @jtridib_.x0
%407 = fneg double %406
br label %408
408: ; preds = %405, %403
%409 = phi double [ %404, %403 ], [ %407, %405 ]
store double %409, double* %32
%410 = load double, double* %31
%411 = load double, double* %32
%412 = fcmp oge double %410, %411
br i1 %412, label %413, label %415
413: ; preds = %408
%414 = load double, double* %31
br label %417
415: ; preds = %408
%416 = load double, double* %32
br label %417
417: ; preds = %415, %413
%418 = phi double [ %414, %413 ], [ %416, %415 ]
%419 = load double, double* @jtridib_.machep
%420 = fmul double %418, %419
store double %420, double* @jtridib_.x1
%421 = load double*, double** %16
%422 = load double, double* %421
%423 = fcmp ole double %422, 0.000000e+00
br i1 %423, label %424, label %428
424: ; preds = %417
%425 = load double, double* @jtridib_.x1
%426 = fneg double %425
%427 = load double*, double** %16
store double %426, double* %427
br label %428
428: ; preds = %424, %417
%429 = load i32, i32* @jtridib_.p
%430 = load i32, i32* @jtridib_.q
%431 = icmp ne i32 %429, %430
br i1 %431, label %432, label %433
432: ; preds = %428
br label %462
433: ; preds = %428
%434 = load double, double* @jtridib_.t1
%435 = load double*, double** %17
%436 = load i32, i32* @jtridib_.p
%437 = sext i32 %436 to i64
%438 = getelementptr inbounds double, double* %435, i64 %437
%439 = load double, double* %438
%440 = fcmp ogt double %434, %439
br i1 %440, label %449, label %441
441: ; preds = %433
%442 = load double*, double** %17
%443 = load i32, i32* @jtridib_.p
%444 = sext i32 %443 to i64
%445 = getelementptr inbounds double, double* %442, i64 %444
%446 = load double, double* %445
%447 = load double, double* @jtridib_.t2
%448 = fcmp oge double %446, %447
br i1 %448, label %449, label %450
449: ; preds = %441, %433
br label %857
450: ; preds = %441
%451 = load i32, i32* @jtridib_.p
store i32 %451, i32* @jtridib_.m1
%452 = load i32, i32* @jtridib_.p
store i32 %452, i32* @jtridib_.m2
%453 = load double*, double** %17
%454 = load i32, i32* @jtridib_.p
%455 = sext i32 %454 to i64
%456 = getelementptr inbounds double, double* %453, i64 %455
%457 = load double, double* %456
%458 = load double*, double** %28
%459 = load i32, i32* @jtridib_.p
%460 = sext i32 %459 to i64
%461 = getelementptr inbounds double, double* %458, i64 %460
store double %457, double* %461
br label %758
462: ; preds = %432
%463 = load i32, i32* @jtridib_.q
%464 = load i32, i32* @jtridib_.p
%465 = sub nsw i32 %463, %464
%466 = add nsw i32 %465, 1
%467 = sitofp i32 %466 to double
%468 = load double, double* @jtridib_.x1
%469 = fmul double %468, %467
store double %469, double* @jtridib_.x1
%470 = load double, double* @jtridib_.t1
store double %470, double* %31
%471 = load double, double* @jtridib_.xu
%472 = load double, double* @jtridib_.x1
%473 = fsub double %471, %472
store double %473, double* %32
%474 = load double, double* %31
%475 = load double, double* %32
%476 = fcmp oge double %474, %475
br i1 %476, label %477, label %479
477: ; preds = %462
%478 = load double, double* %31
br label %481
479: ; preds = %462
%480 = load double, double* %32
br label %481
481: ; preds = %479, %477
%482 = phi double [ %478, %477 ], [ %480, %479 ]
%483 = load double*, double** %20
store double %482, double* %483
%484 = load double, double* @jtridib_.t2
store double %484, double* %31
%485 = load double, double* @jtridib_.x0
%486 = load double, double* @jtridib_.x1
%487 = fadd double %485, %486
store double %487, double* %32
%488 = load double, double* %31
%489 = load double, double* %32
%490 = fcmp ole double %488, %489
br i1 %490, label %491, label %493
491: ; preds = %481
%492 = load double, double* %31
br label %495
493: ; preds = %481
%494 = load double, double* %32
br label %495
495: ; preds = %493, %491
%496 = phi double [ %492, %491 ], [ %494, %493 ]
%497 = load double*, double** %21
store double %496, double* %497
%498 = load double*, double** %20
%499 = load double, double* %498
store double %499, double* @jtridib_.x1
store i32 3, i32* @jtridib_.isturm
br label %632
500: ; preds = %701
%501 = load i32, i32* @jtridib_.s
%502 = add nsw i32 %501, 1
store i32 %502, i32* @jtridib_.m1
%503 = load double*, double** %21
%504 = load double, double* %503
store double %504, double* @jtridib_.x1
store i32 4, i32* @jtridib_.isturm
br label %632
505: ; preds = %702
%506 = load i32, i32* @jtridib_.s
store i32 %506, i32* @jtridib_.m2
%507 = load i32, i32* @jtridib_.m1
%508 = load i32, i32* @jtridib_.m2
%509 = icmp sgt i32 %507, %508
br i1 %509, label %510, label %511
510: ; preds = %505
br label %857
511: ; preds = %505
%512 = load double*, double** %21
%513 = load double, double* %512
store double %513, double* @jtridib_.x0
store i32 5, i32* @jtridib_.isturm
%514 = load i32, i32* @jtridib_.m2
store i32 %514, i32* %29
%515 = load i32, i32* @jtridib_.m1
store i32 %515, i32* @jtridib_.i
br label %516
516: ; preds = %533, %511
%517 = load i32, i32* @jtridib_.i
%518 = load i32, i32* %29
%519 = icmp sle i32 %517, %518
br i1 %519, label %520, label %536
520: ; preds = %516
%521 = load double*, double** %21
%522 = load double, double* %521
%523 = load double*, double** %28
%524 = load i32, i32* @jtridib_.i
%525 = sext i32 %524 to i64
%526 = getelementptr inbounds double, double* %523, i64 %525
store double %522, double* %526
%527 = load double*, double** %20
%528 = load double, double* %527
%529 = load double*, double** %27
%530 = load i32, i32* @jtridib_.i
%531 = sext i32 %530 to i64
%532 = getelementptr inbounds double, double* %529, i64 %531
store double %528, double* %532
br label %533
533: ; preds = %520
%534 = load i32, i32* @jtridib_.i
%535 = add nsw i32 %534, 1
store i32 %535, i32* @jtridib_.i
br label %516
536: ; preds = %516
%537 = load i32, i32* @jtridib_.m2
store i32 %537, i32* @jtridib_.k
br label %538
538: ; preds = %756, %536
%539 = load double*, double** %20
%540 = load double, double* %539
store double %540, double* @jtridib_.xu
%541 = load i32, i32* @jtridib_.k
store i32 %541, i32* %29
%542 = load i32, i32* @jtridib_.m1
store i32 %542, i32* @jtridib_.ii
br label %543
543: ; preds = %568, %538
%544 = load i32, i32* @jtridib_.ii
%545 = load i32, i32* %29
%546 = icmp sle i32 %544, %545
br i1 %546, label %547, label %571
547: ; preds = %543
%548 = load i32, i32* @jtridib_.m1
%549 = load i32, i32* @jtridib_.k
%550 = add nsw i32 %548, %549
%551 = load i32, i32* @jtridib_.ii
%552 = sub nsw i32 %550, %551
store i32 %552, i32* @jtridib_.i
%553 = load double, double* @jtridib_.xu
%554 = load double*, double** %27
%555 = load i32, i32* @jtridib_.i
%556 = sext i32 %555 to i64
%557 = getelementptr inbounds double, double* %554, i64 %556
%558 = load double, double* %557
%559 = fcmp oge double %553, %558
br i1 %559, label %560, label %561
560: ; preds = %547
br label %567
561: ; preds = %547
%562 = load double*, double** %27
%563 = load i32, i32* @jtridib_.i
%564 = sext i32 %563 to i64
%565 = getelementptr inbounds double, double* %562, i64 %564
%566 = load double, double* %565
store double %566, double* @jtridib_.xu
br label %572
567: ; preds = %560
br label %568
568: ; preds = %567
%569 = load i32, i32* @jtridib_.ii
%570 = add nsw i32 %569, 1
store i32 %570, i32* @jtridib_.ii
br label %543
571: ; preds = %543
br label %572
572: ; preds = %571, %561
%573 = load double, double* @jtridib_.x0
%574 = load double*, double** %28
%575 = load i32, i32* @jtridib_.k
%576 = sext i32 %575 to i64
%577 = getelementptr inbounds double, double* %574, i64 %576
%578 = load double, double* %577
%579 = fcmp ogt double %573, %578
br i1 %579, label %580, label %586
580: ; preds = %572
%581 = load double*, double** %28
%582 = load i32, i32* @jtridib_.k
%583 = sext i32 %582 to i64
%584 = getelementptr inbounds double, double* %581, i64 %583
%585 = load double, double* %584
store double %585, double* @jtridib_.x0
br label %586
586: ; preds = %580, %572
br label %587
587: ; preds = %743, %742, %716, %586
%588 = load double, double* @jtridib_.xu
%589 = load double, double* @jtridib_.x0
%590 = fadd double %588, %589
%591 = fmul double %590, 5.000000e-01
store double %591, double* @jtridib_.x1
%592 = load double, double* @jtridib_.x0
%593 = load double, double* @jtridib_.xu
%594 = fsub double %592, %593
%595 = load double, double* @jtridib_.machep
%596 = fmul double %595, 2.000000e+00
%597 = load double, double* @jtridib_.xu
%598 = fcmp oge double %597, 0.000000e+00
br i1 %598, label %599, label %601
599: ; preds = %587
%600 = load double, double* @jtridib_.xu
br label %604
601: ; preds = %587
%602 = load double, double* @jtridib_.xu
%603 = fneg double %602
br label %604
604: ; preds = %601, %599
%605 = phi double [ %600, %599 ], [ %603, %601 ]
%606 = load double, double* @jtridib_.x0
%607 = fcmp oge double %606, 0.000000e+00
br i1 %607, label %608, label %610
608: ; preds = %604
%609 = load double, double* @jtridib_.x0
br label %613
610: ; preds = %604
%611 = load double, double* @jtridib_.x0
%612 = fneg double %611
br label %613
613: ; preds = %610, %608
%614 = phi double [ %609, %608 ], [ %612, %610 ]
%615 = fadd double %605, %614
%616 = load double*, double** %16
%617 = load double, double* %616
%618 = fcmp oge double %617, 0.000000e+00
br i1 %618, label %619, label %622
619: ; preds = %613
%620 = load double*, double** %16
%621 = load double, double* %620
br label %626
622: ; preds = %613
%623 = load double*, double** %16
%624 = load double, double* %623
%625 = fneg double %624
br label %626
626: ; preds = %622, %619
%627 = phi double [ %621, %619 ], [ %625, %622 ]
%628 = call double @llvm.fmuladd.f64(double %596, double %615, double %627)
%629 = fcmp ole double %594, %628
br i1 %629, label %630, label %631
630: ; preds = %626
br label %745
631: ; preds = %626
br label %632
632: ; preds = %631, %500, %495, %244
%633 = load i32, i32* @jtridib_.p
%634 = sub nsw i32 %633, 1
store i32 %634, i32* @jtridib_.s
store double 1.000000e+00, double* @jtridib_.u
%635 = load i32, i32* @jtridib_.q
store i32 %635, i32* %29
%636 = load i32, i32* @jtridib_.p
store i32 %636, i32* @jtridib_.i
br label %637
637: ; preds = %694, %632
%638 = load i32, i32* @jtridib_.i
%639 = load i32, i32* %29
%640 = icmp sle i32 %638, %639
br i1 %640, label %641, label %697
641: ; preds = %637
%642 = load double, double* @jtridib_.u
%643 = fcmp une double %642, 0.000000e+00
br i1 %643, label %644, label %645
644: ; preds = %641
br label %670
645: ; preds = %641
%646 = load double*, double** %18
%647 = load i32, i32* @jtridib_.i
%648 = sext i32 %647 to i64
%649 = getelementptr inbounds double, double* %646, i64 %648
%650 = load double, double* %649
store double %650, double* %31
%651 = load double, double* %31
%652 = fcmp oge double %651, 0.000000e+00
br i1 %652, label %653, label %655
653: ; preds = %645
%654 = load double, double* %31
br label %658
655: ; preds = %645
%656 = load double, double* %31
%657 = fneg double %656
br label %658
658: ; preds = %655, %653
%659 = phi double [ %654, %653 ], [ %657, %655 ]
%660 = load double, double* @jtridib_.machep
%661 = fdiv double %659, %660
store double %661, double* @jtridib_.v
%662 = load double*, double** %19
%663 = load i32, i32* @jtridib_.i
%664 = sext i32 %663 to i64
%665 = getelementptr inbounds double, double* %662, i64 %664
%666 = load double, double* %665
%667 = fcmp oeq double %666, 0.000000e+00
br i1 %667, label %668, label %669
668: ; preds = %658
store double 0.000000e+00, double* @jtridib_.v
br label %669
669: ; preds = %668, %658
br label %678
670: ; preds = %644
%671 = load double*, double** %19
%672 = load i32, i32* @jtridib_.i
%673 = sext i32 %672 to i64
%674 = getelementptr inbounds double, double* %671, i64 %673
%675 = load double, double* %674
%676 = load double, double* @jtridib_.u
%677 = fdiv double %675, %676
store double %677, double* @jtridib_.v
br label %678
678: ; preds = %670, %669
%679 = load double*, double** %17
%680 = load i32, i32* @jtridib_.i
%681 = sext i32 %680 to i64
%682 = getelementptr inbounds double, double* %679, i64 %681
%683 = load double, double* %682
%684 = load double, double* @jtridib_.x1
%685 = fsub double %683, %684
%686 = load double, double* @jtridib_.v
%687 = fsub double %685, %686
store double %687, double* @jtridib_.u
%688 = load double, double* @jtridib_.u
%689 = fcmp olt double %688, 0.000000e+00
br i1 %689, label %690, label %693
690: ; preds = %678
%691 = load i32, i32* @jtridib_.s
%692 = add nsw i32 %691, 1
store i32 %692, i32* @jtridib_.s
br label %693
693: ; preds = %690, %678
br label %694
694: ; preds = %693
%695 = load i32, i32* @jtridib_.i
%696 = add nsw i32 %695, 1
store i32 %696, i32* @jtridib_.i
br label %637
697: ; preds = %637
%698 = load i32, i32* @jtridib_.isturm
switch i32 %698, label %704 [
i32 1, label %699
i32 2, label %700
i32 3, label %701
i32 4, label %702
i32 5, label %703
]
699: ; preds = %697
br label %245
700: ; preds = %697
br label %275
701: ; preds = %697
br label %500
702: ; preds = %697
br label %505
703: ; preds = %697
br label %705
704: ; preds = %697
br label %705
705: ; preds = %704, %703
%706 = load i32, i32* @jtridib_.s
%707 = load i32, i32* @jtridib_.k
%708 = icmp sge i32 %706, %707
br i1 %708, label %709, label %710
709: ; preds = %705
br label %743
710: ; preds = %705
%711 = load double, double* @jtridib_.x1
store double %711, double* @jtridib_.xu
%712 = load i32, i32* @jtridib_.s
%713 = load i32, i32* @jtridib_.m1
%714 = icmp sge i32 %712, %713
br i1 %714, label %715, label %716
715: ; preds = %710
br label %722
716: ; preds = %710
%717 = load double, double* @jtridib_.x1
%718 = load double*, double** %27
%719 = load i32, i32* @jtridib_.m1
%720 = sext i32 %719 to i64
%721 = getelementptr inbounds double, double* %718, i64 %720
store double %717, double* %721
br label %587
722: ; preds = %715
%723 = load double, double* @jtridib_.x1
%724 = load double*, double** %27
%725 = load i32, i32* @jtridib_.s
%726 = add nsw i32 %725, 1
%727 = sext i32 %726 to i64
%728 = getelementptr inbounds double, double* %724, i64 %727
store double %723, double* %728
%729 = load double*, double** %28
%730 = load i32, i32* @jtridib_.s
%731 = sext i32 %730 to i64
%732 = getelementptr inbounds double, double* %729, i64 %731
%733 = load double, double* %732
%734 = load double, double* @jtridib_.x1
%735 = fcmp ogt double %733, %734
br i1 %735, label %736, label %742
736: ; preds = %722
%737 = load double, double* @jtridib_.x1
%738 = load double*, double** %28
%739 = load i32, i32* @jtridib_.s
%740 = sext i32 %739 to i64
%741 = getelementptr inbounds double, double* %738, i64 %740
store double %737, double* %741
br label %742
742: ; preds = %736, %722
br label %587
743: ; preds = %709
%744 = load double, double* @jtridib_.x1
store double %744, double* @jtridib_.x0
br label %587
745: ; preds = %630
%746 = load double, double* @jtridib_.x1
%747 = load double*, double** %28
%748 = load i32, i32* @jtridib_.k
%749 = sext i32 %748 to i64
%750 = getelementptr inbounds double, double* %747, i64 %749
store double %746, double* %750
%751 = load i32, i32* @jtridib_.k
%752 = add nsw i32 %751, -1
store i32 %752, i32* @jtridib_.k
%753 = load i32, i32* @jtridib_.k
%754 = load i32, i32* @jtridib_.m1
%755 = icmp sge i32 %753, %754
br i1 %755, label %756, label %757
756: ; preds = %745
br label %538
757: ; preds = %745
br label %758
758: ; preds = %757, %450
%759 = load i32, i32* @jtridib_.r
store i32 %759, i32* @jtridib_.s
%760 = load i32, i32* @jtridib_.r
%761 = load i32, i32* @jtridib_.m2
%762 = add nsw i32 %760, %761
%763 = load i32, i32* @jtridib_.m1
%764 = sub nsw i32 %762, %763
%765 = add nsw i32 %764, 1
store i32 %765, i32* @jtridib_.r
store i32 1, i32* @jtridib_.j
%766 = load i32, i32* @jtridib_.m1
store i32 %766, i32* @jtridib_.k
%767 = load i32, i32* @jtridib_.r
store i32 %767, i32* %29
store i32 1, i32* @jtridib_.l
br label %768
768: ; preds = %853, %758
%769 = load i32, i32* @jtridib_.l
%770 = load i32, i32* %29
%771 = icmp sle i32 %769, %770
br i1 %771, label %772, label %856
772: ; preds = %768
%773 = load i32, i32* @jtridib_.j
%774 = load i32, i32* @jtridib_.s
%775 = icmp sgt i32 %773, %774
br i1 %775, label %776, label %777
776: ; preds = %772
br label %832
777: ; preds = %772
%778 = load i32, i32* @jtridib_.k
%779 = load i32, i32* @jtridib_.m2
%780 = icmp sgt i32 %778, %779
br i1 %780, label %781, label %782
781: ; preds = %777
br label %857
782: ; preds = %777
%783 = load double*, double** %28
%784 = load i32, i32* @jtridib_.k
%785 = sext i32 %784 to i64
%786 = getelementptr inbounds double, double* %783, i64 %785
%787 = load double, double* %786
%788 = load double*, double** %24
%789 = load i32, i32* @jtridib_.l
%790 = sext i32 %789 to i64
%791 = getelementptr inbounds double, double* %788, i64 %790
%792 = load double, double* %791
%793 = fcmp oge double %787, %792
br i1 %793, label %794, label %795
794: ; preds = %782
br label %849
795: ; preds = %782
%796 = load i32, i32* @jtridib_.s
store i32 %796, i32* %30
%797 = load i32, i32* @jtridib_.j
store i32 %797, i32* @jtridib_.ii
br label %798
798: ; preds = %828, %795
%799 = load i32, i32* @jtridib_.ii
%800 = load i32, i32* %30
%801 = icmp sle i32 %799, %800
br i1 %801, label %802, label %831
802: ; preds = %798
%803 = load i32, i32* @jtridib_.l
%804 = load i32, i32* @jtridib_.s
%805 = add nsw i32 %803, %804
%806 = load i32, i32* @jtridib_.ii
%807 = sub nsw i32 %805, %806
store i32 %807, i32* @jtridib_.i
%808 = load double*, double** %24
%809 = load i32, i32* @jtridib_.i
%810 = sext i32 %809 to i64
%811 = getelementptr inbounds double, double* %808, i64 %810
%812 = load double, double* %811
%813 = load double*, double** %24
%814 = load i32, i32* @jtridib_.i
%815 = add nsw i32 %814, 1
%816 = sext i32 %815 to i64
%817 = getelementptr inbounds double, double* %813, i64 %816
store double %812, double* %817
%818 = load i32*, i32** %25
%819 = load i32, i32* @jtridib_.i
%820 = sext i32 %819 to i64
%821 = getelementptr inbounds i32, i32* %818, i64 %820
%822 = load i32, i32* %821
%823 = load i32*, i32** %25
%824 = load i32, i32* @jtridib_.i
%825 = add nsw i32 %824, 1
%826 = sext i32 %825 to i64
%827 = getelementptr inbounds i32, i32* %823, i64 %826
store i32 %822, i32* %827
br label %828
828: ; preds = %802
%829 = load i32, i32* @jtridib_.ii
%830 = add nsw i32 %829, 1
store i32 %830, i32* @jtridib_.ii
br label %798
831: ; preds = %798
br label %832
832: ; preds = %831, %776
%833 = load double*, double** %28
%834 = load i32, i32* @jtridib_.k
%835 = sext i32 %834 to i64
%836 = getelementptr inbounds double, double* %833, i64 %835
%837 = load double, double* %836
%838 = load double*, double** %24
%839 = load i32, i32* @jtridib_.l
%840 = sext i32 %839 to i64
%841 = getelementptr inbounds double, double* %838, i64 %840
store double %837, double* %841
%842 = load i32, i32* @jtridib_.tag
%843 = load i32*, i32** %25
%844 = load i32, i32* @jtridib_.l
%845 = sext i32 %844 to i64
%846 = getelementptr inbounds i32, i32* %843, i64 %845
store i32 %842, i32* %846
%847 = load i32, i32* @jtridib_.k
%848 = add nsw i32 %847, 1
store i32 %848, i32* @jtridib_.k
br label %852
849: ; preds = %794
%850 = load i32, i32* @jtridib_.j
%851 = add nsw i32 %850, 1
store i32 %851, i32* @jtridib_.j
br label %852
852: ; preds = %849, %832
br label %853
853: ; preds = %852
%854 = load i32, i32* @jtridib_.l
%855 = add nsw i32 %854, 1
store i32 %855, i32* @jtridib_.l
br label %768
856: ; preds = %768
br label %857
857: ; preds = %856, %781, %510, %449
%858 = load i32, i32* @jtridib_.q
%859 = load i32*, i32** %15
%860 = load i32, i32* %859
%861 = icmp slt i32 %858, %860
br i1 %861, label %862, label %863
862: ; preds = %857
br label %289
863: ; preds = %857
br label %871
864: ; preds = %243
%865 = load i32*, i32** %15
%866 = load i32, i32* %865
%867 = mul nsw i32 %866, 3
%868 = load i32, i32* @jtridib_.isturm
%869 = add nsw i32 %867, %868
%870 = load i32*, i32** %26
store i32 %869, i32* %870
br label %871
871: ; preds = %864, %863, %294
%872 = load double, double* @jtridib_.t1
%873 = load double*, double** %20
store double %872, double* %873
%874 = load double, double* @jtridib_.t2
%875 = load double*, double** %21
store double %874, double* %875
ret i32 0
}

LLVM IR (-O2):
@jtridib_.k = internal unnamed_addr global i32 0
@jtridib_.r = internal unnamed_addr global i32 0
@jtridib_.m2 = internal unnamed_addr global i32 0
@jtridib_.m22 = internal unnamed_addr global i32 0
define i32 @jtridib_(i32* nocapture %0, double* nocapture %1, double* nocapture %2, double* nocapture %3, double* nocapture %4, double* nocapture %5, double* nocapture %6, i32* nocapture %7, i32* nocapture %8, double* nocapture %9, i32* nocapture %10, i32* nocapture writeonly %11, double* nocapture %12, double* nocapture %13) {
%15 = getelementptr inbounds double, double* %13, i64 -1
%16 = getelementptr inbounds double, double* %12, i64 -1
%17 = getelementptr inbounds double, double* %4, i64 -1
%18 = getelementptr inbounds double, double* %3, i64 -1
%19 = getelementptr inbounds double, double* %2, i64 -1
%20 = getelementptr inbounds i32, i32* %10, i64 -1
%21 = getelementptr inbounds double, double* %9, i64 -1
store i32 0, i32* %11
%22 = load double, double* %2
%23 = load i32, i32* %0
%24 = icmp slt i32 %23, 1
br i1 %24, label %93, label %25
25: ; preds = %14
%26 = zext i32 %23 to i64
%27 = add nuw i32 %23, 1
%28 = zext i32 %27 to i64
%29 = icmp eq i32 %23, 1
br i1 %29, label %36, label %30
30: ; preds = %25
%31 = getelementptr inbounds double, double* %3, i64 1
%32 = load double, double* %31
%33 = fcmp oge double %32, 0.000000e+00
%34 = fneg double %32
%35 = select i1 %33, double %32, double %34
br label %36
36: ; preds = %30, %25
%37 = phi double [ %35, %30 ], [ 0.000000e+00, %25 ]
%38 = fadd double %37, 0.000000e+00
%39 = fsub double %22, %38
%40 = fcmp ole double %39, %22
%41 = select i1 %40, double %39, double %22
%42 = fadd double %22, %38
%43 = fcmp oge double %42, %22
%44 = select i1 %43, double %42, double %22
store double 0.000000e+00, double* %4
%45 = icmp eq i32 %27, 2
br i1 %45, label %93, label %46
46: ; preds = %36, %90
%47 = phi i64 [ %91, %90 ], [ 2, %36 ]
%48 = phi double [ %61, %90 ], [ %37, %36 ]
%49 = phi double [ %67, %90 ], [ %41, %36 ]
%50 = phi double [ %70, %90 ], [ %44, %36 ]
%51 = icmp eq i64 %47, %26
br i1 %51, label %60, label %52
52: ; preds = %46
%53 = add nuw i64 %47, 1
%54 = and i64 %53, 4294967295
%55 = getelementptr inbounds double, double* %18, i64 %54
%56 = load double, double* %55
%57 = fcmp oge double %56, 0.000000e+00
%58 = fneg double %56
%59 = select i1 %57, double %56, double %58
br label %60
60: ; preds = %46, %52
%61 = phi double [ %59, %52 ], [ 0.000000e+00, %46 ]
%62 = getelementptr inbounds double, double* %19, i64 %47
%63 = load double, double* %62
%64 = fadd double %48, %61
%65 = fsub double %63, %64
%66 = fcmp ole double %65, %49
%67 = select i1 %66, double %65, double %49
%68 = fadd double %63, %64
%69 = fcmp oge double %68, %50
%70 = select i1 %69, double %68, double %50
%71 = getelementptr inbounds double, double* %18, i64 %47
%72 = load double, double* %71
%73 = fcmp oge double %72, 0.000000e+00
%74 = fneg double %72
%75 = select i1 %73, double %72, double %74
%76 = fcmp oge double %63, 0.000000e+00
%77 = fneg double %63
%78 = select i1 %76, double %63, double %77
%79 = add nsw i64 %47, -1
%80 = getelementptr inbounds double, double* %19, i64 %79
%81 = load double, double* %80
%82 = fcmp oge double %81, 0.000000e+00
%83 = fneg double %81
%84 = select i1 %82, double %81, double %83
%85 = fadd double %78, %84
%86 = fmul double %85, 1.250000e-15
%87 = fcmp ogt double %75, %86
br i1 %87, label %90, label %88
88: ; preds = %60
%89 = getelementptr inbounds double, double* %17, i64 %47
store double 0.000000e+00, double* %89
br label %90
90: ; preds = %88, %60
%91 = add nuw nsw i64 %47, 1
%92 = icmp eq i64 %91, %28
br i1 %92, label %93, label %46
93: ; preds = %90, %36, %14
%94 = phi double [ %22, %14 ], [ %44, %36 ], [ %70, %90 ]
%95 = phi double [ %22, %14 ], [ %41, %36 ], [ %67, %90 ]
%96 = fcmp oge double %95, 0.000000e+00
%97 = fneg double %95
%98 = select i1 %96, double %95, double %97
%99 = fcmp oge double %94, 0.000000e+00
%100 = fneg double %94
%101 = select i1 %99, double %94, double %100
%102 = fcmp oge double %98, %101
%103 = select i1 %102, double %98, double %101
%104 = fmul double %103, 1.250000e-15
%105 = sitofp i32 %23 to double
%106 = fmul double %104, %105
%107 = fsub double %95, %106
%108 = fadd double %94, %106
%109 = load i32, i32* %7
%110 = add nsw i32 %109, -1
%111 = icmp eq i32 %110, 0
br i1 %111, label %137, label %112
112: ; preds = %137, %135, %155, %563, %566, %93
%113 = phi i32 [ %23, %93 ], [ %268, %566 ], [ %268, %563 ], [ %268, %155 ], [ %268, %135 ], [ %138, %137 ]
%114 = phi i32 [ %23, %93 ], [ %269, %566 ], [ %269, %563 ], [ %269, %155 ], [ %269, %135 ], [ %139, %137 ]
%115 = phi i32 [ %110, %93 ], [ %297, %566 ], [ %297, %563 ], [ %297, %155 ], [ %297, %135 ], [ %140, %137 ]
%116 = phi double [ %108, %93 ], [ %271, %566 ], [ %271, %563 ], [ %271, %155 ], [ %271, %135 ], [ %141, %137 ]
%117 = phi double [ %107, %93 ], [ %272, %566 ], [ %272, %563 ], [ %272, %155 ], [ %272, %135 ], [ %147, %137 ]
%118 = phi double [ %108, %93 ], [ %520, %566 ], [ %520, %563 ], [ %524, %155 ], [ %524, %135 ], [ %150, %137 ]
%119 = phi double [ %107, %93 ], [ %524, %566 ], [ %524, %563 ], [ %521, %155 ], [ %521, %135 ], [ %147, %137 ]
%120 = phi double [ %106, %93 ], [ %524, %566 ], [ %524, %563 ], [ %524, %155 ], [ %524, %135 ], [ %142, %137 ]
%121 = phi i32 [ %110, %93 ], [ %300, %566 ], [ %300, %563 ], [ %300, %155 ], [ %300, %135 ], [ %143, %137 ]
%122 = phi i32 [ %110, %93 ], [ %305, %566 ], [ %300, %563 ], [ %305, %155 ], [ %300, %135 ], [ %143, %137 ]
%123 = phi i32 [ 1, %93 ], [ %522, %566 ], [ %522, %563 ], [ %522, %155 ], [ %522, %135 ], [ 2, %137 ]
%124 = phi i32 [ %23, %93 ], [ %279, %566 ], [ %279, %563 ], [ %279, %155 ], [ %279, %135 ], [ %144, %137 ]
%125 = phi i32 [ 1, %93 ], [ %280, %566 ], [ %280, %563 ], [ %280, %155 ], [ %280, %135 ], [ %145, %137 ]
%126 = phi double [ %108, %93 ], [ %281, %566 ], [ %281, %563 ], [ %281, %155 ], [ %281, %135 ], [ %146, %137 ]
%127 = phi double [ %107, %93 ], [ %282, %566 ], [ %282, %563 ], [ %282, %155 ], [ %282, %135 ], [ %147, %137 ]
%128 = phi i32 [ %23, %93 ], [ %283, %566 ], [ %283, %563 ], [ %283, %155 ], [ %283, %135 ], [ %148, %137 ]
%129 = phi i32 [ 0, %93 ], [ %284, %566 ], [ %284, %563 ], [ %284, %155 ], [ %284, %135 ], [ %149, %137 ]
%130 = phi double [ %108, %93 ], [ %285, %566 ], [ %285, %563 ], [ %285, %155 ], [ %285, %135 ], [ %150, %137 ]
%131 = phi i32 [ %23, %93 ], [ %286, %566 ], [ %286, %563 ], [ %286, %155 ], [ %286, %135 ], [ %151, %137 ]
%132 = fsub double %118, %119
%133 = tail call double @llvm.fmuladd.f64(double %132, double 5.000000e-01, double %119)
%134 = fcmp oeq double %133, %120
br i1 %134, label %880, label %267
135: ; preds = %563
%136 = icmp eq i32 %564, 0
br i1 %136, label %137, label %112
137: ; preds = %135, %93
%138 = phi i32 [ %23, %93 ], [ %268, %135 ]
%139 = phi i32 [ %23, %93 ], [ %269, %135 ]
%140 = phi i32 [ 0, %93 ], [ %297, %135 ]
%141 = phi double [ %108, %93 ], [ %271, %135 ]
%142 = phi double [ %106, %93 ], [ %524, %135 ]
%143 = phi i32 [ 0, %93 ], [ %300, %135 ]
%144 = phi i32 [ %23, %93 ], [ %279, %135 ]
%145 = phi i32 [ 1, %93 ], [ %280, %135 ]
%146 = phi double [ %108, %93 ], [ %281, %135 ]
%147 = phi double [ %107, %93 ], [ %524, %135 ]
%148 = phi i32 [ %23, %93 ], [ %283, %135 ]
%149 = phi i32 [ 0, %93 ], [ %284, %135 ]
%150 = phi double [ %108, %93 ], [ %285, %135 ]
%151 = phi i32 [ %23, %93 ], [ %286, %135 ]
%152 = load i32, i32* %8
%153 = add nsw i32 %152, %143
store i32 %153, i32* @jtridib_.m22
%154 = icmp eq i32 %153, %151
br i1 %154, label %157, label %112
155: ; preds = %566
%156 = icmp eq i32 %568, 0
br i1 %156, label %157, label %112
157: ; preds = %155, %137
%158 = phi i32 [ %138, %137 ], [ %268, %155 ]
%159 = phi i32 [ %139, %137 ], [ %269, %155 ]
%160 = phi i32 [ %140, %137 ], [ %297, %155 ]
%161 = phi double [ %141, %137 ], [ %524, %155 ]
%162 = phi double [ %147, %137 ], [ %272, %155 ]
%163 = phi i32 [ %143, %137 ], [ %300, %155 ]
%164 = phi i32 [ %143, %137 ], [ %305, %155 ]
%165 = phi double [ %146, %137 ], [ %524, %155 ]
%166 = phi double [ %147, %137 ], [ %282, %155 ]
%167 = phi i32 [ %148, %137 ], [ %283, %155 ]
%168 = phi i32 [ %149, %137 ], [ %284, %155 ]
store i32 0, i32* @jtridib_.r
br label %169
169: ; preds = %878, %157
%170 = phi i32 [ %866, %878 ], [ %158, %157 ]
%171 = phi i32 [ %867, %878 ], [ %159, %157 ]
%172 = phi i32 [ %869, %878 ], [ %160, %157 ]
%173 = phi double [ %870, %878 ], [ %161, %157 ]
%174 = phi double [ %871, %878 ], [ %162, %157 ]
%175 = phi i32 [ %872, %878 ], [ %163, %157 ]
%176 = phi i32 [ %873, %878 ], [ %164, %157 ]
%177 = phi double [ %874, %878 ], [ %165, %157 ]
%178 = phi double [ %875, %878 ], [ %166, %157 ]
%179 = phi i32 [ %867, %878 ], [ %167, %157 ]
%180 = phi i32 [ %868, %878 ], [ 0, %157 ]
%181 = phi i32 [ %876, %878 ], [ %168, %157 ]
%182 = phi i32 [ %879, %878 ], [ 0, %157 ]
%183 = load i32, i32* %8
%184 = icmp eq i32 %182, %183
br i1 %184, label %883, label %185
185: ; preds = %169
%186 = add nsw i32 %181, 1
%187 = add nsw i32 %180, 1
%188 = sext i32 %187 to i64
%189 = getelementptr inbounds double, double* %19, i64 %188
%190 = load double, double* %189
%191 = icmp slt i32 %180, %179
br i1 %191, label %192, label %230
192: ; preds = %185
%193 = sext i32 %180 to i64
%194 = add nsw i64 %193, 1
%195 = sext i32 %179 to i64
%196 = add i32 %179, 1
br label %197
197: ; preds = %192, %224
%198 = phi i64 [ %194, %192 ], [ %225, %224 ]
%199 = phi double [ 0.000000e+00, %192 ], [ %213, %224 ]
%200 = phi double [ %190, %192 ], [ %219, %224 ]
%201 = phi double [ %190, %192 ], [ %222, %224 ]
%202 = icmp eq i64 %198, %195
br i1 %202, label %211, label %203
203: ; preds = %197
%204 = getelementptr inbounds double, double* %3, i64 %198
%205 = load double, double* %204
%206 = fcmp oge double %205, 0.000000e+00
%207 = fneg double %205
%208 = select i1 %206, double %205, double %207
%209 = getelementptr inbounds double, double* %4, i64 %198
%210 = load double, double* %209
br label %211
211: ; preds = %197, %203
%212 = phi double [ 0.000000e+00, %197 ], [ %210, %203 ]
%213 = phi double [ 0.000000e+00, %197 ], [ %208, %203 ]
%214 = getelementptr inbounds double, double* %19, i64 %198
%215 = load double, double* %214
%216 = fadd double %199, %213
%217 = fsub double %215, %216
%218 = fcmp ole double %217, %200
%219 = select i1 %218, double %217, double %200
%220 = fadd double %215, %216
%221 = fcmp oge double %220, %201
%222 = select i1 %221, double %220, double %201
%223 = fcmp oeq double %212, 0.000000e+00
br i1 %223, label %228, label %224
224: ; preds = %211
%225 = add nsw i64 %198, 1
%226 = trunc i64 %225 to i32
%227 = icmp eq i32 %196, %226
br i1 %227, label %230, label %197
228: ; preds = %211
%229 = trunc i64 %198 to i32
br label %230
230: ; preds = %224, %228, %185
%231 = phi double [ %190, %185 ], [ %222, %228 ], [ %222, %224 ]
%232 = phi double [ %190, %185 ], [ %219, %228 ], [ %219, %224 ]
%233 = phi i32 [ %187, %185 ], [ %229, %228 ], [ %196, %224 ]
%234 = fcmp oge double %232, 0.000000e+00
%235 = fneg double %232
%236 = select i1 %234, double %232, double %235
%237 = fcmp oge double %231, 0.000000e+00
%238 = fneg double %231
%239 = select i1 %237, double %231, double %238
%240 = fcmp oge double %236, %239
%241 = select i1 %240, double %236, double %239
%242 = fmul double %241, 1.250000e-15
%243 = load double, double* %1
%244 = fcmp ugt double %243, 0.000000e+00
br i1 %244, label %247, label %245
245: ; preds = %230
%246 = fneg double %242
store double %246, double* %1
br label %247
247: ; preds = %245, %230
%248 = icmp eq i32 %233, %187
br i1 %248, label %249, label %256
249: ; preds = %247
%250 = load double, double* %189
%251 = fcmp ule double %174, %250
%252 = fcmp ult double %250, %173
%253 = select i1 %251, i1 %252, i1 false
br i1 %253, label %254, label %865
254: ; preds = %249
store i32 %187, i32* @jtridib_.m2
%255 = getelementptr inbounds double, double* %15, i64 %188
store double %250, double* %255
br label %597
256: ; preds = %247
%257 = sub i32 %233, %180
%258 = sitofp i32 %257 to double
%259 = fmul double %242, %258
%260 = fsub double %232, %259
%261 = fcmp oge double %178, %260
%262 = select i1 %261, double %178, double %260
store double %262, double* %5
%263 = fadd double %231, %259
%264 = fcmp ole double %177, %263
%265 = select i1 %264, double %177, double %263
store double %265, double* %6
%266 = load double, double* %5
br label %267
267: ; preds = %256, %112
%268 = phi i32 [ %170, %256 ], [ %113, %112 ]
%269 = phi i32 [ %171, %256 ], [ %114, %112 ]
%270 = phi i32 [ %172, %256 ], [ %115, %112 ]
%271 = phi double [ %173, %256 ], [ %116, %112 ]
%272 = phi double [ %174, %256 ], [ %117, %112 ]
%273 = phi double [ %231, %256 ], [ %118, %112 ]
%274 = phi double [ %232, %256 ], [ %119, %112 ]
%275 = phi i32 [ %175, %256 ], [ %121, %112 ]
%276 = phi double [ %266, %256 ], [ %133, %112 ]
%277 = phi i32 [ %176, %256 ], [ %122, %112 ]
%278 = phi i32 [ 3, %256 ], [ %123, %112 ]
%279 = phi i32 [ %233, %256 ], [ %124, %112 ]
%280 = phi i32 [ %187, %256 ], [ %125, %112 ]
%281 = phi double [ %177, %256 ], [ %126, %112 ]
%282 = phi double [ %178, %256 ], [ %127, %112 ]
%283 = phi i32 [ %179, %256 ], [ %128, %112 ]
%284 = phi i32 [ %186, %256 ], [ %129, %112 ]
%285 = phi double [ %177, %256 ], [ %130, %112 ]
%286 = phi i32 [ %179, %256 ], [ %131, %112 ]
%287 = add nsw i32 %280, -1
%288 = icmp sgt i32 %280, %279
%289 = load i32, i32* @jtridib_.k
%290 = sext i32 %280 to i64
%291 = add i32 %279, 1
%292 = getelementptr double, double* %13, i64 1
%293 = getelementptr double, double* %12, i64 1
%294 = getelementptr double, double* %6, i64 1
%295 = getelementptr double, double* %5, i64 1
br label %296
296: ; preds = %570, %267
%297 = phi i32 [ %571, %570 ], [ %270, %267 ]
%298 = phi double [ %520, %570 ], [ %273, %267 ]
%299 = phi double [ %521, %570 ], [ %274, %267 ]
%300 = phi i32 [ %571, %570 ], [ %275, %267 ]
%301 = phi double [ %523, %570 ], [ %274, %267 ]
%302 = phi double [ %572, %570 ], [ %276, %267 ]
%303 = phi i32 [ %525, %570 ], [ %289, %267 ]
%304 = phi double [ %526, %570 ], [ %273, %267 ]
%305 = phi i32 [ %571, %570 ], [ %277, %267 ]
%306 = phi i32 [ 4, %570 ], [ %278, %267 ]
%307 = sext i32 %305 to i64
%308 = getelementptr inbounds double, double* %15, i64 %307
%309 = getelementptr inbounds double, double* %16, i64 %307
%310 = add nsw i64 %307, 1
%311 = trunc i64 %310 to i32
%312 = xor i32 %305, -1
%313 = getelementptr double, double* %13, i64 %307
%314 = xor i32 %305, -1
%315 = getelementptr double, double* %12, i64 %307
%316 = icmp ult double* %313, %294
%317 = icmp ult double* %313, %295
%318 = icmp ult double* %315, %294
%319 = icmp ult double* %315, %295
%320 = sext i32 %305 to i64
%321 = getelementptr inbounds double, double* %16, i64 %320
%322 = zext i32 %305 to i64
br label %519
323: ; preds = %573
%324 = load double, double* %6
%325 = add i32 %562, 1
store double %324, double* %308
%326 = load double, double* %5
store double %326, double* %309
%327 = icmp eq i32 %325, %311
br i1 %327, label %463, label %328
328: ; preds = %323
%329 = add i32 %562, %312
%330 = zext i32 %329 to i64
%331 = add nuw nsw i64 %330, 1
%332 = icmp ult i32 %329, 3
br i1 %332, label %434, label %333
333: ; preds = %328
%334 = add i32 %562, %314
%335 = zext i32 %334 to i64
%336 = add nsw i64 %307, %335
%337 = getelementptr double, double* %292, i64 %336
%338 = getelementptr double, double* %293, i64 %336
%339 = icmp ult double* %313, %338
%340 = icmp ult double* %315, %337
%341 = and i1 %339, %340
%342 = icmp ugt double* %337, %6
%343 = and i1 %316, %342
%344 = or i1 %341, %343
%345 = icmp ugt double* %337, %5
%346 = and i1 %317, %345
%347 = or i1 %344, %346
%348 = icmp ugt double* %338, %6
%349 = and i1 %318, %348
%350 = or i1 %347, %349
%351 = icmp ugt double* %338, %5
%352 = and i1 %319, %351
%353 = or i1 %350, %352
br i1 %353, label %434, label %354
354: ; preds = %333
%355 = and i64 %331, 8589934588
%356 = add nsw i64 %310, %355
%357 = add nsw i64 %355, -4
%358 = lshr exact i64 %357, 2
%359 = add nuw nsw i64 %358, 1
%360 = and i64 %359, 1
%361 = icmp eq i64 %357, 0
br i1 %361, label %409, label %362
362: ; preds = %354
%363 = and i64 %359, 9223372036854775806
%364 = load double, double* %6
%365 = insertelement <2 x double> poison, double %364, i64 0
%366 = shufflevector <2 x double> %365, <2 x double> poison, <2 x i32> zeroinitializer
%367 = insertelement <2 x double> poison, double %364, i64 0
%368 = shufflevector <2 x double> %367, <2 x double> poison, <2 x i32> zeroinitializer
%369 = load double, double* %5
%370 = insertelement <2 x double> poison, double %369, i64 0
%371 = shufflevector <2 x double> %370, <2 x double> poison, <2 x i32> zeroinitializer
%372 = insertelement <2 x double> poison, double %369, i64 0
%373 = shufflevector <2 x double> %372, <2 x double> poison, <2 x i32> zeroinitializer
%374 = load double, double* %6
%375 = insertelement <2 x double> poison, double %374, i64 0
%376 = shufflevector <2 x double> %375, <2 x double> poison, <2 x i32> zeroinitializer
%377 = insertelement <2 x double> poison, double %374, i64 0
%378 = shufflevector <2 x double> %377, <2 x double> poison, <2 x i32> zeroinitializer
%379 = load double, double* %5
%380 = insertelement <2 x double> poison, double %379, i64 0
%381 = shufflevector <2 x double> %380, <2 x double> poison, <2 x i32> zeroinitializer
%382 = insertelement <2 x double> poison, double %379, i64 0
%383 = shufflevector <2 x double> %382, <2 x double> poison, <2 x i32> zeroinitializer
br label %384
384: ; preds = %384, %362
%385 = phi i64 [ 0, %362 ], [ %406, %384 ]
%386 = phi i64 [ 0, %362 ], [ %407, %384 ]
%387 = add i64 %310, %385
%388 = getelementptr inbounds double, double* %15, i64 %387
%389 = bitcast double* %388 to <2 x double>*
store <2 x double> %366, <2 x double>* %389
%390 = getelementptr inbounds double, double* %388, i64 2
%391 = bitcast double* %390 to <2 x double>*
store <2 x double> %368, <2 x double>* %391
%392 = getelementptr inbounds double, double* %16, i64 %387
%393 = bitcast double* %392 to <2 x double>*
store <2 x double> %371, <2 x double>* %393
%394 = getelementptr inbounds double, double* %392, i64 2
%395 = bitcast double* %394 to <2 x double>*
store <2 x double> %373, <2 x double>* %395
%396 = or i64 %385, 4
%397 = add i64 %310, %396
%398 = getelementptr inbounds double, double* %15, i64 %397
%399 = bitcast double* %398 to <2 x double>*
store <2 x double> %376, <2 x double>* %399
%400 = getelementptr inbounds double, double* %398, i64 2
%401 = bitcast double* %400 to <2 x double>*
store <2 x double> %378, <2 x double>* %401
%402 = getelementptr inbounds double, double* %16, i64 %397
%403 = bitcast double* %402 to <2 x double>*
store <2 x double> %381, <2 x double>* %403
%404 = getelementptr inbounds double, double* %402, i64 2
%405 = bitcast double* %404 to <2 x double>*
store <2 x double> %383, <2 x double>* %405
%406 = add nuw i64 %385, 8
%407 = add i64 %386, 2
%408 = icmp eq i64 %407, %363
br i1 %408, label %409, label %384
409: ; preds = %384, %354
%410 = phi i64 [ 0, %354 ], [ %406, %384 ]
%411 = icmp eq i64 %360, 0
br i1 %411, label %432, label %412
412: ; preds = %409
%413 = add i64 %310, %410
%414 = load double, double* %6
%415 = insertelement <2 x double> poison, double %414, i64 0
%416 = shufflevector <2 x double> %415, <2 x double> poison, <2 x i32> zeroinitializer
%417 = insertelement <2 x double> poison, double %414, i64 0
%418 = shufflevector <2 x double> %417, <2 x double> poison, <2 x i32> zeroinitializer
%419 = getelementptr inbounds double, double* %15, i64 %413
%420 = bitcast double* %419 to <2 x double>*
store <2 x double> %416, <2 x double>* %420
%421 = getelementptr inbounds double, double* %419, i64 2
%422 = bitcast double* %421 to <2 x double>*
store <2 x double> %418, <2 x double>* %422
%423 = load double, double* %5
%424 = insertelement <2 x double> poison, double %423, i64 0
%425 = shufflevector <2 x double> %424, <2 x double> poison, <2 x i32> zeroinitializer
%426 = insertelement <2 x double> poison, double %423, i64 0
%427 = shufflevector <2 x double> %426, <2 x double> poison, <2 x i32> zeroinitializer
%428 = getelementptr inbounds double, double* %16, i64 %413
%429 = bitcast double* %428 to <2 x double>*
store <2 x double> %425, <2 x double>* %429
%430 = getelementptr inbounds double, double* %428, i64 2
%431 = bitcast double* %430 to <2 x double>*
store <2 x double> %427, <2 x double>* %431
br label %432
432: ; preds = %409, %412
%433 = icmp eq i64 %331, %355
br i1 %433, label %463, label %434
434: ; preds = %333, %328, %432
%435 = phi i64 [ %310, %333 ], [ %310, %328 ], [ %356, %432 ]
%436 = add i32 %562, 1
%437 = trunc i64 %435 to i32
%438 = sub i32 %436, %437
%439 = and i32 %438, 1
%440 = icmp eq i32 %439, 0
br i1 %440, label %447, label %441
441: ; preds = %434
%442 = load double, double* %6
%443 = getelementptr inbounds double, double* %15, i64 %435
store double %442, double* %443
%444 = load double, double* %5
%445 = getelementptr inbounds double, double* %16, i64 %435
store double %444, double* %445
%446 = add nsw i64 %435, 1
br label %447
447: ; preds = %441, %434
%448 = phi i64 [ %435, %434 ], [ %446, %441 ]
%449 = icmp eq i32 %562, %437
br i1 %449, label %463, label %450
450: ; preds = %447, %450
%451 = phi i64 [ %460, %450 ], [ %448, %447 ]
%452 = load double, double* %6
%453 = getelementptr inbounds double, double* %15, i64 %451
store double %452, double* %453
%454 = load double, double* %5
%455 = getelementptr inbounds double, double* %16, i64 %451
store double %454, double* %455
%456 = load double, double* %6
%457 = getelementptr inbounds double, double* %13, i64 %451
store double %456, double* %457
%458 = load double, double* %5
%459 = getelementptr inbounds double, double* %12, i64 %451
store double %458, double* %459
%460 = add nsw i64 %451, 2
%461 = trunc i64 %460 to i32
%462 = icmp eq i32 %325, %461
br i1 %462, label %463, label %450
463: ; preds = %447, %450, %432, %323
store i32 %562, i32* @jtridib_.k
br label %464
464: ; preds = %589, %463
%465 = phi double [ %496, %589 ], [ %324, %463 ]
%466 = phi i32 [ %498, %589 ], [ 5, %463 ]
%467 = phi i32 [ %592, %589 ], [ %562, %463 ]
%468 = phi double [ %501, %589 ], [ %324, %463 ]
%469 = phi i32 [ %502, %589 ], [ 5, %463 ]
%470 = load double, double* %5
%471 = icmp slt i32 %467, %305
br i1 %471, label %487, label %472
472: ; preds = %464
%473 = add nsw i32 %305, %467
%474 = add i32 %467, 1
br label %475
475: ; preds = %472, %483
%476 = phi i64 [ %322, %472 ], [ %484, %483 ]
%477 = trunc i64 %476 to i32
%478 = sub i32 %473, %477
%479 = sext i32 %478 to i64
%480 = getelementptr inbounds double, double* %16, i64 %479
%481 = load double, double* %480
%482 = fcmp ult double %470, %481
br i1 %482, label %487, label %483
483: ; preds = %475
%484 = add i64 %476, 1
%485 = trunc i64 %484 to i32
%486 = icmp eq i32 %474, %485
br i1 %486, label %487, label %475
487: ; preds = %483, %475, %464
%488 = phi double [ %470, %464 ], [ %470, %483 ], [ %481, %475 ]
%489 = sext i32 %467 to i64
%490 = getelementptr inbounds double, double* %15, i64 %489
%491 = load double, double* %490
%492 = fcmp ogt double %468, %491
%493 = select i1 %492, double %491, double %465
%494 = select i1 %492, double %491, double %468
br label %495
495: ; preds = %575, %580, %588, %579, %487
%496 = phi double [ %520, %579 ], [ %493, %487 ], [ %520, %588 ], [ %520, %580 ], [ %524, %575 ]
%497 = phi double [ %524, %579 ], [ %488, %487 ], [ %524, %588 ], [ %524, %580 ], [ %521, %575 ]
%498 = phi i32 [ %522, %579 ], [ %466, %487 ], [ %522, %588 ], [ %522, %580 ], [ %522, %575 ]
%499 = phi double [ %524, %579 ], [ %488, %487 ], [ %524, %588 ], [ %524, %580 ], [ %523, %575 ]
%500 = phi i32 [ %525, %579 ], [ %467, %487 ], [ %525, %588 ], [ %525, %580 ], [ %525, %575 ]
%501 = phi double [ %526, %579 ], [ %494, %487 ], [ %526, %588 ], [ %526, %580 ], [ %524, %575 ]
%502 = phi i32 [ %527, %579 ], [ %469, %487 ], [ %527, %588 ], [ %527, %580 ], [ %527, %575 ]
%503 = fadd double %499, %501
%504 = fmul double %503, 5.000000e-01
%505 = fsub double %501, %499
%506 = fcmp oge double %499, 0.000000e+00
%507 = fneg double %499
%508 = select i1 %506, double %499, double %507
%509 = fcmp oge double %501, 0.000000e+00
%510 = fneg double %501
%511 = select i1 %509, double %501, double %510
%512 = fadd double %508, %511
%513 = load double, double* %1
%514 = fcmp ult double %513, 0.000000e+00
%515 = fneg double %513
%516 = select i1 %514, double %515, double %513
%517 = tail call double @llvm.fmuladd.f64(double %512, double 2.500000e-15, double %516)
%518 = fcmp ugt double %505, %517
br i1 %518, label %519, label %589
519: ; preds = %296, %495
%520 = phi double [ %496, %495 ], [ %298, %296 ]
%521 = phi double [ %497, %495 ], [ %299, %296 ]
%522 = phi i32 [ %498, %495 ], [ %306, %296 ]
%523 = phi double [ %499, %495 ], [ %301, %296 ]
%524 = phi double [ %504, %495 ], [ %302, %296 ]
%525 = phi i32 [ %500, %495 ], [ %303, %296 ]
%526 = phi double [ %501, %495 ], [ %304, %296 ]
%527 = phi i32 [ %502, %495 ], [ %306, %296 ]
br i1 %288, label %561, label %528
528: ; preds = %519, %549
%529 = phi i64 [ %558, %549 ], [ %290, %519 ]
%530 = phi double [ %554, %549 ], [ 1.000000e+00, %519 ]
%531 = phi i32 [ %557, %549 ], [ %287, %519 ]
%532 = fcmp une double %530, 0.000000e+00
br i1 %532, label %543, label %533
533: ; preds = %528
%534 = getelementptr inbounds double, double* %18, i64 %529
%535 = load double, double* %534
%536 = fcmp oge double %535, 0.000000e+00
%537 = fneg double %535
%538 = select i1 %536, double %535, double %537
%539 = fdiv double %538, 1.250000e-15
%540 = getelementptr inbounds double, double* %17, i64 %529
%541 = load double, double* %540
%542 = fcmp oeq double %541, 0.000000e+00
br i1 %542, label %547, label %549
543: ; preds = %528
%544 = getelementptr inbounds double, double* %17, i64 %529
%545 = load double, double* %544
%546 = fdiv double %545, %530
br label %547
547: ; preds = %533, %543
%548 = phi double [ %546, %543 ], [ 0.000000e+00, %533 ]
br label %549
549: ; preds = %547, %533
%550 = phi double [ %539, %533 ], [ %548, %547 ]
%551 = getelementptr inbounds double, double* %19, i64 %529
%552 = load double, double* %551
%553 = fsub double %552, %524
%554 = fsub double %553, %550
%555 = fcmp olt double %554, 0.000000e+00
%556 = zext i1 %555 to i32
%557 = add nsw i32 %531, %556
%558 = add nsw i64 %529, 1
%559 = trunc i64 %558 to i32
%560 = icmp eq i32 %291, %559
br i1 %560, label %561, label %528
561: ; preds = %549, %519
%562 = phi i32 [ %287, %519 ], [ %557, %549 ]
switch i32 %527, label %575 [
i32 1, label %563
i32 2, label %566
i32 3, label %570
i32 4, label %573
]
563: ; preds = %561
%564 = sub nsw i32 %562, %300
%565 = icmp slt i32 %564, 0
br i1 %565, label %112, label %135
566: ; preds = %561
%567 = load i32, i32* @jtridib_.m22
%568 = sub nsw i32 %562, %567
%569 = icmp slt i32 %568, 0
br i1 %569, label %112, label %155
570: ; preds = %561
%571 = add nsw i32 %562, 1
%572 = load double, double* %6
br label %296
573: ; preds = %561
store i32 %562, i32* @jtridib_.m2
%574 = icmp sgt i32 %305, %562
br i1 %574, label %865, label %323
575: ; preds = %561
%576 = icmp slt i32 %562, %525
br i1 %576, label %577, label %495
577: ; preds = %575
%578 = icmp slt i32 %562, %305
br i1 %578, label %579, label %580
579: ; preds = %577
store double %524, double* %321
br label %495
580: ; preds = %577
%581 = add nsw i32 %562, 1
%582 = sext i32 %581 to i64
%583 = getelementptr inbounds double, double* %16, i64 %582
store double %524, double* %583
%584 = sext i32 %562 to i64
%585 = getelementptr inbounds double, double* %15, i64 %584
%586 = load double, double* %585
%587 = fcmp ogt double %586, %524
br i1 %587, label %588, label %495
588: ; preds = %580
store double %524, double* %585
br label %495
589: ; preds = %495
%590 = sext i32 %500 to i64
%591 = getelementptr inbounds double, double* %15, i64 %590
store double %504, double* %591
%592 = add nsw i32 %500, -1
store i32 %592, i32* @jtridib_.k
%593 = icmp sgt i32 %500, %305
br i1 %593, label %464, label %594
594: ; preds = %589
%595 = load i32, i32* @jtridib_.r
%596 = load i32, i32* @jtridib_.m2
br label %597
597: ; preds = %594, %254
%598 = phi i32 [ %268, %594 ], [ %170, %254 ]
%599 = phi i32 [ %279, %594 ], [ %187, %254 ]
%600 = phi i32 [ %297, %594 ], [ %187, %254 ]
%601 = phi i32 [ %596, %594 ], [ %187, %254 ]
%602 = phi i32 [ %595, %594 ], [ %182, %254 ]
%603 = phi double [ %271, %594 ], [ %173, %254 ]
%604 = phi double [ %272, %594 ], [ %174, %254 ]
%605 = phi double [ %281, %594 ], [ %173, %254 ]
%606 = phi double [ %282, %594 ], [ %174, %254 ]
%607 = phi i32 [ %284, %594 ], [ %186, %254 ]
%608 = add i32 %602, 1
%609 = add i32 %608, %601
%610 = sub i32 %609, %600
store i32 %610, i32* @jtridib_.r
store i32 %600, i32* @jtridib_.k
%611 = icmp slt i32 %610, 1
br i1 %611, label %865, label %612
612: ; preds = %597
%613 = add i32 %602, %601
%614 = add i32 %613, 2
%615 = sub i32 %614, %600
%616 = zext i32 %615 to i64
%617 = add i32 %602, 2
%618 = getelementptr double, double* %9, i64 -1
%619 = getelementptr double, double* %9, i64 -1
%620 = getelementptr i32, i32* %10, i64 -1
%621 = getelementptr i32, i32* %10, i64 -1
%622 = getelementptr double, double* %9, i64 -1
%623 = getelementptr double, double* %9, i64 -1
%624 = getelementptr i32, i32* %10, i64 -1
%625 = getelementptr i32, i32* %10, i64 -1
%626 = add i32 %602, 1
%627 = getelementptr inbounds double, double* %9, i64 -2
%628 = getelementptr inbounds double, double* %9, i64 -2
%629 = getelementptr inbounds i32, i32* %10, i64 -2
%630 = getelementptr inbounds i32, i32* %10, i64 -2
%631 = getelementptr inbounds double, double* %9, i64 -2
%632 = getelementptr inbounds double, double* %9, i64 -2
%633 = getelementptr inbounds i32, i32* %10, i64 -2
%634 = getelementptr inbounds i32, i32* %10, i64 -2
%635 = getelementptr inbounds double, double* %9, i64 -2
%636 = getelementptr inbounds double, double* %9, i64 -2
%637 = getelementptr inbounds i32, i32* %10, i64 -2
%638 = getelementptr inbounds i32, i32* %10, i64 -2
br label %639
639: ; preds = %612, %857
%640 = phi i32 [ 0, %612 ], [ %862, %857 ]
%641 = phi i64 [ 1, %612 ], [ %860, %857 ]
%642 = phi i32 [ 1, %612 ], [ %859, %857 ]
%643 = phi i32 [ %600, %612 ], [ %858, %857 ]
%644 = add i32 %617, %640
%645 = add i32 %608, %640
%646 = add i32 %617, %640
%647 = add i32 %608, %640
%648 = icmp slt i32 %602, %642
br i1 %648, label %649, label %651
649: ; preds = %639
%650 = sext i32 %643 to i64
br label %848
651: ; preds = %639
%652 = icmp sgt i32 %643, %601
%653 = trunc i64 %641 to i32
br i1 %652, label %863, label %654
654: ; preds = %651
%655 = sext i32 %643 to i64
%656 = getelementptr inbounds double, double* %15, i64 %655
%657 = load double, double* %656
%658 = getelementptr inbounds double, double* %21, i64 %641
%659 = load double, double* %658
%660 = fcmp ult double %657, %659
br i1 %660, label %661, label %855
661: ; preds = %654
%662 = add nsw i32 %602, %653
%663 = zext i32 %642 to i64
%664 = sub i32 %602, %642
%665 = zext i32 %664 to i64
%666 = add nuw nsw i64 %665, 1
%667 = icmp eq i32 %664, 0
br i1 %667, label %798, label %668
668: ; preds = %661
%669 = sub i32 %602, %642
%670 = sub i32 %646, %642
%671 = sub i32 %670, %669
%672 = icmp sgt i32 %671, %670
%673 = sub i32 %647, %642
%674 = sub i32 %673, %669
%675 = icmp sgt i32 %674, %673
%676 = sext i32 %670 to i64
%677 = getelementptr double, double* %618, i64 %676
%678 = zext i32 %669 to i64
%679 = sub nsw i64 0, %678
%680 = getelementptr double, double* %677, i64 %679
%681 = icmp ugt double* %680, %677
%682 = sext i32 %673 to i64
%683 = getelementptr double, double* %619, i64 %682
%684 = zext i32 %669 to i64
%685 = sub nsw i64 0, %684
%686 = getelementptr double, double* %683, i64 %685
%687 = icmp ugt double* %686, %683
%688 = getelementptr i32, i32* %620, i64 %676
%689 = zext i32 %669 to i64
%690 = sub nsw i64 0, %689
%691 = getelementptr i32, i32* %688, i64 %690
%692 = icmp ugt i32* %691, %688
%693 = getelementptr i32, i32* %621, i64 %682
%694 = zext i32 %669 to i64
%695 = sub nsw i64 0, %694
%696 = getelementptr i32, i32* %693, i64 %695
%697 = icmp ugt i32* %696, %693
%698 = or i1 %672, %675
%699 = or i1 %698, %681
%700 = or i1 %699, %687
%701 = or i1 %700, %692
%702 = or i1 %701, %697
br i1 %702, label %798, label %703
703: ; preds = %668
%704 = sub i32 %644, %642
%705 = sext i32 %704 to i64
%706 = sub i32 %602, %642
%707 = zext i32 %706 to i64
%708 = sub nsw i64 %705, %707
%709 = getelementptr double, double* %622, i64 %708
%710 = getelementptr double, double* %9, i64 %705
%711 = sub i32 %645, %642
%712 = sext i32 %711 to i64
%713 = sub nsw i64 %712, %707
%714 = getelementptr double, double* %623, i64 %713
%715 = getelementptr double, double* %9, i64 %712
%716 = getelementptr i32, i32* %624, i64 %708
%717 = getelementptr i32, i32* %10, i64 %705
%718 = getelementptr i32, i32* %625, i64 %713
%719 = getelementptr i32, i32* %10, i64 %712
%720 = icmp ult double* %709, %715
%721 = icmp ult double* %714, %710
%722 = and i1 %720, %721
%723 = icmp ult i32* %716, %719
%724 = icmp ult i32* %718, %717
%725 = and i1 %723, %724
%726 = or i1 %722, %725
br i1 %726, label %798, label %727
727: ; preds = %703
%728 = and i64 %666, 8589934590
%729 = add nuw nsw i64 %728, %663
%730 = add nsw i64 %728, -2
%731 = lshr exact i64 %730, 1
%732 = add nuw i64 %731, 1
%733 = and i64 %732, 1
%734 = icmp eq i64 %730, 0
br i1 %734, label %776, label %735
735: ; preds = %727
%736 = and i64 %732, -2
br label %737
737: ; preds = %737, %735
%738 = phi i64 [ 0, %735 ], [ %773, %737 ]
%739 = phi i64 [ 0, %735 ], [ %774, %737 ]
%740 = trunc i64 %738 to i32
%741 = add i32 %642, %740
%742 = sub i32 %662, %741
%743 = sext i32 %742 to i64
%744 = getelementptr inbounds double, double* %627, i64 %743
%745 = bitcast double* %744 to <2 x double>*
%746 = load <2 x double>, <2 x double>* %745
%747 = add nsw i32 %742, 1
%748 = sext i32 %747 to i64
%749 = getelementptr inbounds double, double* %628, i64 %748
%750 = bitcast double* %749 to <2 x double>*
store <2 x double> %746, <2 x double>* %750
%751 = getelementptr inbounds i32, i32* %629, i64 %743
%752 = bitcast i32* %751 to <2 x i32>*
%753 = load <2 x i32>, <2 x i32>* %752
%754 = getelementptr inbounds i32, i32* %630, i64 %748
%755 = bitcast i32* %754 to <2 x i32>*
store <2 x i32> %753, <2 x i32>* %755
%756 = trunc i64 %738 to i32
%757 = or i32 %756, 2
%758 = add i32 %642, %757
%759 = sub i32 %662, %758
%760 = sext i32 %759 to i64
%761 = getelementptr inbounds double, double* %631, i64 %760
%762 = bitcast double* %761 to <2 x double>*
%763 = load <2 x double>, <2 x double>* %762
%764 = add nsw i32 %759, 1
%765 = sext i32 %764 to i64
%766 = getelementptr inbounds double, double* %632, i64 %765
%767 = bitcast double* %766 to <2 x double>*
store <2 x double> %763, <2 x double>* %767
%768 = getelementptr inbounds i32, i32* %633, i64 %760
%769 = bitcast i32* %768 to <2 x i32>*
%770 = load <2 x i32>, <2 x i32>* %769
%771 = getelementptr inbounds i32, i32* %634, i64 %765
%772 = bitcast i32* %771 to <2 x i32>*
store <2 x i32> %770, <2 x i32>* %772
%773 = add nuw i64 %738, 4
%774 = add nuw i64 %739, 2
%775 = icmp eq i64 %774, %736
br i1 %775, label %776, label %737
776: ; preds = %737, %727
%777 = phi i64 [ 0, %727 ], [ %773, %737 ]
%778 = icmp eq i64 %733, 0
br i1 %778, label %796, label %779
779: ; preds = %776
%780 = trunc i64 %777 to i32
%781 = add i32 %642, %780
%782 = sub i32 %662, %781
%783 = sext i32 %782 to i64
%784 = getelementptr inbounds double, double* %635, i64 %783
%785 = bitcast double* %784 to <2 x double>*
%786 = load <2 x double>, <2 x double>* %785
%787 = add nsw i32 %782, 1
%788 = sext i32 %787 to i64
%789 = getelementptr inbounds double, double* %636, i64 %788
%790 = bitcast double* %789 to <2 x double>*
store <2 x double> %786, <2 x double>* %790
%791 = getelementptr inbounds i32, i32* %637, i64 %783
%792 = bitcast i32* %791 to <2 x i32>*
%793 = load <2 x i32>, <2 x i32>* %792
%794 = getelementptr inbounds i32, i32* %638, i64 %788
%795 = bitcast i32* %794 to <2 x i32>*
store <2 x i32> %793, <2 x i32>* %795
br label %796
796: ; preds = %776, %779
%797 = icmp eq i64 %666, %728
br i1 %797, label %848, label %798
798: ; preds = %703, %668, %661, %796
%799 = phi i64 [ %663, %703 ], [ %663, %668 ], [ %663, %661 ], [ %729, %796 ]
%800 = trunc i64 %799 to i32
%801 = sub i32 %626, %800
%802 = and i32 %801, 1
%803 = icmp eq i32 %802, 0
br i1 %803, label %817, label %804
804: ; preds = %798
%805 = trunc i64 %799 to i32
%806 = sub i32 %662, %805
%807 = sext i32 %806 to i64
%808 = getelementptr inbounds double, double* %21, i64 %807
%809 = load double, double* %808
%810 = add nsw i32 %806, 1
%811 = sext i32 %810 to i64
%812 = getelementptr inbounds double, double* %21, i64 %811
store double %809, double* %812
%813 = getelementptr inbounds i32, i32* %20, i64 %807
%814 = load i32, i32* %813
%815 = getelementptr inbounds i32, i32* %20, i64 %811
store i32 %814, i32* %815
%816 = add nsw i64 %799, 1
br label %817
817: ; preds = %804, %798
%818 = phi i64 [ %799, %798 ], [ %816, %804 ]
%819 = icmp eq i32 %602, %800
br i1 %819, label %848, label %820
820: ; preds = %817, %820
%821 = phi i64 [ %845, %820 ], [ %818, %817 ]
%822 = trunc i64 %821 to i32
%823 = sub i32 %662, %822
%824 = sext i32 %823 to i64
%825 = getelementptr inbounds double, double* %21, i64 %824
%826 = load double, double* %825
%827 = add nsw i32 %823, 1
%828 = sext i32 %827 to i64
%829 = getelementptr inbounds double, double* %21, i64 %828
store double %826, double* %829
%830 = getelementptr inbounds i32, i32* %20, i64 %824
%831 = load i32, i32* %830
%832 = getelementptr inbounds i32, i32* %20, i64 %828
store i32 %831, i32* %832
%833 = trunc i64 %821 to i32
%834 = xor i32 %833, -1
%835 = add i32 %662, %834
%836 = sext i32 %835 to i64
%837 = getelementptr inbounds double, double* %21, i64 %836
%838 = load double, double* %837
%839 = sub i32 %662, %833
%840 = sext i32 %839 to i64
%841 = getelementptr inbounds double, double* %21, i64 %840
store double %838, double* %841
%842 = getelementptr inbounds i32, i32* %20, i64 %836
%843 = load i32, i32* %842
%844 = getelementptr inbounds i32, i32* %20, i64 %840
store i32 %843, i32* %844
%845 = add nuw nsw i64 %821, 2
%846 = trunc i64 %845 to i32
%847 = icmp eq i32 %608, %846
br i1 %847, label %848, label %820
848: ; preds = %817, %820, %796, %649
%849 = phi i64 [ %650, %649 ], [ %655, %796 ], [ %655, %820 ], [ %655, %817 ]
%850 = getelementptr inbounds double, double* %15, i64 %849
%851 = load double, double* %850
%852 = getelementptr inbounds double, double* %21, i64 %641
store double %851, double* %852
%853 = getelementptr inbounds i32, i32* %20, i64 %641
store i32 %607, i32* %853
%854 = add nsw i32 %643, 1
store i32 %854, i32* @jtridib_.k
br label %857
855: ; preds = %654
%856 = add nsw i32 %642, 1
br label %857
857: ; preds = %848, %855
%858 = phi i32 [ %854, %848 ], [ %643, %855 ]
%859 = phi i32 [ %642, %848 ], [ %856, %855 ]
%860 = add nuw nsw i64 %641, 1
%861 = icmp eq i64 %860, %616
%862 = add i32 %640, 1
br i1 %861, label %863, label %639
863: ; preds = %857, %651
%864 = load i32, i32* %0
br label %865
865: ; preds = %573, %597, %863, %249
%866 = phi i32 [ %170, %249 ], [ %598, %597 ], [ %864, %863 ], [ %268, %573 ]
%867 = phi i32 [ %171, %249 ], [ %598, %597 ], [ %864, %863 ], [ %269, %573 ]
%868 = phi i32 [ %187, %249 ], [ %599, %597 ], [ %599, %863 ], [ %279, %573 ]
%869 = phi i32 [ %172, %249 ], [ %600, %597 ], [ %600, %863 ], [ %297, %573 ]
%870 = phi double [ %173, %249 ], [ %603, %597 ], [ %603, %863 ], [ %271, %573 ]
%871 = phi double [ %174, %249 ], [ %604, %597 ], [ %604, %863 ], [ %272, %573 ]
%872 = phi i32 [ %175, %249 ], [ %600, %597 ], [ %600, %863 ], [ %300, %573 ]
%873 = phi i32 [ %176, %249 ], [ %600, %597 ], [ %600, %863 ], [ %305, %573 ]
%874 = phi double [ %173, %249 ], [ %605, %597 ], [ %605, %863 ], [ %281, %573 ]
%875 = phi double [ %174, %249 ], [ %606, %597 ], [ %606, %863 ], [ %282, %573 ]
%876 = phi i32 [ %186, %249 ], [ %607, %597 ], [ %607, %863 ], [ %284, %573 ]
%877 = icmp slt i32 %868, %867
br i1 %877, label %878, label %883
878: ; preds = %865
%879 = load i32, i32* @jtridib_.r
br label %169
880: ; preds = %112
%881 = mul nsw i32 %128, 3
%882 = add nsw i32 %881, %123
store i32 %882, i32* %11
br label %883
883: ; preds = %865, %169, %880
%884 = phi double [ %870, %865 ], [ %173, %169 ], [ %116, %880 ]
%885 = phi double [ %871, %865 ], [ %174, %169 ], [ %117, %880 ]
store double %885, double* %5
store double %884, double* %6
ret i32 0
}