int jac_chain_nm2(const double **arg, double **res, int *iw, double *w,
                  int mem) {
  double a0 = arg[0] ? arg[0][6] : 0;
  double a1 = arg[0] ? arg[0][3] : 0;
  a0 = (a0 - a1);
  if (res[0] != 0)
    res[0][0] = a0;
  a0 = arg[0] ? arg[0][7] : 0;
  a1 = arg[0] ? arg[0][4] : 0;
  a0 = (a0 - a1);
  if (res[0] != 0)
    res[0][1] = a0;
  a0 = arg[0] ? arg[0][8] : 0;
  a1 = arg[0] ? arg[0][5] : 0;
  a0 = (a0 - a1);
  if (res[0] != 0)
    res[0][2] = a0;
  a0 = arg[0] ? arg[0][9] : 0;
  a1 = arg[1] ? arg[1][0] : 0;
  a0 = (a0 - a1);
  if (res[0] != 0)
    res[0][3] = a0;
  a0 = arg[0] ? arg[0][10] : 0;
  a1 = arg[1] ? arg[1][1] : 0;
  a0 = (a0 - a1);
  if (res[0] != 0)
    res[0][4] = a0;
  a0 = arg[0] ? arg[0][11] : 0;
  a1 = arg[1] ? arg[1][2] : 0;
  a0 = (a0 - a1);
  if (res[0] != 0)
    res[0][5] = a0;
  a0 = 0.;
  if (res[1] != 0)
    res[1][0] = a0;
  if (res[1] != 0)
    res[1][1] = a0;
  if (res[1] != 0)
    res[1][2] = a0;
  if (res[1] != 0)
    res[1][3] = a0;
  if (res[1] != 0)
    res[1][4] = a0;
  if (res[1] != 0)
    res[1][5] = a0;
  if (res[1] != 0)
    res[1][6] = a0;
  if (res[1] != 0)
    res[1][7] = a0;
  if (res[1] != 0)
    res[1][8] = a0;
  if (res[1] != 0)
    res[1][9] = a0;
  if (res[1] != 0)
    res[1][10] = a0;
  if (res[1] != 0)
    res[1][11] = a0;
  if (res[1] != 0)
    res[1][12] = a0;
  if (res[1] != 0)
    res[1][13] = a0;
  if (res[1] != 0)
    res[1][14] = a0;
  if (res[1] != 0)
    res[1][15] = a0;
  if (res[1] != 0)
    res[1][16] = a0;
  if (res[1] != 0)
    res[1][17] = a0;
  a1 = -1.;
  if (res[1] != 0)
    res[1][18] = a1;
  if (res[1] != 0)
    res[1][19] = a0;
  if (res[1] != 0)
    res[1][20] = a0;
  if (res[1] != 0)
    res[1][21] = a0;
  if (res[1] != 0)
    res[1][22] = a0;
  if (res[1] != 0)
    res[1][23] = a0;
  if (res[1] != 0)
    res[1][24] = a0;
  if (res[1] != 0)
    res[1][25] = a1;
  if (res[1] != 0)
    res[1][26] = a0;
  if (res[1] != 0)
    res[1][27] = a0;
  if (res[1] != 0)
    res[1][28] = a0;
  if (res[1] != 0)
    res[1][29] = a0;
  if (res[1] != 0)
    res[1][30] = a0;
  if (res[1] != 0)
    res[1][31] = a0;
  if (res[1] != 0)
    res[1][32] = a1;
  if (res[1] != 0)
    res[1][33] = a0;
  if (res[1] != 0)
    res[1][34] = a0;
  if (res[1] != 0)
    res[1][35] = a0;
  a1 = 1.;
  if (res[1] != 0)
    res[1][36] = a1;
  if (res[1] != 0)
    res[1][37] = a0;
  if (res[1] != 0)
    res[1][38] = a0;
  if (res[1] != 0)
    res[1][39] = a0;
  if (res[1] != 0)
    res[1][40] = a0;
  if (res[1] != 0)
    res[1][41] = a0;
  if (res[1] != 0)
    res[1][42] = a0;
  if (res[1] != 0)
    res[1][43] = a1;
  if (res[1] != 0)
    res[1][44] = a0;
  if (res[1] != 0)
    res[1][45] = a0;
  if (res[1] != 0)
    res[1][46] = a0;
  if (res[1] != 0)
    res[1][47] = a0;
  if (res[1] != 0)
    res[1][48] = a0;
  if (res[1] != 0)
    res[1][49] = a0;
  if (res[1] != 0)
    res[1][50] = a1;
  if (res[1] != 0)
    res[1][51] = a0;
  if (res[1] != 0)
    res[1][52] = a0;
  if (res[1] != 0)
    res[1][53] = a0;
  if (res[1] != 0)
    res[1][54] = a0;
  if (res[1] != 0)
    res[1][55] = a0;
  if (res[1] != 0)
    res[1][56] = a0;
  if (res[1] != 0)
    res[1][57] = a1;
  if (res[1] != 0)
    res[1][58] = a0;
  if (res[1] != 0)
    res[1][59] = a0;
  if (res[1] != 0)
    res[1][60] = a0;
  if (res[1] != 0)
    res[1][61] = a0;
  if (res[1] != 0)
    res[1][62] = a0;
  if (res[1] != 0)
    res[1][63] = a0;
  if (res[1] != 0)
    res[1][64] = a1;
  if (res[1] != 0)
    res[1][65] = a0;
  if (res[1] != 0)
    res[1][66] = a0;
  if (res[1] != 0)
    res[1][67] = a0;
  if (res[1] != 0)
    res[1][68] = a0;
  if (res[1] != 0)
    res[1][69] = a0;
  if (res[1] != 0)
    res[1][70] = a0;
  if (res[1] != 0)
    res[1][71] = a1;
  return 0;
}


x86 assembly (clang, -O0):
<jac_chain_nm2>:
push   %rbp
mov    %rsp,%rbp
sub    $0x18,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8d,-0x24(%rbp)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     1140 <jac_chain_nm2+0x40>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
jmp    114d <jac_chain_nm2+0x4d>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x40(%rbp)
jmp    114d <jac_chain_nm2+0x4d>
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     117b <jac_chain_nm2+0x7b>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
jmp    1188 <jac_chain_nm2+0x88>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x48(%rbp)
jmp    1188 <jac_chain_nm2+0x88>
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x30(%rbp),%xmm0
subsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     11bf <jac_chain_nm2+0xbf>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     11e3 <jac_chain_nm2+0xe3>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    11f0 <jac_chain_nm2+0xf0>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    11f0 <jac_chain_nm2+0xf0>
movsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     121e <jac_chain_nm2+0x11e>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
jmp    122b <jac_chain_nm2+0x12b>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x58(%rbp)
jmp    122b <jac_chain_nm2+0x12b>
movsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x30(%rbp),%xmm0
subsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     1263 <jac_chain_nm2+0x163>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     1287 <jac_chain_nm2+0x187>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
jmp    1294 <jac_chain_nm2+0x194>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x60(%rbp)
jmp    1294 <jac_chain_nm2+0x194>
movsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     12c2 <jac_chain_nm2+0x1c2>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
jmp    12cf <jac_chain_nm2+0x1cf>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x68(%rbp)
jmp    12cf <jac_chain_nm2+0x1cf>
movsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x30(%rbp),%xmm0
subsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     1307 <jac_chain_nm2+0x207>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     132b <jac_chain_nm2+0x22b>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
jmp    1338 <jac_chain_nm2+0x238>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x70(%rbp)
jmp    1338 <jac_chain_nm2+0x238>
movsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x8(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1367 <jac_chain_nm2+0x267>
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
jmp    1374 <jac_chain_nm2+0x274>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x78(%rbp)
jmp    1374 <jac_chain_nm2+0x274>
movsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x30(%rbp),%xmm0
subsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     13ac <jac_chain_nm2+0x2ac>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     13d0 <jac_chain_nm2+0x2d0>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
jmp    13dd <jac_chain_nm2+0x2dd>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x80(%rbp)
jmp    13dd <jac_chain_nm2+0x2dd>
movsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x8(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1410 <jac_chain_nm2+0x310>
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
jmp    1420 <jac_chain_nm2+0x320>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
jmp    1420 <jac_chain_nm2+0x320>
movsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x38(%rbp)
movsd  -0x30(%rbp),%xmm0
subsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     145b <jac_chain_nm2+0x35b>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x20(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     1482 <jac_chain_nm2+0x382>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
jmp    1492 <jac_chain_nm2+0x392>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
jmp    1492 <jac_chain_nm2+0x392>
movsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x30(%rbp)
mov    -0x8(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     14c8 <jac_chain_nm2+0x3c8>
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
jmp    14d8 <jac_chain_nm2+0x3d8>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
jmp    14d8 <jac_chain_nm2+0x3d8>
movsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x38(%rbp)
movsd  -0x30(%rbp),%xmm0
subsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     1513 <jac_chain_nm2+0x413>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x28(%rax)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     153b <jac_chain_nm2+0x43b>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     155c <jac_chain_nm2+0x45c>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     157d <jac_chain_nm2+0x47d>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     159e <jac_chain_nm2+0x49e>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     15bf <jac_chain_nm2+0x4bf>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x20(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     15e0 <jac_chain_nm2+0x4e0>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x28(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1601 <jac_chain_nm2+0x501>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x30(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1622 <jac_chain_nm2+0x522>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x38(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1643 <jac_chain_nm2+0x543>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x40(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1664 <jac_chain_nm2+0x564>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x48(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1685 <jac_chain_nm2+0x585>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x50(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     16a6 <jac_chain_nm2+0x5a6>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x58(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     16c7 <jac_chain_nm2+0x5c7>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x60(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     16e8 <jac_chain_nm2+0x5e8>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x68(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1709 <jac_chain_nm2+0x609>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x70(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     172a <jac_chain_nm2+0x62a>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x78(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     174e <jac_chain_nm2+0x64e>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x80(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1772 <jac_chain_nm2+0x672>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x88(%rax)
movsd  0x886(%rip),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     17a3 <jac_chain_nm2+0x6a3>
movsd  -0x38(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x90(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     17c7 <jac_chain_nm2+0x6c7>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x98(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     17eb <jac_chain_nm2+0x6eb>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xa0(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     180f <jac_chain_nm2+0x70f>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xa8(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1833 <jac_chain_nm2+0x733>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xb0(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1857 <jac_chain_nm2+0x757>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xb8(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     187b <jac_chain_nm2+0x77b>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xc0(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     189f <jac_chain_nm2+0x79f>
movsd  -0x38(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xc8(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     18c3 <jac_chain_nm2+0x7c3>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xd0(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     18e7 <jac_chain_nm2+0x7e7>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xd8(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     190b <jac_chain_nm2+0x80b>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xe0(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     192f <jac_chain_nm2+0x82f>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xe8(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1953 <jac_chain_nm2+0x853>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xf0(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1977 <jac_chain_nm2+0x877>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xf8(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     199b <jac_chain_nm2+0x89b>
movsd  -0x38(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x100(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     19bf <jac_chain_nm2+0x8bf>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x108(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     19e3 <jac_chain_nm2+0x8e3>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x110(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1a07 <jac_chain_nm2+0x907>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x118(%rax)
movsd  0x5f9(%rip),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1a38 <jac_chain_nm2+0x938>
movsd  -0x38(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x120(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1a5c <jac_chain_nm2+0x95c>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x128(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1a80 <jac_chain_nm2+0x980>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x130(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1aa4 <jac_chain_nm2+0x9a4>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x138(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1ac8 <jac_chain_nm2+0x9c8>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x140(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1aec <jac_chain_nm2+0x9ec>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x148(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1b10 <jac_chain_nm2+0xa10>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x150(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1b34 <jac_chain_nm2+0xa34>
movsd  -0x38(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x158(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1b58 <jac_chain_nm2+0xa58>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x160(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1b7c <jac_chain_nm2+0xa7c>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x168(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1ba0 <jac_chain_nm2+0xaa0>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x170(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1bc4 <jac_chain_nm2+0xac4>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x178(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1be8 <jac_chain_nm2+0xae8>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x180(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1c0c <jac_chain_nm2+0xb0c>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x188(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1c30 <jac_chain_nm2+0xb30>
movsd  -0x38(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x190(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1c54 <jac_chain_nm2+0xb54>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x198(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1c78 <jac_chain_nm2+0xb78>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x1a0(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1c9c <jac_chain_nm2+0xb9c>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x1a8(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1cc0 <jac_chain_nm2+0xbc0>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x1b0(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1ce4 <jac_chain_nm2+0xbe4>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x1b8(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1d08 <jac_chain_nm2+0xc08>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x1c0(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1d2c <jac_chain_nm2+0xc2c>
movsd  -0x38(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x1c8(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1d50 <jac_chain_nm2+0xc50>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x1d0(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1d74 <jac_chain_nm2+0xc74>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x1d8(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1d98 <jac_chain_nm2+0xc98>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x1e0(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1dbc <jac_chain_nm2+0xcbc>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x1e8(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1de0 <jac_chain_nm2+0xce0>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x1f0(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1e04 <jac_chain_nm2+0xd04>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x1f8(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1e28 <jac_chain_nm2+0xd28>
movsd  -0x38(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x200(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1e4c <jac_chain_nm2+0xd4c>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x208(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1e70 <jac_chain_nm2+0xd70>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x210(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1e94 <jac_chain_nm2+0xd94>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x218(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1eb8 <jac_chain_nm2+0xdb8>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x220(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1edc <jac_chain_nm2+0xddc>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x228(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1f00 <jac_chain_nm2+0xe00>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x230(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1f24 <jac_chain_nm2+0xe24>
movsd  -0x38(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x238(%rax)
xor    %eax,%eax
add    $0x18,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<jac_chain_nm2>:
mov    (%rdi),%rcx
test   %rcx,%rcx
je     1114 <jac_chain_nm2+0x14>
movsd  0x18(%rcx),%xmm1
movsd  0x30(%rcx),%xmm0
jmp    111c <jac_chain_nm2+0x1c>
xorpd  %xmm0,%xmm0
xorpd  %xmm1,%xmm1
mov    (%rsi),%rax
test   %rax,%rax
je     112c <jac_chain_nm2+0x2c>
subsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
test   %rcx,%rcx
je     1340 <jac_chain_nm2+0x240>
movsd  0x20(%rcx),%xmm1
movsd  0x38(%rcx),%xmm0
test   %rax,%rax
je     114d <jac_chain_nm2+0x4d>
subsd  %xmm1,%xmm0
movsd  %xmm0,0x8(%rax)
test   %rcx,%rcx
je     1356 <jac_chain_nm2+0x256>
movsd  0x28(%rcx),%xmm1
movsd  0x40(%rcx),%xmm0
test   %rax,%rax
je     116e <jac_chain_nm2+0x6e>
subsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rax)
xorpd  %xmm0,%xmm0
xorpd  %xmm1,%xmm1
test   %rcx,%rcx
je     1180 <jac_chain_nm2+0x80>
movsd  0x48(%rcx),%xmm1
mov    0x8(%rdi),%rdx
test   %rdx,%rdx
je     118d <jac_chain_nm2+0x8d>
movsd  (%rdx),%xmm0
test   %rax,%rax
je     119b <jac_chain_nm2+0x9b>
subsd  %xmm0,%xmm1
movsd  %xmm1,0x18(%rax)
xorpd  %xmm0,%xmm0
xorpd  %xmm1,%xmm1
test   %rcx,%rcx
je     11ad <jac_chain_nm2+0xad>
movsd  0x50(%rcx),%xmm1
test   %rdx,%rdx
je     11b7 <jac_chain_nm2+0xb7>
movsd  0x8(%rdx),%xmm0
test   %rax,%rax
je     11c5 <jac_chain_nm2+0xc5>
subsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rax)
xorpd  %xmm0,%xmm0
xorpd  %xmm1,%xmm1
test   %rcx,%rcx
je     11d7 <jac_chain_nm2+0xd7>
movsd  0x58(%rcx),%xmm1
test   %rdx,%rdx
je     11e1 <jac_chain_nm2+0xe1>
movsd  0x10(%rdx),%xmm0
test   %rax,%rax
je     11ef <jac_chain_nm2+0xef>
subsd  %xmm0,%xmm1
movsd  %xmm1,0x28(%rax)
mov    0x8(%rsi),%rax
test   %rax,%rax
je     133d <jac_chain_nm2+0x23d>
xorpd  %xmm0,%xmm0
movupd %xmm0,0x80(%rax)
movupd %xmm0,0x70(%rax)
movupd %xmm0,0x60(%rax)
movupd %xmm0,0x50(%rax)
movupd %xmm0,0x40(%rax)
movupd %xmm0,0x30(%rax)
movupd %xmm0,0x20(%rax)
movupd %xmm0,0x10(%rax)
movupd %xmm0,(%rax)
movabs $0xbff0000000000000,%rcx
mov    %rcx,0x90(%rax)
movupd %xmm0,0x98(%rax)
movupd %xmm0,0xa8(%rax)
movupd %xmm0,0xb8(%rax)
mov    %rcx,0xc8(%rax)
movupd %xmm0,0xd0(%rax)
movupd %xmm0,0xe0(%rax)
movupd %xmm0,0xf0(%rax)
mov    %rcx,0x100(%rax)
movupd %xmm0,0x108(%rax)
movq   $0x0,0x118(%rax)
movabs $0x3ff0000000000000,%rcx
mov    %rcx,0x120(%rax)
movupd %xmm0,0x128(%rax)
movupd %xmm0,0x138(%rax)
movupd %xmm0,0x148(%rax)
mov    %rcx,0x158(%rax)
movupd %xmm0,0x160(%rax)
movupd %xmm0,0x170(%rax)
movupd %xmm0,0x180(%rax)
mov    %rcx,0x190(%rax)
movupd %xmm0,0x198(%rax)
movupd %xmm0,0x1a8(%rax)
movupd %xmm0,0x1b8(%rax)
mov    %rcx,0x1c8(%rax)
movupd %xmm0,0x1f0(%rax)
movupd %xmm0,0x1e0(%rax)
movupd %xmm0,0x1d0(%rax)
mov    %rcx,0x200(%rax)
movupd %xmm0,0x228(%rax)
movupd %xmm0,0x218(%rax)
movupd %xmm0,0x208(%rax)
mov    %rcx,0x238(%rax)
xor    %eax,%eax
ret
xorpd  %xmm0,%xmm0
xorpd  %xmm1,%xmm1
test   %rax,%rax
jne    1144 <jac_chain_nm2+0x44>
jmp    114d <jac_chain_nm2+0x4d>
xorpd  %xmm0,%xmm0
xorpd  %xmm1,%xmm1
test   %rax,%rax
jne    1165 <jac_chain_nm2+0x65>
jmp    116e <jac_chain_nm2+0x6e>

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

LLVM IR (-O2):
define i32 @jac_chain_nm2(double** nocapture %0, double** %1, i32* nocapture readnone %2, double* nocapture readnone %3, i32 %4) {
%6 = load double*, double** %0
%7 = icmp eq double* %6, null
br i1 %7, label %13, label %8
8: ; preds = %5
%9 = getelementptr inbounds double, double* %6, i64 6
%10 = load double, double* %9
%11 = getelementptr inbounds double, double* %6, i64 3
%12 = load double, double* %11
br label %13
13: ; preds = %5, %8
%14 = phi double [ %10, %8 ], [ 0.000000e+00, %5 ]
%15 = phi double [ %12, %8 ], [ 0.000000e+00, %5 ]
%16 = load double*, double** %1
%17 = icmp eq double* %16, null
br i1 %17, label %20, label %18
18: ; preds = %13
%19 = fsub double %14, %15
store double %19, double* %16
br label %20
20: ; preds = %18, %13
br i1 %7, label %26, label %21
21: ; preds = %20
%22 = getelementptr inbounds double, double* %6, i64 7
%23 = load double, double* %22
%24 = getelementptr inbounds double, double* %6, i64 4
%25 = load double, double* %24
br label %26
26: ; preds = %20, %21
%27 = phi double [ %23, %21 ], [ 0.000000e+00, %20 ]
%28 = phi double [ %25, %21 ], [ 0.000000e+00, %20 ]
br i1 %17, label %32, label %29
29: ; preds = %26
%30 = fsub double %27, %28
%31 = getelementptr inbounds double, double* %16, i64 1
store double %30, double* %31
br label %32
32: ; preds = %29, %26
br i1 %7, label %38, label %33
33: ; preds = %32
%34 = getelementptr inbounds double, double* %6, i64 8
%35 = load double, double* %34
%36 = getelementptr inbounds double, double* %6, i64 5
%37 = load double, double* %36
br label %38
38: ; preds = %32, %33
%39 = phi double [ %35, %33 ], [ 0.000000e+00, %32 ]
%40 = phi double [ %37, %33 ], [ 0.000000e+00, %32 ]
br i1 %17, label %44, label %41
41: ; preds = %38
%42 = fsub double %39, %40
%43 = getelementptr inbounds double, double* %16, i64 2
store double %42, double* %43
br label %44
44: ; preds = %41, %38
br i1 %7, label %48, label %45
45: ; preds = %44
%46 = getelementptr inbounds double, double* %6, i64 9
%47 = load double, double* %46
br label %48
48: ; preds = %44, %45
%49 = phi double [ %47, %45 ], [ 0.000000e+00, %44 ]
%50 = getelementptr inbounds double*, double** %0, i64 1
%51 = load double*, double** %50
%52 = icmp eq double* %51, null
br i1 %52, label %55, label %53
53: ; preds = %48
%54 = load double, double* %51
br label %55
55: ; preds = %48, %53
%56 = phi double [ %54, %53 ], [ 0.000000e+00, %48 ]
br i1 %17, label %60, label %57
57: ; preds = %55
%58 = fsub double %49, %56
%59 = getelementptr inbounds double, double* %16, i64 3
store double %58, double* %59
br label %60
60: ; preds = %57, %55
br i1 %7, label %64, label %61
61: ; preds = %60
%62 = getelementptr inbounds double, double* %6, i64 10
%63 = load double, double* %62
br label %64
64: ; preds = %60, %61
%65 = phi double [ %63, %61 ], [ 0.000000e+00, %60 ]
br i1 %52, label %69, label %66
66: ; preds = %64
%67 = getelementptr inbounds double, double* %51, i64 1
%68 = load double, double* %67
br label %69
69: ; preds = %64, %66
%70 = phi double [ %68, %66 ], [ 0.000000e+00, %64 ]
br i1 %17, label %74, label %71
71: ; preds = %69
%72 = fsub double %65, %70
%73 = getelementptr inbounds double, double* %16, i64 4
store double %72, double* %73
br label %74
74: ; preds = %71, %69
br i1 %7, label %78, label %75
75: ; preds = %74
%76 = getelementptr inbounds double, double* %6, i64 11
%77 = load double, double* %76
br label %78
78: ; preds = %74, %75
%79 = phi double [ %77, %75 ], [ 0.000000e+00, %74 ]
br i1 %52, label %83, label %80
80: ; preds = %78
%81 = getelementptr inbounds double, double* %51, i64 2
%82 = load double, double* %81
br label %83
83: ; preds = %78, %80
%84 = phi double [ %82, %80 ], [ 0.000000e+00, %78 ]
br i1 %17, label %88, label %85
85: ; preds = %83
%86 = fsub double %79, %84
%87 = getelementptr inbounds double, double* %16, i64 5
store double %86, double* %87
br label %88
88: ; preds = %85, %83
%89 = getelementptr inbounds double*, double** %1, i64 1
%90 = load double*, double** %89
%91 = icmp eq double* %90, null
br i1 %91, label %119, label %92
92: ; preds = %88
%93 = getelementptr inbounds double, double* %90, i64 18
%94 = bitcast double* %90 to i8*
store double -1.000000e+00, double* %93
%95 = getelementptr inbounds double, double* %90, i64 19
%96 = getelementptr inbounds double, double* %90, i64 25
%97 = bitcast double* %95 to i8*
store double -1.000000e+00, double* %96
%98 = getelementptr inbounds double, double* %90, i64 26
%99 = getelementptr inbounds double, double* %90, i64 32
%100 = bitcast double* %98 to i8*
store double -1.000000e+00, double* %99
%101 = getelementptr inbounds double, double* %90, i64 33
%102 = getelementptr inbounds double, double* %90, i64 36
%103 = bitcast double* %101 to i8*
store double 1.000000e+00, double* %102
%104 = getelementptr inbounds double, double* %90, i64 37
%105 = getelementptr inbounds double, double* %90, i64 43
%106 = bitcast double* %104 to i8*
store double 1.000000e+00, double* %105
%107 = getelementptr inbounds double, double* %90, i64 44
%108 = getelementptr inbounds double, double* %90, i64 50
%109 = bitcast double* %107 to i8*
store double 1.000000e+00, double* %108
%110 = getelementptr inbounds double, double* %90, i64 51
%111 = getelementptr inbounds double, double* %90, i64 57
%112 = bitcast double* %110 to i8*
store double 1.000000e+00, double* %111
%113 = getelementptr inbounds double, double* %90, i64 58
%114 = getelementptr inbounds double, double* %90, i64 64
%115 = bitcast double* %113 to i8*
store double 1.000000e+00, double* %114
%116 = getelementptr inbounds double, double* %90, i64 65
%117 = getelementptr inbounds double, double* %90, i64 71
%118 = bitcast double* %116 to i8*
store double 1.000000e+00, double* %117
br label %119
119: ; preds = %88, %92
ret i32 0
}