int isWinner(int grid[6][7], int move) {
  int i, j;
  for (i = 0; i < 6; i++) {
    for (j = 0; j < 7 - 3; j++) {
      if (grid[i][j] == move && grid[i][j + 1] == move &&
          grid[i][j + 2] == move && grid[i][j + 3] == move)
        return 1;
    }
  }
  for (i = 0; i < 6 - 3; i++) {
    for (j = 0; j < 7; j++) {
      if (grid[i][j] == move && grid[i + 1][j] == move &&
          grid[i + 2][j] == move && grid[i + 3][j] == move)
        return 1;
    }
  }
  for (i = 3; i < 6; i++) {
    for (j = 0; j < 7 - 3; j++) {
      if (grid[i][j] == move && grid[i - 1][j + 1] == move &&
          grid[i - 2][j + 2] == move && grid[i - 3][j + 3] == move)
        return 1;
    }
  }
  for (i = 0; i < 6 - 3; i++) {
    for (j = 0; j < 7 - 3; j++) {
      if (grid[i][j] == move && grid[i + 1][j + 1] == move &&
          grid[i + 2][j + 2] == move && grid[i + 3][j + 3] == move)
        return 1;
    }
  }
  return -1;
}


x86 assembly (clang, -O0):
<isWinner>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
mov    %esi,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x6,-0x18(%rbp)
jge    11ea <isWinner+0xea>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x4,-0x1c(%rbp)
jge    11d7 <isWinner+0xd7>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
cmp    -0x14(%rbp),%eax
jne    11c4 <isWinner+0xc4>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
cmp    -0x14(%rbp),%eax
jne    11c4 <isWinner+0xc4>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
cmp    -0x14(%rbp),%eax
jne    11c4 <isWinner+0xc4>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
cmp    -0x14(%rbp),%eax
jne    11c4 <isWinner+0xc4>
movl   $0x1,-0x4(%rbp)
jmp    14ac <isWinner+0x3ac>
jmp    11c9 <isWinner+0xc9>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1123 <isWinner+0x23>
jmp    11dc <isWinner+0xdc>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1112 <isWinner+0x12>
movl   $0x0,-0x18(%rbp)
cmpl   $0x3,-0x18(%rbp)
jge    12c9 <isWinner+0x1c9>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x7,-0x1c(%rbp)
jge    12b6 <isWinner+0x1b6>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
cmp    -0x14(%rbp),%eax
jne    12a3 <isWinner+0x1a3>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
cmp    -0x14(%rbp),%eax
jne    12a3 <isWinner+0x1a3>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
cmp    -0x14(%rbp),%eax
jne    12a3 <isWinner+0x1a3>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
cmp    -0x14(%rbp),%eax
jne    12a3 <isWinner+0x1a3>
movl   $0x1,-0x4(%rbp)
jmp    14ac <isWinner+0x3ac>
jmp    12a8 <isWinner+0x1a8>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1202 <isWinner+0x102>
jmp    12bb <isWinner+0x1bb>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    11f1 <isWinner+0xf1>
movl   $0x3,-0x18(%rbp)
cmpl   $0x6,-0x18(%rbp)
jge    13b7 <isWinner+0x2b7>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x4,-0x1c(%rbp)
jge    13a4 <isWinner+0x2a4>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
cmp    -0x14(%rbp),%eax
jne    1391 <isWinner+0x291>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
cmp    -0x14(%rbp),%eax
jne    1391 <isWinner+0x291>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
cmp    -0x14(%rbp),%eax
jne    1391 <isWinner+0x291>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
sub    $0x3,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
cmp    -0x14(%rbp),%eax
jne    1391 <isWinner+0x291>
movl   $0x1,-0x4(%rbp)
jmp    14ac <isWinner+0x3ac>
jmp    1396 <isWinner+0x296>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    12e1 <isWinner+0x1e1>
jmp    13a9 <isWinner+0x2a9>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    12d0 <isWinner+0x1d0>
movl   $0x0,-0x18(%rbp)
cmpl   $0x3,-0x18(%rbp)
jge    14a5 <isWinner+0x3a5>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x4,-0x1c(%rbp)
jge    1492 <isWinner+0x392>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
cmp    -0x14(%rbp),%eax
jne    147f <isWinner+0x37f>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
cmp    -0x14(%rbp),%eax
jne    147f <isWinner+0x37f>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
cmp    -0x14(%rbp),%eax
jne    147f <isWinner+0x37f>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
cmp    -0x14(%rbp),%eax
jne    147f <isWinner+0x37f>
movl   $0x1,-0x4(%rbp)
jmp    14ac <isWinner+0x3ac>
jmp    1484 <isWinner+0x384>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    13cf <isWinner+0x2cf>
jmp    1497 <isWinner+0x397>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    13be <isWinner+0x2be>
movl   $0xffffffff,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<isWinner>:
mov    $0x18,%eax
jmp    1120 <isWinner+0x20>
nopw   0x0(%rax,%rax,1)
add    $0x1c,%rax
cmp    $0xc0,%rax
je     11bf <isWinner+0xbf>
mov    -0x14(%rdi,%rax,1),%ecx
cmp    %esi,-0x18(%rdi,%rax,1)
jne    1140 <isWinner+0x40>
cmp    %esi,%ecx
jne    1140 <isWinner+0x40>
cmp    %esi,-0x10(%rdi,%rax,1)
jne    1144 <isWinner+0x44>
cmp    %esi,-0xc(%rdi,%rax,1)
jne    1144 <isWinner+0x44>
jmp    1449 <isWinner+0x349>
nop
cmp    %esi,%ecx
jne    1160 <isWinner+0x60>
mov    -0x10(%rdi,%rax,1),%ecx
cmp    %esi,%ecx
jne    1164 <isWinner+0x64>
cmp    %esi,-0xc(%rdi,%rax,1)
jne    1168 <isWinner+0x68>
cmp    %esi,-0x8(%rdi,%rax,1)
jne    1168 <isWinner+0x68>
jmp    1449 <isWinner+0x349>
nopl   (%rax)
mov    -0x10(%rdi,%rax,1),%ecx
cmp    %esi,%ecx
jne    1190 <isWinner+0x90>
mov    -0xc(%rdi,%rax,1),%ecx
cmp    %esi,%ecx
jne    1194 <isWinner+0x94>
cmp    %esi,-0x8(%rdi,%rax,1)
jne    119c <isWinner+0x9c>
cmp    %esi,-0x4(%rdi,%rax,1)
jne    119c <isWinner+0x9c>
jmp    1449 <isWinner+0x349>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    -0xc(%rdi,%rax,1),%ecx
cmp    %esi,%ecx
jne    1110 <isWinner+0x10>
cmp    %esi,-0x8(%rdi,%rax,1)
jne    1110 <isWinner+0x10>
cmp    %esi,-0x4(%rdi,%rax,1)
jne    1110 <isWinner+0x10>
cmp    %esi,(%rdi,%rax,1)
jne    1110 <isWinner+0x10>
mov    $0x1,%eax
ret
lea    0x6c(%rdi),%rax
mov    $0xffffffffffffffac,%rcx
jmp    11da <isWinner+0xda>
nopl   0x0(%rax)
add    $0x1c,%rcx
je     12cd <isWinner+0x1cd>
cmp    %esi,-0x18(%rax,%rcx,1)
jne    1200 <isWinner+0x100>
cmp    %esi,0x4(%rax,%rcx,1)
jne    1200 <isWinner+0x100>
cmp    %esi,0x20(%rax,%rcx,1)
jne    1200 <isWinner+0x100>
cmp    %esi,0x3c(%rax,%rcx,1)
je     1449 <isWinner+0x349>
cs nopw 0x0(%rax,%rax,1)
cmp    %esi,-0x14(%rax,%rcx,1)
jne    1220 <isWinner+0x120>
cmp    %esi,0x8(%rax,%rcx,1)
jne    1220 <isWinner+0x120>
cmp    %esi,0x24(%rax,%rcx,1)
jne    1220 <isWinner+0x120>
cmp    %esi,0x40(%rax,%rcx,1)
je     1449 <isWinner+0x349>
nopl   0x0(%rax)
cmp    %esi,-0x10(%rax,%rcx,1)
jne    1240 <isWinner+0x140>
cmp    %esi,0xc(%rax,%rcx,1)
jne    1240 <isWinner+0x140>
cmp    %esi,0x28(%rax,%rcx,1)
jne    1240 <isWinner+0x140>
cmp    %esi,0x44(%rax,%rcx,1)
je     1449 <isWinner+0x349>
nopl   0x0(%rax)
cmp    %esi,-0xc(%rax,%rcx,1)
jne    1260 <isWinner+0x160>
cmp    %esi,0x10(%rax,%rcx,1)
jne    1260 <isWinner+0x160>
cmp    %esi,0x2c(%rax,%rcx,1)
jne    1260 <isWinner+0x160>
cmp    %esi,0x48(%rax,%rcx,1)
je     1449 <isWinner+0x349>
nopl   0x0(%rax)
cmp    %esi,-0x8(%rax,%rcx,1)
jne    1280 <isWinner+0x180>
cmp    %esi,0x14(%rax,%rcx,1)
jne    1280 <isWinner+0x180>
cmp    %esi,0x30(%rax,%rcx,1)
jne    1280 <isWinner+0x180>
cmp    %esi,0x4c(%rax,%rcx,1)
je     1449 <isWinner+0x349>
nopl   0x0(%rax)
cmp    %esi,-0x4(%rax,%rcx,1)
jne    12a0 <isWinner+0x1a0>
cmp    %esi,0x18(%rax,%rcx,1)
jne    12a0 <isWinner+0x1a0>
cmp    %esi,0x34(%rax,%rcx,1)
jne    12a0 <isWinner+0x1a0>
cmp    %esi,0x50(%rax,%rcx,1)
je     1449 <isWinner+0x349>
nopl   0x0(%rax)
cmp    %esi,(%rax,%rcx,1)
jne    11d0 <isWinner+0xd0>
cmp    %esi,0x1c(%rax,%rcx,1)
jne    11d0 <isWinner+0xd0>
cmp    %esi,0x38(%rax,%rcx,1)
jne    11d0 <isWinner+0xd0>
cmp    %esi,0x54(%rax,%rcx,1)
jne    11d0 <isWinner+0xd0>
mov    $0x1,%eax
ret
mov    $0xffffffffffffffac,%rax
jmp    12ea <isWinner+0x1ea>
cs nopw 0x0(%rax,%rax,1)
add    $0x1c,%rax
je     13a7 <isWinner+0x2a7>
cmp    %esi,0xa8(%rdi,%rax,1)
jne    1310 <isWinner+0x210>
cmp    %esi,0x90(%rdi,%rax,1)
jne    1310 <isWinner+0x210>
cmp    %esi,0x78(%rdi,%rax,1)
jne    1310 <isWinner+0x210>
cmp    %esi,0x60(%rdi,%rax,1)
je     1449 <isWinner+0x349>
nopl   0x0(%rax)
cmp    %esi,0xac(%rdi,%rax,1)
jne    1340 <isWinner+0x240>
cmp    %esi,0x94(%rdi,%rax,1)
jne    1340 <isWinner+0x240>
cmp    %esi,0x7c(%rdi,%rax,1)
jne    1340 <isWinner+0x240>
cmp    %esi,0x64(%rdi,%rax,1)
je     1449 <isWinner+0x349>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
cmp    %esi,0xb0(%rdi,%rax,1)
jne    1370 <isWinner+0x270>
cmp    %esi,0x98(%rdi,%rax,1)
jne    1370 <isWinner+0x270>
cmp    %esi,0x80(%rdi,%rax,1)
jne    1370 <isWinner+0x270>
cmp    %esi,0x68(%rdi,%rax,1)
je     1449 <isWinner+0x349>
cs nopw 0x0(%rax,%rax,1)
nop
cmp    %esi,0xb4(%rdi,%rax,1)
jne    12e0 <isWinner+0x1e0>
cmp    %esi,0x9c(%rdi,%rax,1)
jne    12e0 <isWinner+0x1e0>
cmp    %esi,0x84(%rdi,%rax,1)
jne    12e0 <isWinner+0x1e0>
cmp    %esi,0x6c(%rdi,%rax,1)
jne    12e0 <isWinner+0x1e0>
mov    $0x1,%eax
ret
mov    $0xffffffffffffffac,%rax
jmp    13ba <isWinner+0x2ba>
add    $0x1c,%rax
je     144f <isWinner+0x34f>
cmp    %esi,0x54(%rdi,%rax,1)
jne    13e0 <isWinner+0x2e0>
cmp    %esi,0x74(%rdi,%rax,1)
jne    13e0 <isWinner+0x2e0>
cmp    %esi,0x94(%rdi,%rax,1)
jne    13e0 <isWinner+0x2e0>
cmp    %esi,0xb4(%rdi,%rax,1)
je     1449 <isWinner+0x349>
nopl   0x0(%rax,%rax,1)
cmp    %esi,0x58(%rdi,%rax,1)
jne    1400 <isWinner+0x300>
cmp    %esi,0x78(%rdi,%rax,1)
jne    1400 <isWinner+0x300>
cmp    %esi,0x98(%rdi,%rax,1)
jne    1400 <isWinner+0x300>
cmp    %esi,0xb8(%rdi,%rax,1)
je     1449 <isWinner+0x349>
xchg   %ax,%ax
cmp    %esi,0x5c(%rdi,%rax,1)
jne    1420 <isWinner+0x320>
cmp    %esi,0x7c(%rdi,%rax,1)
jne    1420 <isWinner+0x320>
cmp    %esi,0x9c(%rdi,%rax,1)
jne    1420 <isWinner+0x320>
cmp    %esi,0xbc(%rdi,%rax,1)
je     1449 <isWinner+0x349>
xchg   %ax,%ax
cmp    %esi,0x60(%rdi,%rax,1)
jne    13b0 <isWinner+0x2b0>
cmp    %esi,0x80(%rdi,%rax,1)
jne    13b0 <isWinner+0x2b0>
cmp    %esi,0xa0(%rdi,%rax,1)
jne    13b0 <isWinner+0x2b0>
cmp    %esi,0xc0(%rdi,%rax,1)
jne    13b0 <isWinner+0x2b0>
mov    $0x1,%eax
ret
mov    $0xffffffff,%eax
ret

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

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