int validity(int grid[9][9]) {
  int x, y, testx, testy, startx, starty, loop;
  for (y = 0; y < 9; ++y)
    for (x = 0; x < 9; ++x)
      for (testx = 8; testx > x; --testx)
        if ((testx != x) && (grid[testx][y] == grid[x][y]) &&
            (grid[testx][y] != 0)) {
          return 0;
        }
  for (y = 0; y < 9; ++y)
    for (x = 0; x < 9; ++x)
      for (testy = 8; testy > y; --testy)
        if ((testy != y) && (grid[x][testy] == grid[x][y]) &&
            (grid[x][testy] != 0)) {
          return 0;
        }
  for (y = 0; y < 9; ++y)
    for (x = 0; x < 9; ++x) {
      if ((x >= 0) && (x <= 2))
        startx = 0;
      else if ((x >= 3) && (x <= 5))
        startx = 3;
      else if ((x >= 6) && (x <= 8))
        startx = 6;
      if ((y >= 0) && (y <= 2))
        starty = 0;
      else if ((y >= 3) && (y <= 5))
        starty = 3;
      else if ((y >= 6) && (y <= 8))
        starty = 6;
      for (testy = 0; testy < 3; ++testy)
        for (testx = 0; testx < 3; ++testx)
          if (!(((starty + testy) == y) && ((startx + testx) == x)) &&
              (grid[startx + testx][starty + testy] == grid[x][y]) &&
              (grid[startx + testx][starty + testy] != 0)) {
            return 0;
          }
    }
  return 1;
}


x86 assembly (clang, -O0):
<validity>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x9,-0x18(%rbp)
jge    11dd <validity+0xdd>
movl   $0x0,-0x14(%rbp)
cmpl   $0x9,-0x14(%rbp)
jge    11ca <validity+0xca>
movl   $0x8,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    11b7 <validity+0xb7>
mov    -0x1c(%rbp),%eax
cmp    -0x14(%rbp),%eax
je     11a4 <validity+0xa4>
mov    -0x10(%rbp),%rax
movslq -0x1c(%rbp),%rcx
imul   $0x24,%rcx,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    -0x10(%rbp),%rcx
movslq -0x14(%rbp),%rdx
imul   $0x24,%rdx,%rdx
add    %rdx,%rcx
movslq -0x18(%rbp),%rdx
cmp    (%rcx,%rdx,4),%eax
jne    11a4 <validity+0xa4>
mov    -0x10(%rbp),%rax
movslq -0x1c(%rbp),%rcx
imul   $0x24,%rcx,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
cmpl   $0x0,(%rax,%rcx,4)
je     11a4 <validity+0xa4>
movl   $0x0,-0x4(%rbp)
jmp    14a0 <validity+0x3a0>
jmp    11a9 <validity+0xa9>
mov    -0x1c(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x1c(%rbp)
jmp    1131 <validity+0x31>
jmp    11bc <validity+0xbc>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1120 <validity+0x20>
jmp    11cf <validity+0xcf>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    110f <validity+0xf>
movl   $0x0,-0x18(%rbp)
cmpl   $0x9,-0x18(%rbp)
jge    12b2 <validity+0x1b2>
movl   $0x0,-0x14(%rbp)
cmpl   $0x9,-0x14(%rbp)
jge    129f <validity+0x19f>
movl   $0x8,-0x20(%rbp)
mov    -0x20(%rbp),%eax
cmp    -0x18(%rbp),%eax
jle    128c <validity+0x18c>
mov    -0x20(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     1279 <validity+0x179>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
imul   $0x24,%rcx,%rcx
add    %rcx,%rax
movslq -0x20(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    -0x10(%rbp),%rcx
movslq -0x14(%rbp),%rdx
imul   $0x24,%rdx,%rdx
add    %rdx,%rcx
movslq -0x18(%rbp),%rdx
cmp    (%rcx,%rdx,4),%eax
jne    1279 <validity+0x179>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
imul   $0x24,%rcx,%rcx
add    %rcx,%rax
movslq -0x20(%rbp),%rcx
cmpl   $0x0,(%rax,%rcx,4)
je     1279 <validity+0x179>
movl   $0x0,-0x4(%rbp)
jmp    14a0 <validity+0x3a0>
jmp    127e <validity+0x17e>
mov    -0x20(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x20(%rbp)
jmp    1206 <validity+0x106>
jmp    1291 <validity+0x191>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    11f5 <validity+0xf5>
jmp    12a4 <validity+0x1a4>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    11e4 <validity+0xe4>
movl   $0x0,-0x18(%rbp)
cmpl   $0x9,-0x18(%rbp)
jge    1499 <validity+0x399>
movl   $0x0,-0x14(%rbp)
cmpl   $0x9,-0x14(%rbp)
jge    1486 <validity+0x386>
cmpl   $0x0,-0x14(%rbp)
jl     12f4 <validity+0x1f4>
cmpl   $0x2,-0x14(%rbp)
jg     12f4 <validity+0x1f4>
movl   $0x0,-0x24(%rbp)
jmp    1339 <validity+0x239>
cmpl   $0x3,-0x14(%rbp)
jl     1314 <validity+0x214>
cmpl   $0x5,-0x14(%rbp)
jg     1314 <validity+0x214>
movl   $0x3,-0x24(%rbp)
jmp    1334 <validity+0x234>
cmpl   $0x6,-0x14(%rbp)
jl     132f <validity+0x22f>
cmpl   $0x8,-0x14(%rbp)
jg     132f <validity+0x22f>
movl   $0x6,-0x24(%rbp)
jmp    1334 <validity+0x234>
jmp    1339 <validity+0x239>
cmpl   $0x0,-0x18(%rbp)
jl     1359 <validity+0x259>
cmpl   $0x2,-0x18(%rbp)
jg     1359 <validity+0x259>
movl   $0x0,-0x28(%rbp)
jmp    139e <validity+0x29e>
cmpl   $0x3,-0x18(%rbp)
jl     1379 <validity+0x279>
cmpl   $0x5,-0x18(%rbp)
jg     1379 <validity+0x279>
movl   $0x3,-0x28(%rbp)
jmp    1399 <validity+0x299>
cmpl   $0x6,-0x18(%rbp)
jl     1394 <validity+0x294>
cmpl   $0x8,-0x18(%rbp)
jg     1394 <validity+0x294>
movl   $0x6,-0x28(%rbp)
jmp    1399 <validity+0x299>
jmp    139e <validity+0x29e>
movl   $0x0,-0x20(%rbp)
cmpl   $0x3,-0x20(%rbp)
jge    1473 <validity+0x373>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x3,-0x1c(%rbp)
jge    1460 <validity+0x360>
mov    -0x28(%rbp),%eax
add    -0x20(%rbp),%eax
cmp    -0x18(%rbp),%eax
jne    13de <validity+0x2de>
mov    -0x24(%rbp),%eax
add    -0x1c(%rbp),%eax
cmp    -0x14(%rbp),%eax
je     144d <validity+0x34d>
mov    -0x10(%rbp),%rax
mov    -0x24(%rbp),%ecx
add    -0x1c(%rbp),%ecx
movslq %ecx,%rcx
imul   $0x24,%rcx,%rcx
add    %rcx,%rax
mov    -0x28(%rbp),%ecx
add    -0x20(%rbp),%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
mov    -0x10(%rbp),%rcx
movslq -0x14(%rbp),%rdx
imul   $0x24,%rdx,%rdx
add    %rdx,%rcx
movslq -0x18(%rbp),%rdx
cmp    (%rcx,%rdx,4),%eax
jne    144d <validity+0x34d>
mov    -0x10(%rbp),%rax
mov    -0x24(%rbp),%ecx
add    -0x1c(%rbp),%ecx
movslq %ecx,%rcx
imul   $0x24,%rcx,%rcx
add    %rcx,%rax
mov    -0x28(%rbp),%ecx
add    -0x20(%rbp),%ecx
movslq %ecx,%rcx
cmpl   $0x0,(%rax,%rcx,4)
je     144d <validity+0x34d>
movl   $0x0,-0x4(%rbp)
jmp    14a0 <validity+0x3a0>
jmp    1452 <validity+0x352>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    13b6 <validity+0x2b6>
jmp    1465 <validity+0x365>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    13a5 <validity+0x2a5>
jmp    1478 <validity+0x378>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    12ca <validity+0x1ca>
jmp    148b <validity+0x38b>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    12b9 <validity+0x1b9>
movl   $0x1,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<validity>:
push   %rbp
push   %r15
push   %r14
push   %rbx
lea    0x120(%rdi),%rcx
mov    $0xfffffffffffffff7,%rdx
xor    %eax,%eax
mov    -0xfc(%rcx,%rdx,4),%esi
mov    0x24(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     112d <validity+0x2d>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    (%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     113c <validity+0x3c>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x24(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     114c <validity+0x4c>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x48(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     115c <validity+0x5c>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x6c(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     116c <validity+0x6c>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x90(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     117f <validity+0x7f>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0xb4(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     1192 <validity+0x92>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0xd8(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     11a5 <validity+0xa5>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0xd8(%rcx,%rdx,4),%esi
mov    0x24(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     11bc <validity+0xbc>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    (%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     11cb <validity+0xcb>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x24(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     11db <validity+0xdb>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x48(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     11eb <validity+0xeb>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x6c(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     11fb <validity+0xfb>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x90(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     120e <validity+0x10e>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0xb4(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     1221 <validity+0x121>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0xb4(%rcx,%rdx,4),%esi
mov    0x24(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     1238 <validity+0x138>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    (%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     1247 <validity+0x147>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x24(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     1257 <validity+0x157>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x48(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     1267 <validity+0x167>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x6c(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     1277 <validity+0x177>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x90(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     128a <validity+0x18a>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x90(%rcx,%rdx,4),%esi
mov    0x24(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     12a1 <validity+0x1a1>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    (%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     12b0 <validity+0x1b0>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x24(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     12c0 <validity+0x1c0>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x48(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     12d0 <validity+0x1d0>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x6c(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     12e0 <validity+0x1e0>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x6c(%rcx,%rdx,4),%esi
mov    0x24(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     12f4 <validity+0x1f4>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    (%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     1303 <validity+0x203>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x24(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     1313 <validity+0x213>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x48(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     1323 <validity+0x223>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x48(%rcx,%rdx,4),%esi
mov    0x24(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     1337 <validity+0x237>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    (%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     1346 <validity+0x246>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x24(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     1356 <validity+0x256>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    -0x24(%rcx,%rdx,4),%esi
mov    0x24(%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     136a <validity+0x26a>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    (%rcx,%rdx,4),%ebx
test   %ebx,%ebx
je     1379 <validity+0x279>
cmp    %esi,%ebx
je     1c70 <validity+0xb70>
mov    0x24(%rcx,%rdx,4),%esi
test   %esi,%esi
je     138a <validity+0x28a>
cmp    (%rcx,%rdx,4),%esi
je     1c70 <validity+0xb70>
inc    %rdx
jne    1116 <validity+0x16>
xor    %ecx,%ecx
xor    %eax,%eax
jmp    13b0 <validity+0x2b0>
test   %rcx,%rcx
je     1a9f <validity+0x99f>
add    $0x1,%rcx
cmp    $0x9,%rcx
je     1aba <validity+0x9ba>
cmp    $0x7,%rcx
ja     13a2 <validity+0x2a2>
mov    (%rdi,%rcx,4),%edx
mov    0x20(%rdi),%esi
test   %esi,%esi
je     13c8 <validity+0x2c8>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x6,%rcx
ja     145e <validity+0x35e>
mov    0x1c(%rdi),%esi
test   %esi,%esi
je     13e1 <validity+0x2e1>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x5,%rcx
ja     145e <validity+0x35e>
mov    0x18(%rdi),%esi
test   %esi,%esi
je     13f6 <validity+0x2f6>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x4,%rcx
ja     145e <validity+0x35e>
mov    0x14(%rdi),%esi
test   %esi,%esi
je     140b <validity+0x30b>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x3,%rcx
ja     145e <validity+0x35e>
mov    0x10(%rdi),%esi
test   %esi,%esi
je     1420 <validity+0x320>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x2,%rcx
ja     145e <validity+0x35e>
mov    0xc(%rdi),%esi
test   %esi,%esi
je     1435 <validity+0x335>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x1,%rcx
ja     145e <validity+0x35e>
mov    0x8(%rdi),%esi
test   %esi,%esi
je     144a <validity+0x34a>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
test   %rcx,%rcx
jne    145e <validity+0x35e>
mov    0x4(%rdi),%esi
test   %esi,%esi
je     145e <validity+0x35e>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x7,%rcx
ja     13a2 <validity+0x2a2>
mov    0x24(%rdi,%rcx,4),%edx
mov    0x44(%rdi),%esi
test   %esi,%esi
je     147b <validity+0x37b>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x6,%rcx
ja     1511 <validity+0x411>
mov    0x40(%rdi),%esi
test   %esi,%esi
je     1494 <validity+0x394>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x5,%rcx
ja     1511 <validity+0x411>
mov    0x3c(%rdi),%esi
test   %esi,%esi
je     14a9 <validity+0x3a9>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x4,%rcx
ja     1511 <validity+0x411>
mov    0x38(%rdi),%esi
test   %esi,%esi
je     14be <validity+0x3be>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x3,%rcx
ja     1511 <validity+0x411>
mov    0x34(%rdi),%esi
test   %esi,%esi
je     14d3 <validity+0x3d3>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x2,%rcx
ja     1511 <validity+0x411>
mov    0x30(%rdi),%esi
test   %esi,%esi
je     14e8 <validity+0x3e8>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x1,%rcx
ja     1511 <validity+0x411>
mov    0x2c(%rdi),%esi
test   %esi,%esi
je     14fd <validity+0x3fd>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
test   %rcx,%rcx
jne    1511 <validity+0x411>
mov    0x28(%rdi),%esi
test   %esi,%esi
je     1511 <validity+0x411>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x7,%rcx
ja     13a2 <validity+0x2a2>
mov    0x48(%rdi,%rcx,4),%edx
mov    0x68(%rdi),%esi
test   %esi,%esi
je     152e <validity+0x42e>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x6,%rcx
ja     15c4 <validity+0x4c4>
mov    0x64(%rdi),%esi
test   %esi,%esi
je     1547 <validity+0x447>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x5,%rcx
ja     15c4 <validity+0x4c4>
mov    0x60(%rdi),%esi
test   %esi,%esi
je     155c <validity+0x45c>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x4,%rcx
ja     15c4 <validity+0x4c4>
mov    0x5c(%rdi),%esi
test   %esi,%esi
je     1571 <validity+0x471>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x3,%rcx
ja     15c4 <validity+0x4c4>
mov    0x58(%rdi),%esi
test   %esi,%esi
je     1586 <validity+0x486>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x2,%rcx
ja     15c4 <validity+0x4c4>
mov    0x54(%rdi),%esi
test   %esi,%esi
je     159b <validity+0x49b>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x1,%rcx
ja     15c4 <validity+0x4c4>
mov    0x50(%rdi),%esi
test   %esi,%esi
je     15b0 <validity+0x4b0>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
test   %rcx,%rcx
jne    15c4 <validity+0x4c4>
mov    0x4c(%rdi),%esi
test   %esi,%esi
je     15c4 <validity+0x4c4>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x7,%rcx
ja     13a2 <validity+0x2a2>
mov    0x6c(%rdi,%rcx,4),%edx
mov    0x8c(%rdi),%esi
test   %esi,%esi
je     15e4 <validity+0x4e4>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x6,%rcx
ja     1683 <validity+0x583>
mov    0x88(%rdi),%esi
test   %esi,%esi
je     1600 <validity+0x500>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x5,%rcx
ja     1683 <validity+0x583>
mov    0x84(%rdi),%esi
test   %esi,%esi
je     1618 <validity+0x518>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x4,%rcx
ja     1683 <validity+0x583>
mov    0x80(%rdi),%esi
test   %esi,%esi
je     1630 <validity+0x530>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x3,%rcx
ja     1683 <validity+0x583>
mov    0x7c(%rdi),%esi
test   %esi,%esi
je     1645 <validity+0x545>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x2,%rcx
ja     1683 <validity+0x583>
mov    0x78(%rdi),%esi
test   %esi,%esi
je     165a <validity+0x55a>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x1,%rcx
ja     1683 <validity+0x583>
mov    0x74(%rdi),%esi
test   %esi,%esi
je     166f <validity+0x56f>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
test   %rcx,%rcx
jne    1683 <validity+0x583>
mov    0x70(%rdi),%esi
test   %esi,%esi
je     1683 <validity+0x583>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x7,%rcx
ja     13a2 <validity+0x2a2>
mov    0x90(%rdi,%rcx,4),%edx
mov    0xb0(%rdi),%esi
test   %esi,%esi
je     16a6 <validity+0x5a6>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x6,%rcx
ja     1755 <validity+0x655>
mov    0xac(%rdi),%esi
test   %esi,%esi
je     16c2 <validity+0x5c2>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x5,%rcx
ja     1755 <validity+0x655>
mov    0xa8(%rdi),%esi
test   %esi,%esi
je     16de <validity+0x5de>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x4,%rcx
ja     1755 <validity+0x655>
mov    0xa4(%rdi),%esi
test   %esi,%esi
je     16f6 <validity+0x5f6>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x3,%rcx
ja     1755 <validity+0x655>
mov    0xa0(%rdi),%esi
test   %esi,%esi
je     170e <validity+0x60e>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x2,%rcx
ja     1755 <validity+0x655>
mov    0x9c(%rdi),%esi
test   %esi,%esi
je     1726 <validity+0x626>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x1,%rcx
ja     1755 <validity+0x655>
mov    0x98(%rdi),%esi
test   %esi,%esi
je     173e <validity+0x63e>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
test   %rcx,%rcx
jne    1755 <validity+0x655>
mov    0x94(%rdi),%esi
test   %esi,%esi
je     1755 <validity+0x655>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x7,%rcx
ja     13a2 <validity+0x2a2>
mov    0xb4(%rdi,%rcx,4),%edx
mov    0xd4(%rdi),%esi
test   %esi,%esi
je     1778 <validity+0x678>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x6,%rcx
ja     1827 <validity+0x727>
mov    0xd0(%rdi),%esi
test   %esi,%esi
je     1794 <validity+0x694>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x5,%rcx
ja     1827 <validity+0x727>
mov    0xcc(%rdi),%esi
test   %esi,%esi
je     17b0 <validity+0x6b0>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x4,%rcx
ja     1827 <validity+0x727>
mov    0xc8(%rdi),%esi
test   %esi,%esi
je     17c8 <validity+0x6c8>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x3,%rcx
ja     1827 <validity+0x727>
mov    0xc4(%rdi),%esi
test   %esi,%esi
je     17e0 <validity+0x6e0>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x2,%rcx
ja     1827 <validity+0x727>
mov    0xc0(%rdi),%esi
test   %esi,%esi
je     17f8 <validity+0x6f8>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x1,%rcx
ja     1827 <validity+0x727>
mov    0xbc(%rdi),%esi
test   %esi,%esi
je     1810 <validity+0x710>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
test   %rcx,%rcx
jne    1827 <validity+0x727>
mov    0xb8(%rdi),%esi
test   %esi,%esi
je     1827 <validity+0x727>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x7,%rcx
ja     13a2 <validity+0x2a2>
mov    0xd8(%rdi,%rcx,4),%edx
mov    0xf8(%rdi),%esi
test   %esi,%esi
je     184a <validity+0x74a>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x6,%rcx
ja     18f9 <validity+0x7f9>
mov    0xf4(%rdi),%esi
test   %esi,%esi
je     1866 <validity+0x766>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x5,%rcx
ja     18f9 <validity+0x7f9>
mov    0xf0(%rdi),%esi
test   %esi,%esi
je     1882 <validity+0x782>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x4,%rcx
ja     18f9 <validity+0x7f9>
mov    0xec(%rdi),%esi
test   %esi,%esi
je     189a <validity+0x79a>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x3,%rcx
ja     18f9 <validity+0x7f9>
mov    0xe8(%rdi),%esi
test   %esi,%esi
je     18b2 <validity+0x7b2>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x2,%rcx
ja     18f9 <validity+0x7f9>
mov    0xe4(%rdi),%esi
test   %esi,%esi
je     18ca <validity+0x7ca>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x1,%rcx
ja     18f9 <validity+0x7f9>
mov    0xe0(%rdi),%esi
test   %esi,%esi
je     18e2 <validity+0x7e2>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
test   %rcx,%rcx
jne    18f9 <validity+0x7f9>
mov    0xdc(%rdi),%esi
test   %esi,%esi
je     18f9 <validity+0x7f9>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x7,%rcx
ja     13a2 <validity+0x2a2>
mov    0xfc(%rdi,%rcx,4),%edx
mov    0x11c(%rdi),%esi
test   %esi,%esi
je     191c <validity+0x81c>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x6,%rcx
ja     19cb <validity+0x8cb>
mov    0x118(%rdi),%esi
test   %esi,%esi
je     1938 <validity+0x838>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x5,%rcx
ja     19cb <validity+0x8cb>
mov    0x114(%rdi),%esi
test   %esi,%esi
je     1954 <validity+0x854>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x4,%rcx
ja     19cb <validity+0x8cb>
mov    0x110(%rdi),%esi
test   %esi,%esi
je     196c <validity+0x86c>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x3,%rcx
ja     19cb <validity+0x8cb>
mov    0x10c(%rdi),%esi
test   %esi,%esi
je     1984 <validity+0x884>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x2,%rcx
ja     19cb <validity+0x8cb>
mov    0x108(%rdi),%esi
test   %esi,%esi
je     199c <validity+0x89c>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x1,%rcx
ja     19cb <validity+0x8cb>
mov    0x104(%rdi),%esi
test   %esi,%esi
je     19b4 <validity+0x8b4>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
test   %rcx,%rcx
jne    19cb <validity+0x8cb>
mov    0x100(%rdi),%esi
test   %esi,%esi
je     19cb <validity+0x8cb>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x7,%rcx
ja     13a2 <validity+0x2a2>
mov    0x120(%rdi,%rcx,4),%edx
mov    0x140(%rdi),%esi
test   %esi,%esi
je     19ee <validity+0x8ee>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x6,%rcx
ja     13a2 <validity+0x2a2>
mov    0x13c(%rdi),%esi
test   %esi,%esi
je     1a0a <validity+0x90a>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x5,%rcx
ja     13a2 <validity+0x2a2>
mov    0x138(%rdi),%esi
test   %esi,%esi
je     1a26 <validity+0x926>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x4,%rcx
ja     13a2 <validity+0x2a2>
mov    0x134(%rdi),%esi
test   %esi,%esi
je     1a42 <validity+0x942>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x3,%rcx
ja     13a2 <validity+0x2a2>
mov    0x130(%rdi),%esi
test   %esi,%esi
je     1a5e <validity+0x95e>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x2,%rcx
ja     13a2 <validity+0x2a2>
mov    0x12c(%rdi),%esi
test   %esi,%esi
je     1a7a <validity+0x97a>
cmp    %edx,%esi
je     1c70 <validity+0xb70>
cmp    $0x1,%rcx
ja     13a2 <validity+0x2a2>
mov    0x128(%rdi),%esi
test   %esi,%esi
je     1399 <validity+0x299>
cmp    %edx,%esi
jne    1399 <validity+0x299>
jmp    1c70 <validity+0xb70>
mov    0x124(%rdi),%esi
test   %esi,%esi
je     13a2 <validity+0x2a2>
cmp    %edx,%esi
jne    13a2 <validity+0x2a2>
jmp    1c70 <validity+0xb70>
xor    %r8d,%r8d
mov    %rdi,%r9
xor    %esi,%esi
xor    %eax,%eax
cmp    $0x6,%rsi
setae  %al
cmp    $0x3,%rsi
lea    0x3(%rax,%rax,2),%r14
cmovb  %r8,%r14
lea    0x1(%r14),%r11
lea    0x2(%r14),%r10
mov    %r9,%rdx
xor    %ecx,%ecx
jmp    1af9 <validity+0x9f9>
add    $0x1,%rcx
add    $0x24,%rdx
cmp    $0x9,%rcx
je     1c55 <validity+0xb55>
xor    %eax,%eax
cmp    $0x6,%rcx
setae  %al
cmp    $0x3,%rcx
lea    0x3(%rax,%rax,2),%rax
mov    $0x0,%ebx
cmovae %rax,%rbx
cmp    %rsi,%r14
jne    1b1e <validity+0xa1e>
cmp    %rbx,%rcx
je     1b36 <validity+0xa36>
lea    (%rbx,%rbx,8),%rax
lea    (%rdi,%rax,4),%rax
mov    (%rax,%r14,4),%eax
test   %eax,%eax
je     1b36 <validity+0xa36>
cmp    (%rdx),%eax
je     1c6e <validity+0xb6e>
lea    0x1(%rbx),%rax
cmp    %rsi,%r14
jne    1b44 <validity+0xa44>
cmp    %rax,%rcx
je     1b5d <validity+0xa5d>
lea    (%rax,%rax,8),%rbp
lea    (%rdi,%rbp,4),%rbp
mov    0x0(%rbp,%r14,4),%ebp
test   %ebp,%ebp
je     1b5d <validity+0xa5d>
cmp    (%rdx),%ebp
je     1c6e <validity+0xb6e>
lea    0x2(%rbx),%r15
cmp    %rsi,%r14
jne    1b6b <validity+0xa6b>
cmp    %r15,%rcx
je     1b84 <validity+0xa84>
lea    (%r15,%r15,8),%rbp
lea    (%rdi,%rbp,4),%rbp
mov    0x0(%rbp,%r14,4),%ebp
test   %ebp,%ebp
je     1b84 <validity+0xa84>
cmp    (%rdx),%ebp
je     1c6e <validity+0xb6e>
cmp    %rsi,%r11
jne    1b8e <validity+0xa8e>
cmp    %rbx,%rcx
je     1ba7 <validity+0xaa7>
lea    (%rbx,%rbx,8),%rbp
lea    (%rdi,%rbp,4),%rbp
mov    0x0(%rbp,%r11,4),%ebp
test   %ebp,%ebp
je     1ba7 <validity+0xaa7>
cmp    (%rdx),%ebp
je     1c6e <validity+0xb6e>
cmp    %rsi,%r11
jne    1bb1 <validity+0xab1>
cmp    %rax,%rcx
je     1bca <validity+0xaca>
lea    (%rax,%rax,8),%rbp
lea    (%rdi,%rbp,4),%rbp
mov    0x0(%rbp,%r11,4),%ebp
test   %ebp,%ebp
je     1bca <validity+0xaca>
cmp    (%rdx),%ebp
je     1c6e <validity+0xb6e>
cmp    %rsi,%r11
jne    1bd4 <validity+0xad4>
cmp    %r15,%rcx
je     1bed <validity+0xaed>
lea    (%r15,%r15,8),%rbp
lea    (%rdi,%rbp,4),%rbp
mov    0x0(%rbp,%r11,4),%ebp
test   %ebp,%ebp
je     1bed <validity+0xaed>
cmp    (%rdx),%ebp
je     1c6e <validity+0xb6e>
cmp    %rsi,%r10
jne    1bf7 <validity+0xaf7>
cmp    %rbx,%rcx
je     1c0b <validity+0xb0b>
lea    (%rbx,%rbx,8),%rbx
lea    (%rdi,%rbx,4),%rbx
mov    (%rbx,%r10,4),%ebx
test   %ebx,%ebx
je     1c0b <validity+0xb0b>
cmp    (%rdx),%ebx
je     1c6e <validity+0xb6e>
cmp    %rsi,%r10
jne    1c15 <validity+0xb15>
cmp    %rax,%rcx
je     1c29 <validity+0xb29>
lea    (%rax,%rax,8),%rax
lea    (%rdi,%rax,4),%rax
mov    (%rax,%r10,4),%eax
test   %eax,%eax
je     1c29 <validity+0xb29>
cmp    (%rdx),%eax
je     1c6e <validity+0xb6e>
cmp    %rsi,%r10
jne    1c37 <validity+0xb37>
cmp    %r15,%rcx
je     1ae7 <validity+0x9e7>
lea    (%r15,%r15,8),%rax
lea    (%rdi,%rax,4),%rax
mov    (%rax,%r10,4),%eax
test   %eax,%eax
je     1ae7 <validity+0x9e7>
cmp    (%rdx),%eax
jne    1ae7 <validity+0x9e7>
jmp    1c6e <validity+0xb6e>
add    $0x1,%rsi
add    $0x4,%r9
mov    $0x1,%eax
cmp    $0x9,%rsi
jne    1ac2 <validity+0x9c2>
jmp    1c70 <validity+0xb70>
xor    %eax,%eax
pop    %rbx
pop    %r14
pop    %r15
pop    %rbp
ret

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

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