int ls_cost_nm3_f0(const double **arg, double **res, int *iw, double *w,
                   int mem) {
  double a0 = arg[0] ? arg[0][0] : 0;
  if (res[0] != 0)
    res[0][0] = a0;
  a0 = arg[0] ? arg[0][1] : 0;
  if (res[0] != 0)
    res[0][1] = a0;
  a0 = arg[0] ? arg[0][2] : 0;
  if (res[0] != 0)
    res[0][2] = a0;
  a0 = arg[0] ? arg[0][3] : 0;
  if (res[0] != 0)
    res[0][3] = a0;
  a0 = arg[0] ? arg[0][4] : 0;
  if (res[0] != 0)
    res[0][4] = a0;
  a0 = arg[0] ? arg[0][5] : 0;
  if (res[0] != 0)
    res[0][5] = a0;
  a0 = arg[0] ? arg[0][6] : 0;
  if (res[0] != 0)
    res[0][6] = a0;
  a0 = arg[0] ? arg[0][7] : 0;
  if (res[0] != 0)
    res[0][7] = a0;
  a0 = arg[0] ? arg[0][8] : 0;
  if (res[0] != 0)
    res[0][8] = a0;
  a0 = arg[0] ? arg[0][9] : 0;
  if (res[0] != 0)
    res[0][9] = a0;
  a0 = arg[0] ? arg[0][10] : 0;
  if (res[0] != 0)
    res[0][10] = a0;
  a0 = arg[0] ? arg[0][11] : 0;
  if (res[0] != 0)
    res[0][11] = a0;
  a0 = arg[1] ? arg[1][0] : 0;
  if (res[0] != 0)
    res[0][12] = a0;
  a0 = arg[1] ? arg[1][1] : 0;
  if (res[0] != 0)
    res[0][13] = a0;
  a0 = arg[1] ? arg[1][2] : 0;
  if (res[0] != 0)
    res[0][14] = a0;
  a0 = 1.;
  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;
  return 0;
}


x86 assembly (clang, -O0):
<ls_cost_nm3_f0>:
push   %rbp
mov    %rsp,%rbp
sub    $0x28,%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     113f <ls_cost_nm3_f0+0x3f>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
jmp    114c <ls_cost_nm3_f0+0x4c>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x38(%rbp)
jmp    114c <ls_cost_nm3_f0+0x4c>
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     1174 <ls_cost_nm3_f0+0x74>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     1198 <ls_cost_nm3_f0+0x98>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
jmp    11a5 <ls_cost_nm3_f0+0xa5>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x40(%rbp)
jmp    11a5 <ls_cost_nm3_f0+0xa5>
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     11ce <ls_cost_nm3_f0+0xce>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     11f2 <ls_cost_nm3_f0+0xf2>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
jmp    11ff <ls_cost_nm3_f0+0xff>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x48(%rbp)
jmp    11ff <ls_cost_nm3_f0+0xff>
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     1228 <ls_cost_nm3_f0+0x128>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     124c <ls_cost_nm3_f0+0x14c>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    1259 <ls_cost_nm3_f0+0x159>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    1259 <ls_cost_nm3_f0+0x159>
movsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     1282 <ls_cost_nm3_f0+0x182>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     12a6 <ls_cost_nm3_f0+0x1a6>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
jmp    12b3 <ls_cost_nm3_f0+0x1b3>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x58(%rbp)
jmp    12b3 <ls_cost_nm3_f0+0x1b3>
movsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     12dc <ls_cost_nm3_f0+0x1dc>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x20(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     1300 <ls_cost_nm3_f0+0x200>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
jmp    130d <ls_cost_nm3_f0+0x20d>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x60(%rbp)
jmp    130d <ls_cost_nm3_f0+0x20d>
movsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     1336 <ls_cost_nm3_f0+0x236>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x28(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     135a <ls_cost_nm3_f0+0x25a>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
jmp    1367 <ls_cost_nm3_f0+0x267>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x68(%rbp)
jmp    1367 <ls_cost_nm3_f0+0x267>
movsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     1390 <ls_cost_nm3_f0+0x290>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x30(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     13b4 <ls_cost_nm3_f0+0x2b4>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
jmp    13c1 <ls_cost_nm3_f0+0x2c1>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x70(%rbp)
jmp    13c1 <ls_cost_nm3_f0+0x2c1>
movsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     13ea <ls_cost_nm3_f0+0x2ea>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x38(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     140e <ls_cost_nm3_f0+0x30e>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
jmp    141b <ls_cost_nm3_f0+0x31b>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x78(%rbp)
jmp    141b <ls_cost_nm3_f0+0x31b>
movsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     1444 <ls_cost_nm3_f0+0x344>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x40(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     1468 <ls_cost_nm3_f0+0x368>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
jmp    1475 <ls_cost_nm3_f0+0x375>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x80(%rbp)
jmp    1475 <ls_cost_nm3_f0+0x375>
movsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     149e <ls_cost_nm3_f0+0x39e>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x48(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     14c5 <ls_cost_nm3_f0+0x3c5>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
jmp    14d5 <ls_cost_nm3_f0+0x3d5>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
jmp    14d5 <ls_cost_nm3_f0+0x3d5>
movsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     1501 <ls_cost_nm3_f0+0x401>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x50(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,(%rax)
je     1528 <ls_cost_nm3_f0+0x428>
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
jmp    1538 <ls_cost_nm3_f0+0x438>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
jmp    1538 <ls_cost_nm3_f0+0x438>
movsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     1564 <ls_cost_nm3_f0+0x464>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x58(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     158c <ls_cost_nm3_f0+0x48c>
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
jmp    159c <ls_cost_nm3_f0+0x49c>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
jmp    159c <ls_cost_nm3_f0+0x49c>
movsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     15c8 <ls_cost_nm3_f0+0x4c8>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x60(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     15f1 <ls_cost_nm3_f0+0x4f1>
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
jmp    1601 <ls_cost_nm3_f0+0x501>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
jmp    1601 <ls_cost_nm3_f0+0x501>
movsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     162d <ls_cost_nm3_f0+0x52d>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x68(%rax)
mov    -0x8(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1656 <ls_cost_nm3_f0+0x556>
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
jmp    1666 <ls_cost_nm3_f0+0x566>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
jmp    1666 <ls_cost_nm3_f0+0x566>
movsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,(%rax)
je     1692 <ls_cost_nm3_f0+0x592>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsd  %xmm0,0x70(%rax)
movsd  0x966(%rip),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     16bf <ls_cost_nm3_f0+0x5bf>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     16e0 <ls_cost_nm3_f0+0x5e0>
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     1701 <ls_cost_nm3_f0+0x601>
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     1722 <ls_cost_nm3_f0+0x622>
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     1743 <ls_cost_nm3_f0+0x643>
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     1764 <ls_cost_nm3_f0+0x664>
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     1785 <ls_cost_nm3_f0+0x685>
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     17a6 <ls_cost_nm3_f0+0x6a6>
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     17c7 <ls_cost_nm3_f0+0x6c7>
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     17e8 <ls_cost_nm3_f0+0x6e8>
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     1809 <ls_cost_nm3_f0+0x709>
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     182a <ls_cost_nm3_f0+0x72a>
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     184b <ls_cost_nm3_f0+0x74b>
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     186c <ls_cost_nm3_f0+0x76c>
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     188d <ls_cost_nm3_f0+0x78d>
movsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
movsd  %xmm0,0x70(%rax)
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<ls_cost_nm3_f0>:
mov    (%rdi),%rcx
test   %rcx,%rcx
je     110e <ls_cost_nm3_f0+0xe>
movsd  (%rcx),%xmm0
jmp    1111 <ls_cost_nm3_f0+0x11>
xorps  %xmm0,%xmm0
mov    (%rsi),%rax
test   %rax,%rax
je     111d <ls_cost_nm3_f0+0x1d>
movsd  %xmm0,(%rax)
test   %rcx,%rcx
je     12ac <ls_cost_nm3_f0+0x1ac>
movsd  0x8(%rcx),%xmm0
test   %rax,%rax
je     1135 <ls_cost_nm3_f0+0x35>
movsd  %xmm0,0x8(%rax)
test   %rcx,%rcx
je     12bd <ls_cost_nm3_f0+0x1bd>
movsd  0x10(%rcx),%xmm0
test   %rax,%rax
je     114d <ls_cost_nm3_f0+0x4d>
movsd  %xmm0,0x10(%rax)
test   %rcx,%rcx
je     12ce <ls_cost_nm3_f0+0x1ce>
movsd  0x18(%rcx),%xmm0
test   %rax,%rax
je     1165 <ls_cost_nm3_f0+0x65>
movsd  %xmm0,0x18(%rax)
test   %rcx,%rcx
je     12df <ls_cost_nm3_f0+0x1df>
movsd  0x20(%rcx),%xmm0
test   %rax,%rax
je     117d <ls_cost_nm3_f0+0x7d>
movsd  %xmm0,0x20(%rax)
test   %rcx,%rcx
je     12f0 <ls_cost_nm3_f0+0x1f0>
movsd  0x28(%rcx),%xmm0
test   %rax,%rax
je     1195 <ls_cost_nm3_f0+0x95>
movsd  %xmm0,0x28(%rax)
test   %rcx,%rcx
je     1301 <ls_cost_nm3_f0+0x201>
movsd  0x30(%rcx),%xmm0
test   %rax,%rax
je     11ad <ls_cost_nm3_f0+0xad>
movsd  %xmm0,0x30(%rax)
test   %rcx,%rcx
je     1312 <ls_cost_nm3_f0+0x212>
movsd  0x38(%rcx),%xmm0
test   %rax,%rax
je     11c5 <ls_cost_nm3_f0+0xc5>
movsd  %xmm0,0x38(%rax)
test   %rcx,%rcx
je     1323 <ls_cost_nm3_f0+0x223>
movsd  0x40(%rcx),%xmm0
test   %rax,%rax
je     11dd <ls_cost_nm3_f0+0xdd>
movsd  %xmm0,0x40(%rax)
test   %rcx,%rcx
je     1334 <ls_cost_nm3_f0+0x234>
movsd  0x48(%rcx),%xmm0
test   %rax,%rax
je     11f5 <ls_cost_nm3_f0+0xf5>
movsd  %xmm0,0x48(%rax)
test   %rcx,%rcx
je     1345 <ls_cost_nm3_f0+0x245>
movsd  0x50(%rcx),%xmm0
test   %rax,%rax
je     120d <ls_cost_nm3_f0+0x10d>
movsd  %xmm0,0x50(%rax)
test   %rcx,%rcx
je     1356 <ls_cost_nm3_f0+0x256>
movsd  0x58(%rcx),%xmm0
test   %rax,%rax
je     1225 <ls_cost_nm3_f0+0x125>
movsd  %xmm0,0x58(%rax)
mov    0x8(%rdi),%rcx
test   %rcx,%rcx
je     1367 <ls_cost_nm3_f0+0x267>
movsd  (%rcx),%xmm0
test   %rax,%rax
je     1240 <ls_cost_nm3_f0+0x140>
movsd  %xmm0,0x60(%rax)
test   %rcx,%rcx
je     1378 <ls_cost_nm3_f0+0x278>
movsd  0x8(%rcx),%xmm0
test   %rax,%rax
je     1258 <ls_cost_nm3_f0+0x158>
movsd  %xmm0,0x68(%rax)
test   %rcx,%rcx
je     1389 <ls_cost_nm3_f0+0x289>
movsd  0x10(%rcx),%xmm0
test   %rax,%rax
je     1270 <ls_cost_nm3_f0+0x170>
movsd  %xmm0,0x70(%rax)
mov    0x8(%rsi),%rax
test   %rax,%rax
je     12a9 <ls_cost_nm3_f0+0x1a9>
movaps 0xd80(%rip),%xmm0
movups %xmm0,(%rax)
movups %xmm0,0x10(%rax)
movups %xmm0,0x20(%rax)
movups %xmm0,0x30(%rax)
movups %xmm0,0x40(%rax)
movups %xmm0,0x50(%rax)
movups %xmm0,0x60(%rax)
movabs $0x3ff0000000000000,%rcx
mov    %rcx,0x70(%rax)
xor    %eax,%eax
ret
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    1130 <ls_cost_nm3_f0+0x30>
jmp    1135 <ls_cost_nm3_f0+0x35>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    1148 <ls_cost_nm3_f0+0x48>
jmp    114d <ls_cost_nm3_f0+0x4d>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    1160 <ls_cost_nm3_f0+0x60>
jmp    1165 <ls_cost_nm3_f0+0x65>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    1178 <ls_cost_nm3_f0+0x78>
jmp    117d <ls_cost_nm3_f0+0x7d>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    1190 <ls_cost_nm3_f0+0x90>
jmp    1195 <ls_cost_nm3_f0+0x95>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    11a8 <ls_cost_nm3_f0+0xa8>
jmp    11ad <ls_cost_nm3_f0+0xad>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    11c0 <ls_cost_nm3_f0+0xc0>
jmp    11c5 <ls_cost_nm3_f0+0xc5>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    11d8 <ls_cost_nm3_f0+0xd8>
jmp    11dd <ls_cost_nm3_f0+0xdd>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    11f0 <ls_cost_nm3_f0+0xf0>
jmp    11f5 <ls_cost_nm3_f0+0xf5>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    1208 <ls_cost_nm3_f0+0x108>
jmp    120d <ls_cost_nm3_f0+0x10d>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    1220 <ls_cost_nm3_f0+0x120>
jmp    1225 <ls_cost_nm3_f0+0x125>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    123b <ls_cost_nm3_f0+0x13b>
jmp    1240 <ls_cost_nm3_f0+0x140>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    1253 <ls_cost_nm3_f0+0x153>
jmp    1258 <ls_cost_nm3_f0+0x158>
xorps  %xmm0,%xmm0
test   %rax,%rax
jne    126b <ls_cost_nm3_f0+0x16b>
jmp    1270 <ls_cost_nm3_f0+0x170>

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

LLVM IR (-O2):
define i32 @ls_cost_nm3_f0(double** nocapture %0, double** nocapture %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 %10, label %8
8: ; preds = %5
%9 = load double, double* %6
br label %10
10: ; preds = %5, %8
%11 = phi double [ %9, %8 ], [ 0.000000e+00, %5 ]
%12 = load double*, double** %1
%13 = icmp eq double* %12, null
br i1 %13, label %15, label %14
14: ; preds = %10
store double %11, double* %12
br label %15
15: ; preds = %14, %10
br i1 %7, label %19, label %16
16: ; preds = %15
%17 = getelementptr inbounds double, double* %6, i64 1
%18 = load double, double* %17
br label %19
19: ; preds = %15, %16
%20 = phi double [ %18, %16 ], [ 0.000000e+00, %15 ]
br i1 %13, label %23, label %21
21: ; preds = %19
%22 = getelementptr inbounds double, double* %12, i64 1
store double %20, double* %22
br label %23
23: ; preds = %21, %19
br i1 %7, label %27, label %24
24: ; preds = %23
%25 = getelementptr inbounds double, double* %6, i64 2
%26 = load double, double* %25
br label %27
27: ; preds = %23, %24
%28 = phi double [ %26, %24 ], [ 0.000000e+00, %23 ]
br i1 %13, label %31, label %29
29: ; preds = %27
%30 = getelementptr inbounds double, double* %12, i64 2
store double %28, double* %30
br label %31
31: ; preds = %29, %27
br i1 %7, label %35, label %32
32: ; preds = %31
%33 = getelementptr inbounds double, double* %6, i64 3
%34 = load double, double* %33
br label %35
35: ; preds = %31, %32
%36 = phi double [ %34, %32 ], [ 0.000000e+00, %31 ]
br i1 %13, label %39, label %37
37: ; preds = %35
%38 = getelementptr inbounds double, double* %12, i64 3
store double %36, double* %38
br label %39
39: ; preds = %37, %35
br i1 %7, label %43, label %40
40: ; preds = %39
%41 = getelementptr inbounds double, double* %6, i64 4
%42 = load double, double* %41
br label %43
43: ; preds = %39, %40
%44 = phi double [ %42, %40 ], [ 0.000000e+00, %39 ]
br i1 %13, label %47, label %45
45: ; preds = %43
%46 = getelementptr inbounds double, double* %12, i64 4
store double %44, double* %46
br label %47
47: ; preds = %45, %43
br i1 %7, label %51, label %48
48: ; preds = %47
%49 = getelementptr inbounds double, double* %6, i64 5
%50 = load double, double* %49
br label %51
51: ; preds = %47, %48
%52 = phi double [ %50, %48 ], [ 0.000000e+00, %47 ]
br i1 %13, label %55, label %53
53: ; preds = %51
%54 = getelementptr inbounds double, double* %12, i64 5
store double %52, double* %54
br label %55
55: ; preds = %53, %51
br i1 %7, label %59, label %56
56: ; preds = %55
%57 = getelementptr inbounds double, double* %6, i64 6
%58 = load double, double* %57
br label %59
59: ; preds = %55, %56
%60 = phi double [ %58, %56 ], [ 0.000000e+00, %55 ]
br i1 %13, label %63, label %61
61: ; preds = %59
%62 = getelementptr inbounds double, double* %12, i64 6
store double %60, double* %62
br label %63
63: ; preds = %61, %59
br i1 %7, label %67, label %64
64: ; preds = %63
%65 = getelementptr inbounds double, double* %6, i64 7
%66 = load double, double* %65
br label %67
67: ; preds = %63, %64
%68 = phi double [ %66, %64 ], [ 0.000000e+00, %63 ]
br i1 %13, label %71, label %69
69: ; preds = %67
%70 = getelementptr inbounds double, double* %12, i64 7
store double %68, double* %70
br label %71
71: ; preds = %69, %67
br i1 %7, label %75, label %72
72: ; preds = %71
%73 = getelementptr inbounds double, double* %6, i64 8
%74 = load double, double* %73
br label %75
75: ; preds = %71, %72
%76 = phi double [ %74, %72 ], [ 0.000000e+00, %71 ]
br i1 %13, label %79, label %77
77: ; preds = %75
%78 = getelementptr inbounds double, double* %12, i64 8
store double %76, double* %78
br label %79
79: ; preds = %77, %75
br i1 %7, label %83, label %80
80: ; preds = %79
%81 = getelementptr inbounds double, double* %6, i64 9
%82 = load double, double* %81
br label %83
83: ; preds = %79, %80
%84 = phi double [ %82, %80 ], [ 0.000000e+00, %79 ]
br i1 %13, label %87, label %85
85: ; preds = %83
%86 = getelementptr inbounds double, double* %12, i64 9
store double %84, double* %86
br label %87
87: ; preds = %85, %83
br i1 %7, label %91, label %88
88: ; preds = %87
%89 = getelementptr inbounds double, double* %6, i64 10
%90 = load double, double* %89
br label %91
91: ; preds = %87, %88
%92 = phi double [ %90, %88 ], [ 0.000000e+00, %87 ]
br i1 %13, label %95, label %93
93: ; preds = %91
%94 = getelementptr inbounds double, double* %12, i64 10
store double %92, double* %94
br label %95
95: ; preds = %93, %91
br i1 %7, label %99, label %96
96: ; preds = %95
%97 = getelementptr inbounds double, double* %6, i64 11
%98 = load double, double* %97
br label %99
99: ; preds = %95, %96
%100 = phi double [ %98, %96 ], [ 0.000000e+00, %95 ]
br i1 %13, label %103, label %101
101: ; preds = %99
%102 = getelementptr inbounds double, double* %12, i64 11
store double %100, double* %102
br label %103
103: ; preds = %101, %99
%104 = getelementptr inbounds double*, double** %0, i64 1
%105 = load double*, double** %104
%106 = icmp eq double* %105, null
br i1 %106, label %109, label %107
107: ; preds = %103
%108 = load double, double* %105
br label %109
109: ; preds = %103, %107
%110 = phi double [ %108, %107 ], [ 0.000000e+00, %103 ]
br i1 %13, label %113, label %111
111: ; preds = %109
%112 = getelementptr inbounds double, double* %12, i64 12
store double %110, double* %112
br label %113
113: ; preds = %111, %109
br i1 %106, label %117, label %114
114: ; preds = %113
%115 = getelementptr inbounds double, double* %105, i64 1
%116 = load double, double* %115
br label %117
117: ; preds = %113, %114
%118 = phi double [ %116, %114 ], [ 0.000000e+00, %113 ]
br i1 %13, label %121, label %119
119: ; preds = %117
%120 = getelementptr inbounds double, double* %12, i64 13
store double %118, double* %120
br label %121
121: ; preds = %119, %117
br i1 %106, label %125, label %122
122: ; preds = %121
%123 = getelementptr inbounds double, double* %105, i64 2
%124 = load double, double* %123
br label %125
125: ; preds = %121, %122
%126 = phi double [ %124, %122 ], [ 0.000000e+00, %121 ]
br i1 %13, label %129, label %127
127: ; preds = %125
%128 = getelementptr inbounds double, double* %12, i64 14
store double %126, double* %128
br label %129
129: ; preds = %127, %125
%130 = getelementptr inbounds double*, double** %1, i64 1
%131 = load double*, double** %130
%132 = icmp eq double* %131, null
br i1 %132, label %148, label %133
133: ; preds = %129
%134 = bitcast double* %131 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %134
%135 = getelementptr inbounds double, double* %131, i64 2
%136 = bitcast double* %135 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %136
%137 = getelementptr inbounds double, double* %131, i64 4
%138 = bitcast double* %137 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %138
%139 = getelementptr inbounds double, double* %131, i64 6
%140 = bitcast double* %139 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %140
%141 = getelementptr inbounds double, double* %131, i64 8
%142 = bitcast double* %141 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %142
%143 = getelementptr inbounds double, double* %131, i64 10
%144 = bitcast double* %143 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %144
%145 = getelementptr inbounds double, double* %131, i64 12
%146 = bitcast double* %145 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %146
%147 = getelementptr inbounds double, double* %131, i64 14
store double 1.000000e+00, double* %147
br label %148
148: ; preds = %129, %133
ret i32 0
}