void pbchkvect(n, npos0, ix, jx, desc_X, incx, dpos0, iix, jjx, ixrow, ixcol,
               nprow, npcol, myrow, mycol, info) int dpos0,
    *iix, incx, *info, ix, *ixcol, *ixrow,
    *jjx, jx, myrow, mycol, npcol, nprow, n, npos0;
int desc_X[];
{
  int descpos, ExtraColBlock, ExtraRowBlock, icpos, ixpos, jxpos, MyColBlock,
      MyColDist, MyRowBlock, MyRowDist, NColBlock, np, npos, nq, NRowBlock;
  int numroc_();
  if (*info >= 0)
    *info = 10000;
  else if (*info < -100)
    *info = -(*info);
  else
    *info = -(*info) * 100;
  npos = npos0 * 100;
  ixpos = (dpos0 - 2) * 100;
  jxpos = (dpos0 - 1) * 100;
  icpos = (dpos0 + 1) * 100;
  descpos = dpos0 * 100 + 1;
  if (desc_X[0] != 1)
    *info = (((*info) < (descpos + 0)) ? (*info) : (descpos + 0));
  if (n < 0)
    *info = (((*info) < (npos)) ? (*info) : (npos));
  else if (ix < 1)
    *info = (((*info) < (ixpos)) ? (*info) : (ixpos));
  else if (jx < 1)
    *info = (((*info) < (jxpos)) ? (*info) : (jxpos));
  else if (desc_X[4] < 1)
    *info = (((*info) < (descpos + 4)) ? (*info) : (descpos + 4));
  else if (desc_X[5] < 1)
    *info = (((*info) < (descpos + 5)) ? (*info) : (descpos + 5));
  else if ((desc_X[6] < 0) || (desc_X[6] >= nprow))
    *info = (((*info) < (descpos + 6)) ? (*info) : (descpos + 6));
  else if ((desc_X[7] < 0) || (desc_X[7] >= npcol))
    *info = (((*info) < (descpos + 7)) ? (*info) : (descpos + 7));
  else if (incx != 1 && incx != desc_X[2])
    *info = (((*info) < (icpos)) ? (*info) : (icpos));
  else if (desc_X[8] < 1)
    *info = (((*info) < (descpos + 8)) ? (*info) : (descpos + 8));
  if (n == 0) {
    if (desc_X[2] < 0)
      *info = (((*info) < (descpos + 2)) ? (*info) : (descpos + 2));
    if (desc_X[3] < 0)
      *info = (((*info) < (descpos + 3)) ? (*info) : (descpos + 3));
  } else {
    if (desc_X[2] < 1)
      *info = (((*info) < (descpos + 2)) ? (*info) : (descpos + 2));
    else if (desc_X[3] < 1)
      *info = (((*info) < (descpos + 3)) ? (*info) : (descpos + 3));
    else if ((incx == desc_X[2]) && (jx + n - 1 > desc_X[3]))
      *info = (((*info) < (jxpos)) ? (*info) : (jxpos));
    else if ((incx == 1) && (incx != desc_X[2]) && (ix + n - 1 > desc_X[2]))
      *info = (((*info) < (ixpos)) ? (*info) : (ixpos));
    else {
      if (ix > desc_X[2])
        *info = (((*info) < (ixpos)) ? (*info) : (ixpos));
      else if (jx > desc_X[3])
        *info = (((*info) < (jxpos)) ? (*info) : (jxpos));
    }
  }
  if (*info == 10000) {
    MyRowDist = (myrow + nprow - desc_X[6]) % nprow;
    MyColDist = (mycol + npcol - desc_X[7]) % npcol;
    NRowBlock = desc_X[2] / desc_X[4];
    NColBlock = desc_X[3] / desc_X[5];
    np = (NRowBlock / nprow) * desc_X[4];
    nq = (NColBlock / npcol) * desc_X[5];
    ExtraRowBlock = NRowBlock % nprow;
    ExtraColBlock = NColBlock % npcol;
    ix--;
    jx--;
    MyRowBlock = ix / desc_X[4];
    MyColBlock = jx / desc_X[5];
    *ixrow = (MyRowBlock + desc_X[6]) % nprow;
    *ixcol = (MyColBlock + desc_X[7]) % npcol;
    *iix = (MyRowBlock / nprow + 1) * desc_X[4] + 1;
    *jjx = (MyColBlock / npcol + 1) * desc_X[5] + 1;
    if (MyRowDist >= (MyRowBlock % nprow)) {
      if (myrow == *ixrow)
        *iix += ix % desc_X[4];
      *iix -= desc_X[4];
    }
    if (MyRowDist < ExtraRowBlock)
      np += desc_X[4];
    else if (MyRowDist == ExtraRowBlock)
      np += (desc_X[2] % desc_X[4]);
    np = (((1) > (np)) ? (1) : (np));
    if (MyColDist >= (MyColBlock % npcol)) {
      if (mycol == *ixcol)
        *jjx += jx % desc_X[5];
      *jjx -= desc_X[5];
    }
    if (MyColDist < ExtraColBlock)
      nq += desc_X[5];
    else if (MyColDist == ExtraColBlock)
      nq += (desc_X[3] % desc_X[5]);
    nq = (((1) > (nq)) ? (1) : (nq));
    *iix = (((*iix) < (np)) ? (*iix) : (np));
    *jjx = (((*jjx) < (nq)) ? (*jjx) : (nq));
    if (desc_X[8] < np) {
      if (numroc_(&desc_X[3], &desc_X[5], &mycol, &desc_X[7], &npcol))
        *info = -(descpos + 8);
      else
        *info = 0;
    } else
      *info = 0;
  } else if (*info % 100 == 0) {
    *info = -(*info) / 100;
  } else {
    *info = -(*info);
  }
}


x86 assembly (clang, -O0):
<pbchkvect>:
push   %rbp
mov    %rsp,%rbp
sub    $0xc0,%rsp
mov    0x58(%rbp),%rax
mov    0x50(%rbp),%eax
mov    0x48(%rbp),%eax
mov    0x40(%rbp),%eax
mov    0x38(%rbp),%eax
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%eax
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %edx,-0xc(%rbp)
mov    %ecx,-0x10(%rbp)
mov    %r8,-0x18(%rbp)
mov    %r9d,-0x1c(%rbp)
mov    0x58(%rbp),%rax
cmpl   $0x0,(%rax)
jl     116e <pbchkvect+0x5e>
mov    0x58(%rbp),%rax
movl   $0x2710,(%rax)
jmp    11a4 <pbchkvect+0x94>
mov    0x58(%rbp),%rax
cmpl   $0xffffff9c,(%rax)
jge    118e <pbchkvect+0x7e>
mov    0x58(%rbp),%rax
xor    %ecx,%ecx
sub    (%rax),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    119f <pbchkvect+0x8f>
mov    0x58(%rbp),%rcx
xor    %eax,%eax
sub    (%rcx),%eax
imul   $0x64,%eax,%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    11a4 <pbchkvect+0x94>
imul   $0x64,-0x8(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    0x10(%rbp),%eax
sub    $0x2,%eax
imul   $0x64,%eax,%eax
mov    %eax,-0x30(%rbp)
mov    0x10(%rbp),%eax
sub    $0x1,%eax
imul   $0x64,%eax,%eax
mov    %eax,-0x34(%rbp)
mov    0x10(%rbp),%eax
add    $0x1,%eax
imul   $0x64,%eax,%eax
mov    %eax,-0x2c(%rbp)
imul   $0x64,0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
cmpl   $0x1,(%rax)
je     121a <pbchkvect+0x10a>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    -0x20(%rbp),%ecx
add    $0x0,%ecx
cmp    %ecx,%eax
jge    1208 <pbchkvect+0xf8>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x5c(%rbp)
jmp    1211 <pbchkvect+0x101>
mov    -0x20(%rbp),%eax
add    $0x0,%eax
mov    %eax,-0x5c(%rbp)
mov    -0x5c(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
cmpl   $0x0,-0x4(%rbp)
jge    1255 <pbchkvect+0x145>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
cmp    -0x50(%rbp),%eax
jge    1241 <pbchkvect+0x131>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x60(%rbp)
jmp    1247 <pbchkvect+0x137>
mov    -0x50(%rbp),%eax
mov    %eax,-0x60(%rbp)
mov    -0x60(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    14bc <pbchkvect+0x3ac>
cmpl   $0x1,-0xc(%rbp)
jge    1290 <pbchkvect+0x180>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
cmp    -0x30(%rbp),%eax
jge    127c <pbchkvect+0x16c>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x64(%rbp)
jmp    1282 <pbchkvect+0x172>
mov    -0x30(%rbp),%eax
mov    %eax,-0x64(%rbp)
mov    -0x64(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    14b7 <pbchkvect+0x3a7>
cmpl   $0x1,-0x10(%rbp)
jge    12cb <pbchkvect+0x1bb>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
cmp    -0x34(%rbp),%eax
jge    12b7 <pbchkvect+0x1a7>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x68(%rbp)
jmp    12bd <pbchkvect+0x1ad>
mov    -0x34(%rbp),%eax
mov    %eax,-0x68(%rbp)
mov    -0x68(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    14b2 <pbchkvect+0x3a2>
mov    -0x18(%rbp),%rax
cmpl   $0x1,0x10(%rax)
jge    1312 <pbchkvect+0x202>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    -0x20(%rbp),%ecx
add    $0x4,%ecx
cmp    %ecx,%eax
jge    12fb <pbchkvect+0x1eb>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x6c(%rbp)
jmp    1304 <pbchkvect+0x1f4>
mov    -0x20(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x6c(%rbp)
mov    -0x6c(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    14ad <pbchkvect+0x39d>
mov    -0x18(%rbp),%rax
cmpl   $0x1,0x14(%rax)
jge    1359 <pbchkvect+0x249>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    -0x20(%rbp),%ecx
add    $0x5,%ecx
cmp    %ecx,%eax
jge    1342 <pbchkvect+0x232>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x70(%rbp)
jmp    134b <pbchkvect+0x23b>
mov    -0x20(%rbp),%eax
add    $0x5,%eax
mov    %eax,-0x70(%rbp)
mov    -0x70(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    14a8 <pbchkvect+0x398>
mov    -0x18(%rbp),%rax
cmpl   $0x0,0x18(%rax)
jl     1377 <pbchkvect+0x267>
mov    -0x18(%rbp),%rax
mov    0x18(%rax),%eax
cmp    0x38(%rbp),%eax
jl     13b0 <pbchkvect+0x2a0>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    -0x20(%rbp),%ecx
add    $0x6,%ecx
cmp    %ecx,%eax
jge    1399 <pbchkvect+0x289>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x74(%rbp)
jmp    13a2 <pbchkvect+0x292>
mov    -0x20(%rbp),%eax
add    $0x6,%eax
mov    %eax,-0x74(%rbp)
mov    -0x74(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    14a3 <pbchkvect+0x393>
mov    -0x18(%rbp),%rax
cmpl   $0x0,0x1c(%rax)
jl     13ce <pbchkvect+0x2be>
mov    -0x18(%rbp),%rax
mov    0x1c(%rax),%eax
cmp    0x40(%rbp),%eax
jl     1407 <pbchkvect+0x2f7>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    -0x20(%rbp),%ecx
add    $0x7,%ecx
cmp    %ecx,%eax
jge    13f0 <pbchkvect+0x2e0>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x78(%rbp)
jmp    13f9 <pbchkvect+0x2e9>
mov    -0x20(%rbp),%eax
add    $0x7,%eax
mov    %eax,-0x78(%rbp)
mov    -0x78(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    149e <pbchkvect+0x38e>
cmpl   $0x1,-0x1c(%rbp)
je     1452 <pbchkvect+0x342>
mov    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%rcx
cmp    0x8(%rcx),%eax
je     1452 <pbchkvect+0x342>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
cmp    -0x2c(%rbp),%eax
jge    143e <pbchkvect+0x32e>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x7c(%rbp)
jmp    1444 <pbchkvect+0x334>
mov    -0x2c(%rbp),%eax
mov    %eax,-0x7c(%rbp)
mov    -0x7c(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    1499 <pbchkvect+0x389>
mov    -0x18(%rbp),%rax
cmpl   $0x1,0x20(%rax)
jge    1494 <pbchkvect+0x384>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    -0x20(%rbp),%ecx
add    $0x8,%ecx
cmp    %ecx,%eax
jge    1482 <pbchkvect+0x372>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x80(%rbp)
jmp    148b <pbchkvect+0x37b>
mov    -0x20(%rbp),%eax
add    $0x8,%eax
mov    %eax,-0x80(%rbp)
mov    -0x80(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    1499 <pbchkvect+0x389>
jmp    149e <pbchkvect+0x38e>
jmp    14a3 <pbchkvect+0x393>
jmp    14a8 <pbchkvect+0x398>
jmp    14ad <pbchkvect+0x39d>
jmp    14b2 <pbchkvect+0x3a2>
jmp    14b7 <pbchkvect+0x3a7>
jmp    14bc <pbchkvect+0x3ac>
cmpl   $0x0,-0x4(%rbp)
jne    1561 <pbchkvect+0x451>
mov    -0x18(%rbp),%rax
cmpl   $0x0,0x8(%rax)
jge    1511 <pbchkvect+0x401>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    -0x20(%rbp),%ecx
add    $0x2,%ecx
cmp    %ecx,%eax
jge    14f9 <pbchkvect+0x3e9>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x84(%rbp)
jmp    1505 <pbchkvect+0x3f5>
mov    -0x20(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x84(%rbp)
mov    -0x84(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x18(%rbp),%rax
cmpl   $0x0,0xc(%rax)
jge    155c <pbchkvect+0x44c>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    -0x20(%rbp),%ecx
add    $0x3,%ecx
cmp    %ecx,%eax
jge    1544 <pbchkvect+0x434>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x88(%rbp)
jmp    1550 <pbchkvect+0x440>
mov    -0x20(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x88(%rbp)
mov    -0x88(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    1778 <pbchkvect+0x668>
mov    -0x18(%rbp),%rax
cmpl   $0x1,0x8(%rax)
jge    15b1 <pbchkvect+0x4a1>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    -0x20(%rbp),%ecx
add    $0x2,%ecx
cmp    %ecx,%eax
jge    1594 <pbchkvect+0x484>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x8c(%rbp)
jmp    15a0 <pbchkvect+0x490>
mov    -0x20(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x8c(%rbp)
mov    -0x8c(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    1773 <pbchkvect+0x663>
mov    -0x18(%rbp),%rax
cmpl   $0x1,0xc(%rax)
jge    1601 <pbchkvect+0x4f1>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    -0x20(%rbp),%ecx
add    $0x3,%ecx
cmp    %ecx,%eax
jge    15e4 <pbchkvect+0x4d4>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x90(%rbp)
jmp    15f0 <pbchkvect+0x4e0>
mov    -0x20(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x90(%rbp)
mov    -0x90(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    176e <pbchkvect+0x65e>
mov    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%rcx
cmp    0x8(%rcx),%eax
jne    1661 <pbchkvect+0x551>
mov    -0x10(%rbp),%eax
add    -0x4(%rbp),%eax
sub    $0x1,%eax
mov    -0x18(%rbp),%rcx
cmp    0xc(%rcx),%eax
jle    1661 <pbchkvect+0x551>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
cmp    -0x34(%rbp),%eax
jge    1647 <pbchkvect+0x537>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x94(%rbp)
jmp    1650 <pbchkvect+0x540>
mov    -0x34(%rbp),%eax
mov    %eax,-0x94(%rbp)
mov    -0x94(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    1769 <pbchkvect+0x659>
cmpl   $0x1,-0x1c(%rbp)
jne    16cb <pbchkvect+0x5bb>
mov    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%rcx
cmp    0x8(%rcx),%eax
je     16cb <pbchkvect+0x5bb>
mov    -0xc(%rbp),%eax
add    -0x4(%rbp),%eax
sub    $0x1,%eax
mov    -0x18(%rbp),%rcx
cmp    0x8(%rcx),%eax
jle    16cb <pbchkvect+0x5bb>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
cmp    -0x30(%rbp),%eax
jge    16b1 <pbchkvect+0x5a1>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x98(%rbp)
jmp    16ba <pbchkvect+0x5aa>
mov    -0x30(%rbp),%eax
mov    %eax,-0x98(%rbp)
mov    -0x98(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    1764 <pbchkvect+0x654>
mov    -0xc(%rbp),%eax
mov    -0x18(%rbp),%rcx
cmp    0x8(%rcx),%eax
jle    1715 <pbchkvect+0x605>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
cmp    -0x30(%rbp),%eax
jge    16fb <pbchkvect+0x5eb>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x9c(%rbp)
jmp    1704 <pbchkvect+0x5f4>
mov    -0x30(%rbp),%eax
mov    %eax,-0x9c(%rbp)
mov    -0x9c(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    175f <pbchkvect+0x64f>
mov    -0x10(%rbp),%eax
mov    -0x18(%rbp),%rcx
cmp    0xc(%rcx),%eax
jle    175a <pbchkvect+0x64a>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
cmp    -0x34(%rbp),%eax
jge    1745 <pbchkvect+0x635>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0xa0(%rbp)
jmp    174e <pbchkvect+0x63e>
mov    -0x34(%rbp),%eax
mov    %eax,-0xa0(%rbp)
mov    -0xa0(%rbp),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    175f <pbchkvect+0x64f>
jmp    1764 <pbchkvect+0x654>
jmp    1769 <pbchkvect+0x659>
jmp    176e <pbchkvect+0x65e>
jmp    1773 <pbchkvect+0x663>
jmp    1778 <pbchkvect+0x668>
mov    0x58(%rbp),%rax
cmpl   $0x2710,(%rax)
jne    1b03 <pbchkvect+0x9f3>
mov    0x48(%rbp),%eax
add    0x38(%rbp),%eax
mov    -0x18(%rbp),%rcx
sub    0x18(%rcx),%eax
cltd
idivl  0x38(%rbp)
mov    %edx,-0x44(%rbp)
mov    0x50(%rbp),%eax
add    0x40(%rbp),%eax
mov    -0x18(%rbp),%rcx
sub    0x1c(%rcx),%eax
cltd
idivl  0x40(%rbp)
mov    %edx,-0x3c(%rbp)
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%eax
mov    -0x18(%rbp),%rcx
cltd
idivl  0x10(%rcx)
mov    %eax,-0x58(%rbp)
mov    -0x18(%rbp),%rax
mov    0xc(%rax),%eax
mov    -0x18(%rbp),%rcx
cltd
idivl  0x14(%rcx)
mov    %eax,-0x48(%rbp)
mov    -0x58(%rbp),%eax
cltd
idivl  0x38(%rbp)
mov    -0x18(%rbp),%rcx
imul   0x10(%rcx),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x48(%rbp),%eax
cltd
idivl  0x40(%rbp)
mov    -0x18(%rbp),%rcx
imul   0x14(%rcx),%eax
mov    %eax,-0x54(%rbp)
mov    -0x58(%rbp),%eax
cltd
idivl  0x38(%rbp)
mov    %edx,-0x28(%rbp)
mov    -0x48(%rbp),%eax
cltd
idivl  0x40(%rbp)
mov    %edx,-0x24(%rbp)
mov    -0xc(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0xc(%rbp)
mov    -0x10(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x10(%rbp)
mov    -0xc(%rbp),%eax
mov    -0x18(%rbp),%rcx
cltd
idivl  0x10(%rcx)
mov    %eax,-0x40(%rbp)
mov    -0x10(%rbp),%eax
mov    -0x18(%rbp),%rcx
cltd
idivl  0x14(%rcx)
mov    %eax,-0x38(%rbp)
mov    -0x40(%rbp),%eax
mov    -0x18(%rbp),%rcx
add    0x18(%rcx),%eax
cltd
idivl  0x38(%rbp)
mov    0x28(%rbp),%rax
mov    %edx,(%rax)
mov    -0x38(%rbp),%eax
mov    -0x18(%rbp),%rcx
add    0x1c(%rcx),%eax
cltd
idivl  0x40(%rbp)
mov    0x30(%rbp),%rax
mov    %edx,(%rax)
mov    -0x40(%rbp),%eax
cltd
idivl  0x38(%rbp)
mov    %eax,%ecx
add    $0x1,%ecx
mov    -0x18(%rbp),%rax
imul   0x10(%rax),%ecx
add    $0x1,%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x38(%rbp),%eax
cltd
idivl  0x40(%rbp)
mov    %eax,%ecx
add    $0x1,%ecx
mov    -0x18(%rbp),%rax
imul   0x14(%rax),%ecx
add    $0x1,%ecx
mov    0x20(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x44(%rbp),%eax
mov    %eax,-0xa4(%rbp)
mov    -0x40(%rbp),%eax
cltd
idivl  0x38(%rbp)
mov    -0xa4(%rbp),%eax
cmp    %edx,%eax
jl     18ed <pbchkvect+0x7dd>
mov    0x48(%rbp),%eax
mov    0x28(%rbp),%rcx
cmp    (%rcx),%eax
jne    18dc <pbchkvect+0x7cc>
mov    -0xc(%rbp),%eax
mov    -0x18(%rbp),%rcx
cltd
idivl  0x10(%rcx)
mov    0x18(%rbp),%rax
add    (%rax),%edx
mov    %edx,(%rax)
mov    -0x18(%rbp),%rax
mov    0x10(%rax),%edx
mov    0x18(%rbp),%rax
mov    (%rax),%ecx
sub    %edx,%ecx
mov    %ecx,(%rax)
mov    -0x44(%rbp),%eax
cmp    -0x28(%rbp),%eax
jge    190b <pbchkvect+0x7fb>
mov    -0x18(%rbp),%rax
mov    0x10(%rax),%eax
add    -0x4c(%rbp),%eax
mov    %eax,-0x4c(%rbp)
jmp    1931 <pbchkvect+0x821>
mov    -0x44(%rbp),%eax
cmp    -0x28(%rbp),%eax
jne    192c <pbchkvect+0x81c>
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%eax
mov    -0x18(%rbp),%rcx
cltd
idivl  0x10(%rcx)
add    -0x4c(%rbp),%edx
mov    %edx,-0x4c(%rbp)
jmp    1931 <pbchkvect+0x821>
mov    $0x1,%eax
cmp    -0x4c(%rbp),%eax
jle    194f <pbchkvect+0x83f>
mov    $0x1,%eax
mov    %eax,-0xa8(%rbp)
jmp    1958 <pbchkvect+0x848>
mov    -0x4c(%rbp),%eax
mov    %eax,-0xa8(%rbp)
mov    -0xa8(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x3c(%rbp),%eax
mov    %eax,-0xac(%rbp)
mov    -0x38(%rbp),%eax
cltd
idivl  0x40(%rbp)
mov    -0xac(%rbp),%eax
cmp    %edx,%eax
jl     19b2 <pbchkvect+0x8a2>
mov    0x50(%rbp),%eax
mov    0x30(%rbp),%rcx
cmp    (%rcx),%eax
jne    19a1 <pbchkvect+0x891>
mov    -0x10(%rbp),%eax
mov    -0x18(%rbp),%rcx
cltd
idivl  0x14(%rcx)
mov    0x20(%rbp),%rax
add    (%rax),%edx
mov    %edx,(%rax)
mov    -0x18(%rbp),%rax
mov    0x14(%rax),%edx
mov    0x20(%rbp),%rax
mov    (%rax),%ecx
sub    %edx,%ecx
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%eax
cmp    -0x24(%rbp),%eax
jge    19d0 <pbchkvect+0x8c0>
mov    -0x18(%rbp),%rax
mov    0x14(%rax),%eax
add    -0x54(%rbp),%eax
mov    %eax,-0x54(%rbp)
jmp    19f6 <pbchkvect+0x8e6>
mov    -0x3c(%rbp),%eax
cmp    -0x24(%rbp),%eax
jne    19f1 <pbchkvect+0x8e1>
mov    -0x18(%rbp),%rax
mov    0xc(%rax),%eax
mov    -0x18(%rbp),%rcx
cltd
idivl  0x14(%rcx)
add    -0x54(%rbp),%edx
mov    %edx,-0x54(%rbp)
jmp    19f6 <pbchkvect+0x8e6>
mov    $0x1,%eax
cmp    -0x54(%rbp),%eax
jle    1a14 <pbchkvect+0x904>
mov    $0x1,%eax
mov    %eax,-0xb0(%rbp)
jmp    1a1d <pbchkvect+0x90d>
mov    -0x54(%rbp),%eax
mov    %eax,-0xb0(%rbp)
mov    -0xb0(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    0x18(%rbp),%rax
mov    (%rax),%eax
cmp    -0x4c(%rbp),%eax
jge    1a46 <pbchkvect+0x936>
mov    0x18(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0xb4(%rbp)
jmp    1a4f <pbchkvect+0x93f>
mov    -0x4c(%rbp),%eax
mov    %eax,-0xb4(%rbp)
mov    -0xb4(%rbp),%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
mov    0x20(%rbp),%rax
mov    (%rax),%eax
cmp    -0x54(%rbp),%eax
jge    1a7b <pbchkvect+0x96b>
mov    0x20(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0xb8(%rbp)
jmp    1a84 <pbchkvect+0x974>
mov    -0x54(%rbp),%eax
mov    %eax,-0xb8(%rbp)
mov    -0xb8(%rbp),%ecx
mov    0x20(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x18(%rbp),%rax
mov    0x20(%rax),%eax
cmp    -0x4c(%rbp),%eax
jge    1af4 <pbchkvect+0x9e4>
mov    -0x18(%rbp),%rdi
add    $0xc,%rdi
mov    -0x18(%rbp),%rsi
add    $0x14,%rsi
mov    -0x18(%rbp),%rcx
add    $0x1c,%rcx
lea    0x50(%rbp),%rdx
lea    0x40(%rbp),%r8
mov    $0x0,%al
call   1030 <numroc_@plt>
cmp    $0x0,%eax
je     1ae5 <pbchkvect+0x9d5>
mov    -0x20(%rbp),%eax
add    $0x8,%eax
xor    %ecx,%ecx
sub    %eax,%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    1aef <pbchkvect+0x9df>
mov    0x58(%rbp),%rax
movl   $0x0,(%rax)
jmp    1afe <pbchkvect+0x9ee>
mov    0x58(%rbp),%rax
movl   $0x0,(%rax)
jmp    1b4a <pbchkvect+0xa3a>
mov    0x58(%rbp),%rax
mov    (%rax),%eax
mov    $0x64,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    1b37 <pbchkvect+0xa27>
mov    0x58(%rbp),%rcx
xor    %eax,%eax
sub    (%rcx),%eax
mov    $0x64,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    1b45 <pbchkvect+0xa35>
mov    0x58(%rbp),%rax
xor    %ecx,%ecx
sub    (%rax),%ecx
mov    0x58(%rbp),%rax
mov    %ecx,(%rax)
jmp    1b4a <pbchkvect+0xa3a>
add    $0xc0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<pbchkvect>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x28,%rsp
mov    %edx,%r10d
mov    0xa8(%rsp),%r15
mov    0x60(%rsp),%eax
mov    (%r15),%ebp
mov    $0x2710,%edx
test   %ebp,%ebp
jns    1147 <pbchkvect+0x37>
cmp    $0xffffff9b,%ebp
ja     1144 <pbchkvect+0x34>
neg    %ebp
mov    %ebp,%edx
jmp    1147 <pbchkvect+0x37>
imul   $0xffffff9c,%ebp,%edx
mov    0xa0(%rsp),%r13d
mov    0x90(%rsp),%r14d
mov    %edx,(%r15)
imul   $0x64,%eax,%ebp
cmpl   $0x1,(%r8)
je     116e <pbchkvect+0x5e>
lea    0x1(%rbp),%eax
cmp    %eax,%edx
cmovge %eax,%edx
mov    %edx,(%r15)
mov    0x88(%rsp),%ebx
lea    -0xc8(%rbp),%r12d
lea    -0x64(%rbp),%r11d
test   %edi,%edi
js     11d2 <pbchkvect+0xc2>
mov    %r12d,%esi
test   %r10d,%r10d
jle    11f6 <pbchkvect+0xe6>
mov    %r11d,%esi
test   %ecx,%ecx
jle    11f6 <pbchkvect+0xe6>
cmpl   $0x0,0x10(%r8)
jle    11df <pbchkvect+0xcf>
cmpl   $0x0,0x14(%r8)
jle    11e4 <pbchkvect+0xd4>
mov    0x18(%r8),%eax
test   %eax,%eax
js     11e9 <pbchkvect+0xd9>
cmp    %ebx,%eax
jge    11e9 <pbchkvect+0xd9>
mov    0x1c(%r8),%eax
test   %eax,%eax
js     11ee <pbchkvect+0xde>
cmp    %r14d,%eax
jge    11ee <pbchkvect+0xde>
cmp    $0x1,%r9d
je     11c6 <pbchkvect+0xb6>
cmp    %r9d,0x8(%r8)
jne    11f3 <pbchkvect+0xe3>
cmpl   $0x0,0x20(%r8)
jg     11fe <pbchkvect+0xee>
lea    0x9(%rbp),%esi
jmp    11f6 <pbchkvect+0xe6>
imul   $0x64,%esi,%eax
cmp    %eax,%edx
cmovge %eax,%edx
mov    %edx,(%r15)
jmp    1202 <pbchkvect+0xf2>
lea    0x5(%rbp),%esi
jmp    11f6 <pbchkvect+0xe6>
lea    0x6(%rbp),%esi
jmp    11f6 <pbchkvect+0xe6>
lea    0x7(%rbp),%esi
jmp    11f6 <pbchkvect+0xe6>
lea    0x8(%rbp),%esi
jmp    11f6 <pbchkvect+0xe6>
lea    0x64(%rbp),%esi
cmp    %esi,%edx
cmovge %esi,%edx
mov    %edx,(%r15)
test   %edi,%edi
je     125a <pbchkvect+0x14a>
mov    0x8(%r8),%eax
test   %eax,%eax
jle    1253 <pbchkvect+0x143>
mov    0xc(%r8),%esi
test   %esi,%esi
jle    127e <pbchkvect+0x16e>
cmp    %r9d,%eax
jne    122c <pbchkvect+0x11c>
lea    (%rdi,%rcx,1),%ebx
add    $0xffffffff,%ebx
cmp    %esi,%ebx
mov    0x88(%rsp),%ebx
jg     14d8 <pbchkvect+0x3c8>
cmp    $0x1,%r9d
jne    1241 <pbchkvect+0x131>
cmp    $0x1,%eax
je     1241 <pbchkvect+0x131>
add    %r10d,%edi
add    $0xffffffff,%edi
cmp    %eax,%edi
jg     124a <pbchkvect+0x13a>
cmp    %r10d,%eax
jge    14d0 <pbchkvect+0x3c0>
cmp    %r12d,%edx
cmovge %r12d,%edx
jmp    1286 <pbchkvect+0x176>
mov    %ebp,%eax
or     $0x3,%eax
jmp    1281 <pbchkvect+0x171>
cmpl   $0x0,0x8(%r8)
js     126a <pbchkvect+0x15a>
cmpl   $0x0,0xc(%r8)
jns    1289 <pbchkvect+0x179>
jmp    127e <pbchkvect+0x16e>
mov    %ebp,%eax
or     $0x3,%eax
cmp    %eax,%edx
cmovge %eax,%edx
mov    %edx,(%r15)
cmpl   $0x0,0xc(%r8)
jns    1289 <pbchkvect+0x179>
lea    0x4(%rbp),%eax
cmp    %eax,%edx
cmovge %eax,%edx
mov    %edx,(%r15)
cmp    $0x2710,%edx
jne    139f <pbchkvect+0x28f>
mov    %rbp,0x20(%rsp)
mov    0x98(%rsp),%eax
add    %ebx,%eax
mov    0x18(%r8),%esi
sub    %esi,%eax
cltd
idiv   %ebx
mov    %edx,%r9d
mov    %r13,0x18(%rsp)
lea    (%r14,%r13,1),%eax
sub    0x1c(%r8),%eax
cltd
idiv   %r14d
mov    %edx,0x8(%rsp)
mov    0x10(%r8),%r12d
mov    0x8(%r8),%eax
mov    0xc(%r8),%edi
cltd
idiv   %r12d
mov    %eax,%ebp
mov    0x14(%r8),%r11d
mov    %edi,%eax
cltd
idiv   %r11d
mov    %r10,%r15
mov    %rbx,%r10
mov    %eax,%ebx
mov    %ebp,%eax
cltd
idiv   %r10d
mov    %edx,0xc(%rsp)
mov    %eax,%edi
mov    %ebx,%eax
cltd
idiv   %r14d
mov    %eax,%r13d
mov    %edx,0x4(%rsp)
add    $0xffffffff,%r15d
add    $0xffffffff,%ecx
mov    %r15d,%eax
cltd
idiv   %r12d
mov    %eax,%ebx
mov    %rcx,0x10(%rsp)
mov    %ecx,%eax
cltd
mov    %r11d,(%rsp)
idiv   %r11d
mov    %eax,%ebp
add    %ebx,%esi
mov    %esi,%eax
cltd
mov    0x78(%rsp),%r11
idiv   %r10d
mov    %edx,(%r11)
mov    0x1c(%r8),%eax
add    %ebp,%eax
cltd
idiv   %r14d
mov    0x80(%rsp),%rax
mov    %edx,(%rax)
mov    %ebx,%eax
cltd
idiv   %r10d
mov    %edx,%esi
add    $0x1,%eax
imul   0x10(%r8),%eax
add    $0x1,%eax
mov    0x68(%rsp),%rcx
mov    %eax,(%rcx)
mov    %ebp,%eax
cltd
idiv   %r14d
mov    %edx,%r10d
mov    0xc(%rsp),%r14d
add    $0x1,%eax
imul   0x14(%r8),%eax
add    $0x1,%eax
mov    0x70(%rsp),%rbx
mov    %eax,(%rbx)
cmp    %esi,%r9d
jl     13df <pbchkvect+0x2cf>
mov    0x98(%rsp),%edx
cmp    %edx,(%r11)
jne    13d7 <pbchkvect+0x2c7>
mov    %r15d,%eax
cltd
idivl  0x10(%r8)
add    (%rcx),%edx
mov    %edx,(%rcx)
jmp    13d9 <pbchkvect+0x2c9>
imul   $0xc28f5c29,%edx,%eax
add    $0x51eb850,%eax
ror    $0x2,%eax
cmp    $0x28f5c28,%eax
jbe    13bb <pbchkvect+0x2ab>
neg    %edx
jmp    14be <pbchkvect+0x3ae>
movslq %edx,%rax
imul   $0xffffffffae147ae1,%rax,%rdx
mov    %rdx,%rax
shr    $0x3f,%rax
sar    $0x25,%rdx
add    %eax,%edx
jmp    14be <pbchkvect+0x3ae>
mov    (%rcx),%edx
sub    0x10(%r8),%edx
mov    %edx,(%rcx)
imul   %r12d,%edi
mov    %rcx,%r11
cmp    %r14d,%r9d
jge    13f1 <pbchkvect+0x2e1>
add    0x10(%r8),%edi
jmp    13fe <pbchkvect+0x2ee>
jne    13fe <pbchkvect+0x2ee>
mov    0x8(%r8),%eax
cltd
idivl  0x10(%r8)
add    %edx,%edi
mov    0xa8(%rsp),%r15
mov    0x8(%rsp),%ebp
mov    0x4(%rsp),%r14d
mov    (%rsp),%r9d
lea    0x14(%r8),%rsi
test   %edi,%edi
mov    $0x1,%ecx
cmovg  %edi,%ecx
cmp    %r10d,%ebp
jl     144b <pbchkvect+0x33b>
mov    0x18(%rsp),%rax
mov    0x80(%rsp),%rdx
cmp    %eax,(%rdx)
jne    1445 <pbchkvect+0x335>
mov    0x10(%rsp),%rax
cltd
idivl  (%rsi)
add    (%rbx),%edx
mov    %edx,(%rbx)
jmp    1447 <pbchkvect+0x337>
mov    (%rbx),%edx
sub    (%rsi),%edx
mov    %edx,(%rbx)
lea    0xc(%r8),%rdi
imul   %r9d,%r13d
cmp    %r14d,%ebp
jge    145d <pbchkvect+0x34d>
add    (%rsi),%r13d
jmp    1467 <pbchkvect+0x357>
jne    1467 <pbchkvect+0x357>
mov    (%rdi),%eax
cltd
idivl  (%rsi)
add    %edx,%r13d
test   %r13d,%r13d
mov    $0x1,%eax
cmovg  %r13d,%eax
mov    (%r11),%edx
cmp    %ecx,%edx
cmovge %ecx,%edx
mov    %edx,(%r11)
mov    (%rbx),%edx
cmp    %eax,%edx
cmovl  %edx,%eax
mov    %eax,(%rbx)
xor    %edx,%edx
cmp    %ecx,0x20(%r8)
jge    14be <pbchkvect+0x3ae>
add    $0x1c,%r8
lea    0xa0(%rsp),%rdx
lea    0x90(%rsp),%rax
mov    %r8,%rcx
mov    %rax,%r8
xor    %eax,%eax
call   1030 <numroc_@plt>
mov    $0xfffffff7,%edx
sub    0x20(%rsp),%edx
test   %eax,%eax
cmove  %eax,%edx
mov    %edx,(%r15)
add    $0x28,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
cmp    %ecx,%esi
jge    1289 <pbchkvect+0x179>
cmp    %r11d,%edx
cmovge %r11d,%edx
jmp    1286 <pbchkvect+0x176>

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

LLVM IR (-O2):
define void @pbchkvect(i32 %0, i32 %1, i32 %2, i32 %3, i32* %4, i32 %5, i32 %6, i32* nocapture %7, i32* nocapture %8, i32* nocapture %9, i32* nocapture %10, i32 %11, i32 %12, i32 %13, i32 %14, i32* %15) {
%17 = alloca i32
%18 = alloca i32
store i32 %12, i32* %17
store i32 %14, i32* %18
%19 = load i32, i32* %15
%20 = icmp sgt i32 %19, -1
br i1 %20, label %27, label %21
21: ; preds = %16
%22 = icmp ult i32 %19, -100
br i1 %22, label %23, label %25
23: ; preds = %21
%24 = sub nsw i32 0, %19
br label %27
25: ; preds = %21
%26 = mul nsw i32 %19, -100
br label %27
27: ; preds = %16, %23, %25
%28 = phi i32 [ %24, %23 ], [ %26, %25 ], [ 10000, %16 ]
store i32 %28, i32* %15
%29 = mul nsw i32 %1, 100
%30 = mul i32 %6, 100
%31 = add i32 %30, -200
%32 = add i32 %30, -100
%33 = add i32 %30, 100
%34 = or i32 %30, 1
%35 = load i32, i32* %4
%36 = icmp eq i32 %35, 1
br i1 %36, label %40, label %37
37: ; preds = %27
%38 = icmp slt i32 %28, %34
%39 = select i1 %38, i32 %28, i32 %34
store i32 %39, i32* %15
br label %40
40: ; preds = %37, %27
%41 = phi i32 [ %39, %37 ], [ %28, %27 ]
%42 = icmp slt i32 %0, 0
br i1 %42, label %43, label %46
43: ; preds = %40
%44 = icmp slt i32 %41, %29
%45 = select i1 %44, i32 %41, i32 %29
store i32 %45, i32* %15
br label %114
46: ; preds = %40
%47 = icmp slt i32 %2, 1
br i1 %47, label %90, label %48
48: ; preds = %46
%49 = icmp slt i32 %3, 1
br i1 %49, label %90, label %50
50: ; preds = %48
%51 = getelementptr inbounds i32, i32* %4, i64 4
%52 = load i32, i32* %51
%53 = icmp slt i32 %52, 1
br i1 %53, label %54, label %56
54: ; preds = %50
%55 = add i32 %30, 5
br label %90
56: ; preds = %50
%57 = getelementptr inbounds i32, i32* %4, i64 5
%58 = load i32, i32* %57
%59 = icmp slt i32 %58, 1
br i1 %59, label %60, label %62
60: ; preds = %56
%61 = add i32 %30, 6
br label %90
62: ; preds = %56
%63 = getelementptr inbounds i32, i32* %4, i64 6
%64 = load i32, i32* %63
%65 = icmp sgt i32 %64, -1
%66 = icmp slt i32 %64, %11
%67 = and i1 %65, %66
br i1 %67, label %70, label %68
68: ; preds = %62
%69 = add i32 %30, 7
br label %90
70: ; preds = %62
%71 = getelementptr inbounds i32, i32* %4, i64 7
%72 = load i32, i32* %71
%73 = icmp sgt i32 %72, -1
%74 = icmp slt i32 %72, %12
%75 = and i1 %73, %74
br i1 %75, label %78, label %76
76: ; preds = %70
%77 = add i32 %30, 8
br label %90
78: ; preds = %70
%79 = icmp eq i32 %5, 1
br i1 %79, label %84, label %80
80: ; preds = %78
%81 = getelementptr inbounds i32, i32* %4, i64 2
%82 = load i32, i32* %81
%83 = icmp eq i32 %82, %5
br i1 %83, label %84, label %90
84: ; preds = %80, %78
%85 = getelementptr inbounds i32, i32* %4, i64 8
%86 = load i32, i32* %85
%87 = icmp slt i32 %86, 1
br i1 %87, label %88, label %94
88: ; preds = %84
%89 = add i32 %30, 9
br label %90
90: ; preds = %80, %48, %46, %60, %76, %88, %68, %54
%91 = phi i32 [ %61, %60 ], [ %77, %76 ], [ %89, %88 ], [ %69, %68 ], [ %55, %54 ], [ %31, %46 ], [ %32, %48 ], [ %33, %80 ]
%92 = icmp slt i32 %41, %91
%93 = select i1 %92, i32 %41, i32 %91
store i32 %93, i32* %15
br label %94
94: ; preds = %90, %84
%95 = phi i32 [ %41, %84 ], [ %93, %90 ]
%96 = icmp eq i32 %0, 0
br i1 %96, label %97, label %114
97: ; preds = %94
%98 = getelementptr inbounds i32, i32* %4, i64 2
%99 = load i32, i32* %98
%100 = icmp slt i32 %99, 0
br i1 %100, label %101, label %105
101: ; preds = %97
%102 = or i32 %30, 3
%103 = icmp slt i32 %95, %102
%104 = select i1 %103, i32 %95, i32 %102
store i32 %104, i32* %15
br label %105
105: ; preds = %101, %97
%106 = phi i32 [ %104, %101 ], [ %95, %97 ]
%107 = getelementptr inbounds i32, i32* %4, i64 3
%108 = load i32, i32* %107
%109 = icmp slt i32 %108, 0
br i1 %109, label %110, label %163
110: ; preds = %105
%111 = add i32 %30, 4
%112 = icmp slt i32 %106, %111
%113 = select i1 %112, i32 %106, i32 %111
br label %161
114: ; preds = %43, %94
%115 = phi i32 [ %45, %43 ], [ %95, %94 ]
%116 = getelementptr inbounds i32, i32* %4, i64 2
%117 = load i32, i32* %116
%118 = icmp slt i32 %117, 1
br i1 %118, label %119, label %123
119: ; preds = %114
%120 = or i32 %30, 3
%121 = icmp slt i32 %115, %120
%122 = select i1 %121, i32 %115, i32 %120
br label %161
123: ; preds = %114
%124 = getelementptr inbounds i32, i32* %4, i64 3
%125 = load i32, i32* %124
%126 = icmp slt i32 %125, 1
br i1 %126, label %127, label %131
127: ; preds = %123
%128 = add i32 %30, 4
%129 = icmp slt i32 %115, %128
%130 = select i1 %129, i32 %115, i32 %128
br label %161
131: ; preds = %123
%132 = icmp eq i32 %117, %5
br i1 %132, label %133, label %140
133: ; preds = %131
%134 = add i32 %0, -1
%135 = add i32 %134, %3
%136 = icmp sgt i32 %135, %125
br i1 %136, label %137, label %140
137: ; preds = %133
%138 = icmp slt i32 %115, %32
%139 = select i1 %138, i32 %115, i32 %32
br label %161
140: ; preds = %133, %131
%141 = icmp ne i32 %5, 1
%142 = icmp eq i32 %117, 1
%143 = select i1 %141, i1 true, i1 %142
br i1 %143, label %151, label %144
144: ; preds = %140
%145 = add i32 %0, -1
%146 = add i32 %145, %2
%147 = icmp sgt i32 %146, %117
br i1 %147, label %148, label %151
148: ; preds = %144
%149 = icmp slt i32 %115, %31
%150 = select i1 %149, i32 %115, i32 %31
br label %161
151: ; preds = %144, %140
%152 = icmp slt i32 %117, %2
br i1 %152, label %153, label %156
153: ; preds = %151
%154 = icmp slt i32 %115, %31
%155 = select i1 %154, i32 %115, i32 %31
br label %161
156: ; preds = %151
%157 = icmp slt i32 %125, %3
br i1 %157, label %158, label %163
158: ; preds = %156
%159 = icmp slt i32 %115, %32
%160 = select i1 %159, i32 %115, i32 %32
br label %161
161: ; preds = %110, %127, %148, %158, %153, %137, %119
%162 = phi i32 [ %122, %119 ], [ %139, %137 ], [ %155, %153 ], [ %160, %158 ], [ %150, %148 ], [ %130, %127 ], [ %113, %110 ]
store i32 %162, i32* %15
br label %163
163: ; preds = %161, %156, %105
%164 = phi i32 [ %106, %105 ], [ %115, %156 ], [ %162, %161 ]
%165 = icmp eq i32 %164, 10000
br i1 %165, label %166, label %290
166: ; preds = %163
%167 = add nsw i32 %13, %11
%168 = getelementptr inbounds i32, i32* %4, i64 6
%169 = load i32, i32* %168
%170 = sub i32 %167, %169
%171 = srem i32 %170, %11
%172 = add nsw i32 %14, %12
%173 = getelementptr inbounds i32, i32* %4, i64 7
%174 = load i32, i32* %173
%175 = sub i32 %172, %174
%176 = srem i32 %175, %12
%177 = getelementptr inbounds i32, i32* %4, i64 2
%178 = load i32, i32* %177
%179 = getelementptr inbounds i32, i32* %4, i64 4
%180 = load i32, i32* %179
%181 = sdiv i32 %178, %180
%182 = getelementptr inbounds i32, i32* %4, i64 3
%183 = load i32, i32* %182
%184 = getelementptr inbounds i32, i32* %4, i64 5
%185 = load i32, i32* %184
%186 = sdiv i32 %183, %185
%187 = sdiv i32 %181, %11
%188 = mul nsw i32 %187, %180
%189 = sdiv i32 %186, %12
%190 = mul nsw i32 %189, %185
%191 = srem i32 %181, %11
%192 = srem i32 %186, %12
%193 = add nsw i32 %2, -1
%194 = add nsw i32 %3, -1
%195 = sdiv i32 %193, %180
%196 = sdiv i32 %194, %185
%197 = add nsw i32 %195, %169
%198 = srem i32 %197, %11
store i32 %198, i32* %9
%199 = load i32, i32* %173
%200 = add nsw i32 %199, %196
%201 = srem i32 %200, %12
store i32 %201, i32* %10
%202 = sdiv i32 %195, %11
%203 = add nsw i32 %202, 1
%204 = load i32, i32* %179
%205 = mul nsw i32 %203, %204
%206 = add nsw i32 %205, 1
store i32 %206, i32* %7
%207 = sdiv i32 %196, %12
%208 = srem i32 %196, %12
%209 = add nsw i32 %207, 1
%210 = load i32, i32* %184
%211 = mul nsw i32 %209, %210
%212 = add nsw i32 %211, 1
store i32 %212, i32* %8
%213 = srem i32 %195, %11
%214 = icmp slt i32 %171, %213
br i1 %214, label %229, label %215
215: ; preds = %166
%216 = load i32, i32* %9
%217 = icmp eq i32 %216, %13
br i1 %217, label %220, label %218
218: ; preds = %215
%219 = load i32, i32* %7
br label %225
220: ; preds = %215
%221 = load i32, i32* %179
%222 = srem i32 %193, %221
%223 = load i32, i32* %7
%224 = add nsw i32 %223, %222
store i32 %224, i32* %7
br label %225
225: ; preds = %218, %220
%226 = phi i32 [ %219, %218 ], [ %224, %220 ]
%227 = load i32, i32* %179
%228 = sub nsw i32 %226, %227
store i32 %228, i32* %7
br label %229
229: ; preds = %225, %166
%230 = icmp slt i32 %171, %191
br i1 %230, label %231, label %234
231: ; preds = %229
%232 = load i32, i32* %179
%233 = add nsw i32 %232, %188
br label %241
234: ; preds = %229
%235 = icmp eq i32 %171, %191
br i1 %235, label %236, label %241
236: ; preds = %234
%237 = load i32, i32* %177
%238 = load i32, i32* %179
%239 = srem i32 %237, %238
%240 = add nsw i32 %239, %188
br label %241
241: ; preds = %234, %236, %231
%242 = phi i32 [ %233, %231 ], [ %240, %236 ], [ %188, %234 ]
%243 = icmp sgt i32 %242, 1
%244 = select i1 %243, i32 %242, i32 1
%245 = icmp slt i32 %176, %208
br i1 %245, label %260, label %246
246: ; preds = %241
%247 = load i32, i32* %10
%248 = icmp eq i32 %247, %14
br i1 %248, label %251, label %249
249: ; preds = %246
%250 = load i32, i32* %8
br label %256
251: ; preds = %246
%252 = load i32, i32* %184
%253 = srem i32 %194, %252
%254 = load i32, i32* %8
%255 = add nsw i32 %254, %253
store i32 %255, i32* %8
br label %256
256: ; preds = %249, %251
%257 = phi i32 [ %250, %249 ], [ %255, %251 ]
%258 = load i32, i32* %184
%259 = sub nsw i32 %257, %258
store i32 %259, i32* %8
br label %260
260: ; preds = %256, %241
%261 = icmp slt i32 %176, %192
br i1 %261, label %262, label %265
262: ; preds = %260
%263 = load i32, i32* %184
%264 = add nsw i32 %263, %190
br label %272
265: ; preds = %260
%266 = icmp eq i32 %176, %192
br i1 %266, label %267, label %272
267: ; preds = %265
%268 = load i32, i32* %182
%269 = load i32, i32* %184
%270 = srem i32 %268, %269
%271 = add nsw i32 %270, %190
br label %272
272: ; preds = %265, %267, %262
%273 = phi i32 [ %264, %262 ], [ %271, %267 ], [ %190, %265 ]
%274 = icmp sgt i32 %273, 1
%275 = select i1 %274, i32 %273, i32 1
%276 = load i32, i32* %7
%277 = icmp slt i32 %276, %244
%278 = select i1 %277, i32 %276, i32 %244
store i32 %278, i32* %7
%279 = load i32, i32* %8
%280 = icmp slt i32 %279, %275
%281 = select i1 %280, i32 %279, i32 %275
store i32 %281, i32* %8
%282 = getelementptr inbounds i32, i32* %4, i64 8
%283 = load i32, i32* %282
%284 = icmp slt i32 %283, %244
br i1 %284, label %285, label %297
285: ; preds = %272
%286 = call i32 (i32*, i32*, i32*, i32*, i32*, ...) bitcast (i32 (...)* @numroc_ to i32 (i32*, i32*, i32*, i32*, i32*, ...)*)(i32* %182, i32* %184, i32* %18, i32* %173, i32* %17)
%287 = icmp eq i32 %286, 0
%288 = sub i32 -9, %30
%289 = select i1 %287, i32 0, i32 %288
br label %297
290: ; preds = %163
%291 = srem i32 %164, 100
%292 = icmp eq i32 %291, 0
br i1 %292, label %293, label %295
293: ; preds = %290
%294 = sdiv i32 %164, -100
br label %297
295: ; preds = %290
%296 = sub nsw i32 0, %164
br label %297
297: ; preds = %285, %272, %293, %295
%298 = phi i32 [ %294, %293 ], [ %296, %295 ], [ 0, %272 ], [ %289, %285 ]
store i32 %298, i32* %15
ret void
}