int jac_chain_nm2(void *mem, const double **arg, double **res, int *iw,
                  double *w) {
  mem = 0;
  mem += 0;
  w = 0;
  w += 0;
  iw = 0;
  iw += 0;
  double a0 = arg[0] ? arg[0][3] : 0;
  if (res[0] != 0)
    res[0][0] = a0;
  a0 = arg[0] ? arg[0][4] : 0;
  if (res[0] != 0)
    res[0][1] = a0;
  a0 = arg[0] ? arg[0][5] : 0;
  if (res[0] != 0)
    res[0][2] = a0;
  a0 = arg[1] ? arg[1][0] : 0;
  if (res[0] != 0)
    res[0][3] = a0;
  a0 = arg[1] ? arg[1][1] : 0;
  if (res[0] != 0)
    res[0][4] = a0;
  a0 = arg[1] ? arg[1][2] : 0;
  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;
  double 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;
  return 0;
}


x86 assembly (clang, -O0):
<jac_chain_nm2>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
movq   $0x0,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x8(%rbp)
movq   $0x0,-0x28(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
movq   $0x0,-0x20(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     116c <jac_chain_nm2+0x6c>
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
jmp    1179 <jac_chain_nm2+0x79>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x40(%rbp)
jmp    1179 <jac_chain_nm2+0x79>
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x18(%rbp),%rax
cmpq   $0x0,(%rax)
je     11a1 <jac_chain_nm2+0xa1>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     11c5 <jac_chain_nm2+0xc5>
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
jmp    11d2 <jac_chain_nm2+0xd2>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x48(%rbp)
jmp    11d2 <jac_chain_nm2+0xd2>
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x18(%rbp),%rax
cmpq   $0x0,(%rax)
je     11fb <jac_chain_nm2+0xfb>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     121f <jac_chain_nm2+0x11f>
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    122c <jac_chain_nm2+0x12c>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    122c <jac_chain_nm2+0x12c>
movsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x18(%rbp),%rax
cmpq   $0x0,(%rax)
je     1255 <jac_chain_nm2+0x155>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     127a <jac_chain_nm2+0x17a>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
jmp    1287 <jac_chain_nm2+0x187>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x58(%rbp)
jmp    1287 <jac_chain_nm2+0x187>
movsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x18(%rbp),%rax
cmpq   $0x0,(%rax)
je     12b0 <jac_chain_nm2+0x1b0>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     12d6 <jac_chain_nm2+0x1d6>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
jmp    12e3 <jac_chain_nm2+0x1e3>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x60(%rbp)
jmp    12e3 <jac_chain_nm2+0x1e3>
movsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x18(%rbp),%rax
cmpq   $0x0,(%rax)
je     130c <jac_chain_nm2+0x20c>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x20(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1332 <jac_chain_nm2+0x232>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
jmp    133f <jac_chain_nm2+0x23f>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x68(%rbp)
jmp    133f <jac_chain_nm2+0x23f>
movsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x18(%rbp),%rax
cmpq   $0x0,(%rax)
je     1368 <jac_chain_nm2+0x268>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x28(%rax)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1390 <jac_chain_nm2+0x290>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     13b1 <jac_chain_nm2+0x2b1>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     13d2 <jac_chain_nm2+0x2d2>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     13f3 <jac_chain_nm2+0x2f3>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1414 <jac_chain_nm2+0x314>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x20(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1435 <jac_chain_nm2+0x335>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x28(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1456 <jac_chain_nm2+0x356>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x30(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1477 <jac_chain_nm2+0x377>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x38(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1498 <jac_chain_nm2+0x398>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x40(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     14b9 <jac_chain_nm2+0x3b9>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x48(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     14da <jac_chain_nm2+0x3da>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x50(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     14fb <jac_chain_nm2+0x3fb>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x58(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     151c <jac_chain_nm2+0x41c>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x60(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     153d <jac_chain_nm2+0x43d>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x68(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     155e <jac_chain_nm2+0x45e>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x70(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     157f <jac_chain_nm2+0x47f>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x78(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     15a3 <jac_chain_nm2+0x4a3>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x80(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     15c7 <jac_chain_nm2+0x4c7>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x88(%rax)
movsd  0xa31(%rip),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     15f8 <jac_chain_nm2+0x4f8>
movsd  -0x38(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x90(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     161c <jac_chain_nm2+0x51c>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x98(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1640 <jac_chain_nm2+0x540>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xa0(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1664 <jac_chain_nm2+0x564>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xa8(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1688 <jac_chain_nm2+0x588>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xb0(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     16ac <jac_chain_nm2+0x5ac>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xb8(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     16d0 <jac_chain_nm2+0x5d0>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xc0(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     16f4 <jac_chain_nm2+0x5f4>
movsd  -0x38(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xc8(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1718 <jac_chain_nm2+0x618>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xd0(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     173c <jac_chain_nm2+0x63c>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xd8(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1760 <jac_chain_nm2+0x660>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xe0(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1784 <jac_chain_nm2+0x684>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xe8(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     17a8 <jac_chain_nm2+0x6a8>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xf0(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     17cc <jac_chain_nm2+0x6cc>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0xf8(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     17f0 <jac_chain_nm2+0x6f0>
movsd  -0x38(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x100(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1814 <jac_chain_nm2+0x714>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x108(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1838 <jac_chain_nm2+0x738>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x110(%rax)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     185c <jac_chain_nm2+0x75c>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x118(%rax)
xor    %eax,%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<jac_chain_nm2>:
mov    (%rsi),%rcx
test   %rcx,%rcx
je     110f <jac_chain_nm2+0xf>
movsd  0x18(%rcx),%xmm0
jmp    1112 <jac_chain_nm2+0x12>
xorps  %xmm0,%xmm0
mov    (%rdx),%rax
test   %rax,%rax
je     111e <jac_chain_nm2+0x1e>
movsd  %xmm0,(%rax)
test   %rcx,%rcx
je     122d <jac_chain_nm2+0x12d>
movsd  0x20(%rcx),%xmm0
test   %rax,%rax
je     1136 <jac_chain_nm2+0x36>
movsd  %xmm0,0x8(%rax)
test   %rcx,%rcx
je     123e <jac_chain_nm2+0x13e>
movsd  0x28(%rcx),%xmm0
test   %rax,%rax
je     114e <jac_chain_nm2+0x4e>
movsd  %xmm0,0x10(%rax)
mov    0x8(%rsi),%rcx
test   %rcx,%rcx
je     124f <jac_chain_nm2+0x14f>
movsd  (%rcx),%xmm0
test   %rax,%rax
je     1169 <jac_chain_nm2+0x69>
movsd  %xmm0,0x18(%rax)
test   %rcx,%rcx
je     1260 <jac_chain_nm2+0x160>
movsd  0x8(%rcx),%xmm0
test   %rax,%rax
je     1181 <jac_chain_nm2+0x81>
movsd  %xmm0,0x20(%rax)
test   %rcx,%rcx
je     1271 <jac_chain_nm2+0x171>
movsd  0x10(%rcx),%xmm0
test   %rax,%rax
je     1199 <jac_chain_nm2+0x99>
movsd  %xmm0,0x28(%rax)
mov    0x8(%rdx),%rax
test   %rax,%rax
je     122a <jac_chain_nm2+0x12a>
xorps  %xmm0,%xmm0
movups %xmm0,0x80(%rax)
movups %xmm0,0x70(%rax)
movups %xmm0,0x60(%rax)
movups %xmm0,0x50(%rax)
movups %xmm0,0x40(%rax)
movups %xmm0,0x30(%rax)
movups %xmm0,0x20(%rax)
movups %xmm0,0x10(%rax)
movups %xmm0,(%rax)
movabs $0x3ff0000000000000,%rcx
mov    %rcx,0x90(%rax)
movups %xmm0,0x98(%rax)
movups %xmm0,0xa8(%rax)
movups %xmm0,0xb8(%rax)
mov    %rcx,0xc8(%rax)
movups %xmm0,0xd0(%rax)
movups %xmm0,0xe0(%rax)
movups %xmm0,0xf0(%rax)
mov    %rcx,0x100(%rax)
movups %xmm0,0x108(%rax)
movq   $0x0,0x118(%rax)
xor    %eax,%eax
ret
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    1131 <jac_chain_nm2+0x31>
jmp    1136 <jac_chain_nm2+0x36>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    1149 <jac_chain_nm2+0x49>
jmp    114e <jac_chain_nm2+0x4e>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    1164 <jac_chain_nm2+0x64>
jmp    1169 <jac_chain_nm2+0x69>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    117c <jac_chain_nm2+0x7c>
jmp    1181 <jac_chain_nm2+0x81>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    1194 <jac_chain_nm2+0x94>
jmp    1199 <jac_chain_nm2+0x99>

LLVM IR (-O0):
define i32 @jac_chain_nm2(i8* %0, double** %1, double** %2, i32* %3, double* %4) {
%6 = alloca i8*
%7 = alloca double**
%8 = alloca double**
%9 = alloca i32*
%10 = alloca double*
%11 = alloca double
%12 = alloca double
store i8* %0, i8** %6
store double** %1, double*** %7
store double** %2, double*** %8
store i32* %3, i32** %9
store double* %4, double** %10
store i8* null, i8** %6
%13 = load i8*, i8** %6
%14 = getelementptr i8, i8* %13, i64 0
store i8* %14, i8** %6
store double* null, double** %10
%15 = load double*, double** %10
%16 = getelementptr inbounds double, double* %15, i64 0
store double* %16, double** %10
store i32* null, i32** %9
%17 = load i32*, i32** %9
%18 = getelementptr inbounds i32, i32* %17, i64 0
store i32* %18, i32** %9
%19 = load double**, double*** %7
%20 = getelementptr inbounds double*, double** %19, i64 0
%21 = load double*, double** %20
%22 = icmp ne double* %21, null
br i1 %22, label %23, label %29
23: ; preds = %5
%24 = load double**, double*** %7
%25 = getelementptr inbounds double*, double** %24, i64 0
%26 = load double*, double** %25
%27 = getelementptr inbounds double, double* %26, i64 3
%28 = load double, double* %27
br label %30
29: ; preds = %5
br label %30
30: ; preds = %29, %23
%31 = phi double [ %28, %23 ], [ 0.000000e+00, %29 ]
store double %31, double* %11
%32 = load double**, double*** %8
%33 = getelementptr inbounds double*, double** %32, i64 0
%34 = load double*, double** %33
%35 = icmp ne double* %34, null
br i1 %35, label %36, label %42
36: ; preds = %30
%37 = load double, double* %11
%38 = load double**, double*** %8
%39 = getelementptr inbounds double*, double** %38, i64 0
%40 = load double*, double** %39
%41 = getelementptr inbounds double, double* %40, i64 0
store double %37, double* %41
br label %42
42: ; preds = %36, %30
%43 = load double**, double*** %7
%44 = getelementptr inbounds double*, double** %43, i64 0
%45 = load double*, double** %44
%46 = icmp ne double* %45, null
br i1 %46, label %47, label %53
47: ; preds = %42
%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 4
%52 = load double, double* %51
br label %54
53: ; preds = %42
br label %54
54: ; preds = %53, %47
%55 = phi double [ %52, %47 ], [ 0.000000e+00, %53 ]
store double %55, double* %11
%56 = load double**, double*** %8
%57 = getelementptr inbounds double*, double** %56, i64 0
%58 = load double*, double** %57
%59 = icmp ne double* %58, null
br i1 %59, label %60, label %66
60: ; preds = %54
%61 = load double, double* %11
%62 = load double**, double*** %8
%63 = getelementptr inbounds double*, double** %62, i64 0
%64 = load double*, double** %63
%65 = getelementptr inbounds double, double* %64, i64 1
store double %61, double* %65
br label %66
66: ; preds = %60, %54
%67 = load double**, double*** %7
%68 = getelementptr inbounds double*, double** %67, i64 0
%69 = load double*, double** %68
%70 = icmp ne double* %69, null
br i1 %70, label %71, label %77
71: ; preds = %66
%72 = load double**, double*** %7
%73 = getelementptr inbounds double*, double** %72, i64 0
%74 = load double*, double** %73
%75 = getelementptr inbounds double, double* %74, i64 5
%76 = load double, double* %75
br label %78
77: ; preds = %66
br label %78
78: ; preds = %77, %71
%79 = phi double [ %76, %71 ], [ 0.000000e+00, %77 ]
store double %79, double* %11
%80 = load double**, double*** %8
%81 = getelementptr inbounds double*, double** %80, i64 0
%82 = load double*, double** %81
%83 = icmp ne double* %82, null
br i1 %83, label %84, label %90
84: ; preds = %78
%85 = load double, double* %11
%86 = load double**, double*** %8
%87 = getelementptr inbounds double*, double** %86, i64 0
%88 = load double*, double** %87
%89 = getelementptr inbounds double, double* %88, i64 2
store double %85, double* %89
br label %90
90: ; preds = %84, %78
%91 = load double**, double*** %7
%92 = getelementptr inbounds double*, double** %91, i64 1
%93 = load double*, double** %92
%94 = icmp ne double* %93, null
br i1 %94, label %95, label %101
95: ; preds = %90
%96 = load double**, double*** %7
%97 = getelementptr inbounds double*, double** %96, i64 1
%98 = load double*, double** %97
%99 = getelementptr inbounds double, double* %98, i64 0
%100 = load double, double* %99
br label %102
101: ; preds = %90
br label %102
102: ; preds = %101, %95
%103 = phi double [ %100, %95 ], [ 0.000000e+00, %101 ]
store double %103, double* %11
%104 = load double**, double*** %8
%105 = getelementptr inbounds double*, double** %104, i64 0
%106 = load double*, double** %105
%107 = icmp ne double* %106, null
br i1 %107, label %108, label %114
108: ; preds = %102
%109 = load double, double* %11
%110 = load double**, double*** %8
%111 = getelementptr inbounds double*, double** %110, i64 0
%112 = load double*, double** %111
%113 = getelementptr inbounds double, double* %112, i64 3
store double %109, double* %113
br label %114
114: ; preds = %108, %102
%115 = load double**, double*** %7
%116 = getelementptr inbounds double*, double** %115, i64 1
%117 = load double*, double** %116
%118 = icmp ne double* %117, null
br i1 %118, label %119, label %125
119: ; preds = %114
%120 = load double**, double*** %7
%121 = getelementptr inbounds double*, double** %120, i64 1
%122 = load double*, double** %121
%123 = getelementptr inbounds double, double* %122, i64 1
%124 = load double, double* %123
br label %126
125: ; preds = %114
br label %126
126: ; preds = %125, %119
%127 = phi double [ %124, %119 ], [ 0.000000e+00, %125 ]
store double %127, double* %11
%128 = load double**, double*** %8
%129 = getelementptr inbounds double*, double** %128, i64 0
%130 = load double*, double** %129
%131 = icmp ne double* %130, null
br i1 %131, label %132, label %138
132: ; preds = %126
%133 = load double, double* %11
%134 = load double**, double*** %8
%135 = getelementptr inbounds double*, double** %134, i64 0
%136 = load double*, double** %135
%137 = getelementptr inbounds double, double* %136, i64 4
store double %133, double* %137
br label %138
138: ; preds = %132, %126
%139 = load double**, double*** %7
%140 = getelementptr inbounds double*, double** %139, i64 1
%141 = load double*, double** %140
%142 = icmp ne double* %141, null
br i1 %142, label %143, label %149
143: ; preds = %138
%144 = load double**, double*** %7
%145 = getelementptr inbounds double*, double** %144, i64 1
%146 = load double*, double** %145
%147 = getelementptr inbounds double, double* %146, i64 2
%148 = load double, double* %147
br label %150
149: ; preds = %138
br label %150
150: ; preds = %149, %143
%151 = phi double [ %148, %143 ], [ 0.000000e+00, %149 ]
store double %151, double* %11
%152 = load double**, double*** %8
%153 = getelementptr inbounds double*, double** %152, i64 0
%154 = load double*, double** %153
%155 = icmp ne double* %154, null
br i1 %155, label %156, label %162
156: ; preds = %150
%157 = load double, double* %11
%158 = load double**, double*** %8
%159 = getelementptr inbounds double*, double** %158, i64 0
%160 = load double*, double** %159
%161 = getelementptr inbounds double, double* %160, i64 5
store double %157, double* %161
br label %162
162: ; preds = %156, %150
store double 0.000000e+00, double* %11
%163 = load double**, double*** %8
%164 = getelementptr inbounds double*, double** %163, i64 1
%165 = load double*, double** %164
%166 = icmp ne double* %165, null
br i1 %166, label %167, label %173
167: ; preds = %162
%168 = load double, double* %11
%169 = load double**, double*** %8
%170 = getelementptr inbounds double*, double** %169, i64 1
%171 = load double*, double** %170
%172 = getelementptr inbounds double, double* %171, i64 0
store double %168, double* %172
br label %173
173: ; preds = %167, %162
%174 = load double**, double*** %8
%175 = getelementptr inbounds double*, double** %174, i64 1
%176 = load double*, double** %175
%177 = icmp ne double* %176, null
br i1 %177, label %178, label %184
178: ; preds = %173
%179 = load double, double* %11
%180 = load double**, double*** %8
%181 = getelementptr inbounds double*, double** %180, i64 1
%182 = load double*, double** %181
%183 = getelementptr inbounds double, double* %182, i64 1
store double %179, double* %183
br label %184
184: ; preds = %178, %173
%185 = load double**, double*** %8
%186 = getelementptr inbounds double*, double** %185, i64 1
%187 = load double*, double** %186
%188 = icmp ne double* %187, null
br i1 %188, label %189, label %195
189: ; preds = %184
%190 = load double, double* %11
%191 = load double**, double*** %8
%192 = getelementptr inbounds double*, double** %191, i64 1
%193 = load double*, double** %192
%194 = getelementptr inbounds double, double* %193, i64 2
store double %190, double* %194
br label %195
195: ; preds = %189, %184
%196 = load double**, double*** %8
%197 = getelementptr inbounds double*, double** %196, i64 1
%198 = load double*, double** %197
%199 = icmp ne double* %198, null
br i1 %199, label %200, label %206
200: ; preds = %195
%201 = load double, double* %11
%202 = load double**, double*** %8
%203 = getelementptr inbounds double*, double** %202, i64 1
%204 = load double*, double** %203
%205 = getelementptr inbounds double, double* %204, i64 3
store double %201, double* %205
br label %206
206: ; preds = %200, %195
%207 = load double**, double*** %8
%208 = getelementptr inbounds double*, double** %207, i64 1
%209 = load double*, double** %208
%210 = icmp ne double* %209, null
br i1 %210, label %211, label %217
211: ; preds = %206
%212 = load double, double* %11
%213 = load double**, double*** %8
%214 = getelementptr inbounds double*, double** %213, i64 1
%215 = load double*, double** %214
%216 = getelementptr inbounds double, double* %215, i64 4
store double %212, double* %216
br label %217
217: ; preds = %211, %206
%218 = load double**, double*** %8
%219 = getelementptr inbounds double*, double** %218, i64 1
%220 = load double*, double** %219
%221 = icmp ne double* %220, null
br i1 %221, label %222, label %228
222: ; preds = %217
%223 = load double, double* %11
%224 = load double**, double*** %8
%225 = getelementptr inbounds double*, double** %224, i64 1
%226 = load double*, double** %225
%227 = getelementptr inbounds double, double* %226, i64 5
store double %223, double* %227
br label %228
228: ; preds = %222, %217
%229 = load double**, double*** %8
%230 = getelementptr inbounds double*, double** %229, i64 1
%231 = load double*, double** %230
%232 = icmp ne double* %231, null
br i1 %232, label %233, label %239
233: ; preds = %228
%234 = load double, double* %11
%235 = load double**, double*** %8
%236 = getelementptr inbounds double*, double** %235, i64 1
%237 = load double*, double** %236
%238 = getelementptr inbounds double, double* %237, i64 6
store double %234, double* %238
br label %239
239: ; preds = %233, %228
%240 = load double**, double*** %8
%241 = getelementptr inbounds double*, double** %240, i64 1
%242 = load double*, double** %241
%243 = icmp ne double* %242, null
br i1 %243, label %244, label %250
244: ; preds = %239
%245 = load double, double* %11
%246 = load double**, double*** %8
%247 = getelementptr inbounds double*, double** %246, i64 1
%248 = load double*, double** %247
%249 = getelementptr inbounds double, double* %248, i64 7
store double %245, double* %249
br label %250
250: ; preds = %244, %239
%251 = load double**, double*** %8
%252 = getelementptr inbounds double*, double** %251, i64 1
%253 = load double*, double** %252
%254 = icmp ne double* %253, null
br i1 %254, label %255, label %261
255: ; preds = %250
%256 = load double, double* %11
%257 = load double**, double*** %8
%258 = getelementptr inbounds double*, double** %257, i64 1
%259 = load double*, double** %258
%260 = getelementptr inbounds double, double* %259, i64 8
store double %256, double* %260
br label %261
261: ; preds = %255, %250
%262 = load double**, double*** %8
%263 = getelementptr inbounds double*, double** %262, i64 1
%264 = load double*, double** %263
%265 = icmp ne double* %264, null
br i1 %265, label %266, label %272
266: ; preds = %261
%267 = load double, double* %11
%268 = load double**, double*** %8
%269 = getelementptr inbounds double*, double** %268, i64 1
%270 = load double*, double** %269
%271 = getelementptr inbounds double, double* %270, i64 9
store double %267, double* %271
br label %272
272: ; preds = %266, %261
%273 = load double**, double*** %8
%274 = getelementptr inbounds double*, double** %273, i64 1
%275 = load double*, double** %274
%276 = icmp ne double* %275, null
br i1 %276, label %277, label %283
277: ; preds = %272
%278 = load double, double* %11
%279 = load double**, double*** %8
%280 = getelementptr inbounds double*, double** %279, i64 1
%281 = load double*, double** %280
%282 = getelementptr inbounds double, double* %281, i64 10
store double %278, double* %282
br label %283
283: ; preds = %277, %272
%284 = load double**, double*** %8
%285 = getelementptr inbounds double*, double** %284, i64 1
%286 = load double*, double** %285
%287 = icmp ne double* %286, null
br i1 %287, label %288, label %294
288: ; preds = %283
%289 = load double, double* %11
%290 = load double**, double*** %8
%291 = getelementptr inbounds double*, double** %290, i64 1
%292 = load double*, double** %291
%293 = getelementptr inbounds double, double* %292, i64 11
store double %289, double* %293
br label %294
294: ; preds = %288, %283
%295 = load double**, double*** %8
%296 = getelementptr inbounds double*, double** %295, i64 1
%297 = load double*, double** %296
%298 = icmp ne double* %297, null
br i1 %298, label %299, label %305
299: ; preds = %294
%300 = load double, double* %11
%301 = load double**, double*** %8
%302 = getelementptr inbounds double*, double** %301, i64 1
%303 = load double*, double** %302
%304 = getelementptr inbounds double, double* %303, i64 12
store double %300, double* %304
br label %305
305: ; preds = %299, %294
%306 = load double**, double*** %8
%307 = getelementptr inbounds double*, double** %306, i64 1
%308 = load double*, double** %307
%309 = icmp ne double* %308, null
br i1 %309, label %310, label %316
310: ; preds = %305
%311 = load double, double* %11
%312 = load double**, double*** %8
%313 = getelementptr inbounds double*, double** %312, i64 1
%314 = load double*, double** %313
%315 = getelementptr inbounds double, double* %314, i64 13
store double %311, double* %315
br label %316
316: ; preds = %310, %305
%317 = load double**, double*** %8
%318 = getelementptr inbounds double*, double** %317, i64 1
%319 = load double*, double** %318
%320 = icmp ne double* %319, null
br i1 %320, label %321, label %327
321: ; preds = %316
%322 = load double, double* %11
%323 = load double**, double*** %8
%324 = getelementptr inbounds double*, double** %323, i64 1
%325 = load double*, double** %324
%326 = getelementptr inbounds double, double* %325, i64 14
store double %322, double* %326
br label %327
327: ; preds = %321, %316
%328 = load double**, double*** %8
%329 = getelementptr inbounds double*, double** %328, i64 1
%330 = load double*, double** %329
%331 = icmp ne double* %330, null
br i1 %331, label %332, label %338
332: ; preds = %327
%333 = load double, double* %11
%334 = load double**, double*** %8
%335 = getelementptr inbounds double*, double** %334, i64 1
%336 = load double*, double** %335
%337 = getelementptr inbounds double, double* %336, i64 15
store double %333, double* %337
br label %338
338: ; preds = %332, %327
%339 = load double**, double*** %8
%340 = getelementptr inbounds double*, double** %339, i64 1
%341 = load double*, double** %340
%342 = icmp ne double* %341, null
br i1 %342, label %343, label %349
343: ; preds = %338
%344 = load double, double* %11
%345 = load double**, double*** %8
%346 = getelementptr inbounds double*, double** %345, i64 1
%347 = load double*, double** %346
%348 = getelementptr inbounds double, double* %347, i64 16
store double %344, double* %348
br label %349
349: ; preds = %343, %338
%350 = load double**, double*** %8
%351 = getelementptr inbounds double*, double** %350, i64 1
%352 = load double*, double** %351
%353 = icmp ne double* %352, null
br i1 %353, label %354, label %360
354: ; preds = %349
%355 = load double, double* %11
%356 = load double**, double*** %8
%357 = getelementptr inbounds double*, double** %356, i64 1
%358 = load double*, double** %357
%359 = getelementptr inbounds double, double* %358, i64 17
store double %355, double* %359
br label %360
360: ; preds = %354, %349
store double 1.000000e+00, double* %12
%361 = load double**, double*** %8
%362 = getelementptr inbounds double*, double** %361, i64 1
%363 = load double*, double** %362
%364 = icmp ne double* %363, null
br i1 %364, label %365, label %371
365: ; preds = %360
%366 = load double, double* %12
%367 = load double**, double*** %8
%368 = getelementptr inbounds double*, double** %367, i64 1
%369 = load double*, double** %368
%370 = getelementptr inbounds double, double* %369, i64 18
store double %366, double* %370
br label %371
371: ; preds = %365, %360
%372 = load double**, double*** %8
%373 = getelementptr inbounds double*, double** %372, i64 1
%374 = load double*, double** %373
%375 = icmp ne double* %374, null
br i1 %375, label %376, label %382
376: ; preds = %371
%377 = load double, double* %11
%378 = load double**, double*** %8
%379 = getelementptr inbounds double*, double** %378, i64 1
%380 = load double*, double** %379
%381 = getelementptr inbounds double, double* %380, i64 19
store double %377, double* %381
br label %382
382: ; preds = %376, %371
%383 = load double**, double*** %8
%384 = getelementptr inbounds double*, double** %383, i64 1
%385 = load double*, double** %384
%386 = icmp ne double* %385, null
br i1 %386, label %387, label %393
387: ; preds = %382
%388 = load double, double* %11
%389 = load double**, double*** %8
%390 = getelementptr inbounds double*, double** %389, i64 1
%391 = load double*, double** %390
%392 = getelementptr inbounds double, double* %391, i64 20
store double %388, double* %392
br label %393
393: ; preds = %387, %382
%394 = load double**, double*** %8
%395 = getelementptr inbounds double*, double** %394, i64 1
%396 = load double*, double** %395
%397 = icmp ne double* %396, null
br i1 %397, label %398, label %404
398: ; preds = %393
%399 = load double, double* %11
%400 = load double**, double*** %8
%401 = getelementptr inbounds double*, double** %400, i64 1
%402 = load double*, double** %401
%403 = getelementptr inbounds double, double* %402, i64 21
store double %399, double* %403
br label %404
404: ; preds = %398, %393
%405 = load double**, double*** %8
%406 = getelementptr inbounds double*, double** %405, i64 1
%407 = load double*, double** %406
%408 = icmp ne double* %407, null
br i1 %408, label %409, label %415
409: ; preds = %404
%410 = load double, double* %11
%411 = load double**, double*** %8
%412 = getelementptr inbounds double*, double** %411, i64 1
%413 = load double*, double** %412
%414 = getelementptr inbounds double, double* %413, i64 22
store double %410, double* %414
br label %415
415: ; preds = %409, %404
%416 = load double**, double*** %8
%417 = getelementptr inbounds double*, double** %416, i64 1
%418 = load double*, double** %417
%419 = icmp ne double* %418, null
br i1 %419, label %420, label %426
420: ; preds = %415
%421 = load double, double* %11
%422 = load double**, double*** %8
%423 = getelementptr inbounds double*, double** %422, i64 1
%424 = load double*, double** %423
%425 = getelementptr inbounds double, double* %424, i64 23
store double %421, double* %425
br label %426
426: ; preds = %420, %415
%427 = load double**, double*** %8
%428 = getelementptr inbounds double*, double** %427, i64 1
%429 = load double*, double** %428
%430 = icmp ne double* %429, null
br i1 %430, label %431, label %437
431: ; preds = %426
%432 = load double, double* %11
%433 = load double**, double*** %8
%434 = getelementptr inbounds double*, double** %433, i64 1
%435 = load double*, double** %434
%436 = getelementptr inbounds double, double* %435, i64 24
store double %432, double* %436
br label %437
437: ; preds = %431, %426
%438 = load double**, double*** %8
%439 = getelementptr inbounds double*, double** %438, i64 1
%440 = load double*, double** %439
%441 = icmp ne double* %440, null
br i1 %441, label %442, label %448
442: ; preds = %437
%443 = load double, double* %12
%444 = load double**, double*** %8
%445 = getelementptr inbounds double*, double** %444, i64 1
%446 = load double*, double** %445
%447 = getelementptr inbounds double, double* %446, i64 25
store double %443, double* %447
br label %448
448: ; preds = %442, %437
%449 = load double**, double*** %8
%450 = getelementptr inbounds double*, double** %449, i64 1
%451 = load double*, double** %450
%452 = icmp ne double* %451, null
br i1 %452, label %453, label %459
453: ; preds = %448
%454 = load double, double* %11
%455 = load double**, double*** %8
%456 = getelementptr inbounds double*, double** %455, i64 1
%457 = load double*, double** %456
%458 = getelementptr inbounds double, double* %457, i64 26
store double %454, double* %458
br label %459
459: ; preds = %453, %448
%460 = load double**, double*** %8
%461 = getelementptr inbounds double*, double** %460, i64 1
%462 = load double*, double** %461
%463 = icmp ne double* %462, null
br i1 %463, label %464, label %470
464: ; preds = %459
%465 = load double, double* %11
%466 = load double**, double*** %8
%467 = getelementptr inbounds double*, double** %466, i64 1
%468 = load double*, double** %467
%469 = getelementptr inbounds double, double* %468, i64 27
store double %465, double* %469
br label %470
470: ; preds = %464, %459
%471 = load double**, double*** %8
%472 = getelementptr inbounds double*, double** %471, i64 1
%473 = load double*, double** %472
%474 = icmp ne double* %473, null
br i1 %474, label %475, label %481
475: ; preds = %470
%476 = load double, double* %11
%477 = load double**, double*** %8
%478 = getelementptr inbounds double*, double** %477, i64 1
%479 = load double*, double** %478
%480 = getelementptr inbounds double, double* %479, i64 28
store double %476, double* %480
br label %481
481: ; preds = %475, %470
%482 = load double**, double*** %8
%483 = getelementptr inbounds double*, double** %482, i64 1
%484 = load double*, double** %483
%485 = icmp ne double* %484, null
br i1 %485, label %486, label %492
486: ; preds = %481
%487 = load double, double* %11
%488 = load double**, double*** %8
%489 = getelementptr inbounds double*, double** %488, i64 1
%490 = load double*, double** %489
%491 = getelementptr inbounds double, double* %490, i64 29
store double %487, double* %491
br label %492
492: ; preds = %486, %481
%493 = load double**, double*** %8
%494 = getelementptr inbounds double*, double** %493, i64 1
%495 = load double*, double** %494
%496 = icmp ne double* %495, null
br i1 %496, label %497, label %503
497: ; preds = %492
%498 = load double, double* %11
%499 = load double**, double*** %8
%500 = getelementptr inbounds double*, double** %499, i64 1
%501 = load double*, double** %500
%502 = getelementptr inbounds double, double* %501, i64 30
store double %498, double* %502
br label %503
503: ; preds = %497, %492
%504 = load double**, double*** %8
%505 = getelementptr inbounds double*, double** %504, i64 1
%506 = load double*, double** %505
%507 = icmp ne double* %506, null
br i1 %507, label %508, label %514
508: ; preds = %503
%509 = load double, double* %11
%510 = load double**, double*** %8
%511 = getelementptr inbounds double*, double** %510, i64 1
%512 = load double*, double** %511
%513 = getelementptr inbounds double, double* %512, i64 31
store double %509, double* %513
br label %514
514: ; preds = %508, %503
%515 = load double**, double*** %8
%516 = getelementptr inbounds double*, double** %515, i64 1
%517 = load double*, double** %516
%518 = icmp ne double* %517, null
br i1 %518, label %519, label %525
519: ; preds = %514
%520 = load double, double* %12
%521 = load double**, double*** %8
%522 = getelementptr inbounds double*, double** %521, i64 1
%523 = load double*, double** %522
%524 = getelementptr inbounds double, double* %523, i64 32
store double %520, double* %524
br label %525
525: ; preds = %519, %514
%526 = load double**, double*** %8
%527 = getelementptr inbounds double*, double** %526, i64 1
%528 = load double*, double** %527
%529 = icmp ne double* %528, null
br i1 %529, label %530, label %536
530: ; preds = %525
%531 = load double, double* %11
%532 = load double**, double*** %8
%533 = getelementptr inbounds double*, double** %532, i64 1
%534 = load double*, double** %533
%535 = getelementptr inbounds double, double* %534, i64 33
store double %531, double* %535
br label %536
536: ; preds = %530, %525
%537 = load double**, double*** %8
%538 = getelementptr inbounds double*, double** %537, i64 1
%539 = load double*, double** %538
%540 = icmp ne double* %539, null
br i1 %540, label %541, label %547
541: ; preds = %536
%542 = load double, double* %11
%543 = load double**, double*** %8
%544 = getelementptr inbounds double*, double** %543, i64 1
%545 = load double*, double** %544
%546 = getelementptr inbounds double, double* %545, i64 34
store double %542, double* %546
br label %547
547: ; preds = %541, %536
%548 = load double**, double*** %8
%549 = getelementptr inbounds double*, double** %548, i64 1
%550 = load double*, double** %549
%551 = icmp ne double* %550, null
br i1 %551, label %552, label %558
552: ; preds = %547
%553 = load double, double* %11
%554 = load double**, double*** %8
%555 = getelementptr inbounds double*, double** %554, i64 1
%556 = load double*, double** %555
%557 = getelementptr inbounds double, double* %556, i64 35
store double %553, double* %557
br label %558
558: ; preds = %552, %547
ret i32 0
}

LLVM IR (-O2):
define i32 @jac_chain_nm2(i8* nocapture readnone %0, double** nocapture %1, double** %2, i32* nocapture readnone %3, double* nocapture readnone %4) {
%6 = load double*, double** %1
%7 = icmp eq double* %6, null
br i1 %7, label %11, label %8
8: ; preds = %5
%9 = getelementptr inbounds double, double* %6, i64 3
%10 = load double, double* %9
br label %11
11: ; preds = %5, %8
%12 = phi double [ %10, %8 ], [ 0.000000e+00, %5 ]
%13 = load double*, double** %2
%14 = icmp eq double* %13, null
br i1 %14, label %16, label %15
15: ; preds = %11
store double %12, double* %13
br label %16
16: ; preds = %15, %11
br i1 %7, label %20, label %17
17: ; preds = %16
%18 = getelementptr inbounds double, double* %6, i64 4
%19 = load double, double* %18
br label %20
20: ; preds = %16, %17
%21 = phi double [ %19, %17 ], [ 0.000000e+00, %16 ]
br i1 %14, label %24, label %22
22: ; preds = %20
%23 = getelementptr inbounds double, double* %13, i64 1
store double %21, double* %23
br label %24
24: ; preds = %22, %20
br i1 %7, label %28, label %25
25: ; preds = %24
%26 = getelementptr inbounds double, double* %6, i64 5
%27 = load double, double* %26
br label %28
28: ; preds = %24, %25
%29 = phi double [ %27, %25 ], [ 0.000000e+00, %24 ]
br i1 %14, label %32, label %30
30: ; preds = %28
%31 = getelementptr inbounds double, double* %13, i64 2
store double %29, double* %31
br label %32
32: ; preds = %30, %28
%33 = getelementptr inbounds double*, double** %1, i64 1
%34 = load double*, double** %33
%35 = icmp eq double* %34, null
br i1 %35, label %38, label %36
36: ; preds = %32
%37 = load double, double* %34
br label %38
38: ; preds = %32, %36
%39 = phi double [ %37, %36 ], [ 0.000000e+00, %32 ]
br i1 %14, label %42, label %40
40: ; preds = %38
%41 = getelementptr inbounds double, double* %13, i64 3
store double %39, double* %41
br label %42
42: ; preds = %40, %38
br i1 %35, label %46, label %43
43: ; preds = %42
%44 = getelementptr inbounds double, double* %34, i64 1
%45 = load double, double* %44
br label %46
46: ; preds = %42, %43
%47 = phi double [ %45, %43 ], [ 0.000000e+00, %42 ]
br i1 %14, label %50, label %48
48: ; preds = %46
%49 = getelementptr inbounds double, double* %13, i64 4
store double %47, double* %49
br label %50
50: ; preds = %48, %46
br i1 %35, label %54, label %51
51: ; preds = %50
%52 = getelementptr inbounds double, double* %34, i64 2
%53 = load double, double* %52
br label %54
54: ; preds = %50, %51
%55 = phi double [ %53, %51 ], [ 0.000000e+00, %50 ]
br i1 %14, label %58, label %56
56: ; preds = %54
%57 = getelementptr inbounds double, double* %13, i64 5
store double %55, double* %57
br label %58
58: ; preds = %56, %54
%59 = getelementptr inbounds double*, double** %2, i64 1
%60 = load double*, double** %59
%61 = icmp eq double* %60, null
br i1 %61, label %73, label %62
62: ; preds = %58
%63 = getelementptr inbounds double, double* %60, i64 18
%64 = bitcast double* %60 to i8*
store double 1.000000e+00, double* %63
%65 = getelementptr inbounds double, double* %60, i64 19
%66 = getelementptr inbounds double, double* %60, i64 25
%67 = bitcast double* %65 to i8*
store double 1.000000e+00, double* %66
%68 = getelementptr inbounds double, double* %60, i64 26
%69 = getelementptr inbounds double, double* %60, i64 32
%70 = bitcast double* %68 to i8*
store double 1.000000e+00, double* %69
%71 = getelementptr inbounds double, double* %60, i64 33
%72 = bitcast double* %71 to i8*
br label %73
73: ; preds = %58, %62
ret i32 0
}