int box_checker(int *sudoku, int box) {
  int filemult;
  int columnmult;
  int i;
  int j;
  int buffer[9];
  int cont = 0;
  int number;
  switch (box) {
  case 1:
    filemult = 0;
    columnmult = 0;
    break;
  case 2:
    filemult = 0;
    columnmult = 1;
    break;
  case 3:
    filemult = 0;
    columnmult = 2;
    break;
  case 4:
    filemult = 1;
    columnmult = 0;
    break;
  case 5:
    filemult = 1;
    columnmult = 1;
    break;
  case 6:
    filemult = 1;
    columnmult = 2;
    break;
  case 7:
    filemult = 2;
    columnmult = 0;
    break;
  case 8:
    filemult = 2;
    columnmult = 1;
    break;
  case 9:
    filemult = 2;
    columnmult = 2;
    break;
  default:
    return 1;
  }
  for (i = 0; i < 3; i++) {
    for (j = 0; j < 3; j++) {
      buffer[cont] = *(sudoku + (i + 3 * filemult) * 9 + j + 3 * columnmult);
      cont++;
    }
  }
  for (i = 0; i < 9; i++) {
    number = *(buffer + i);
    if (number != 0) {
      for (j = 0; j < 9; j++) {
        if ((i != j) && (number == *(buffer + j)))
          return 1;
      }
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<box_checker>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
mov    %esi,-0x14(%rbp)
movl   $0x0,-0x54(%rbp)
mov    -0x14(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,%ecx
mov    %rcx,-0x60(%rbp)
sub    $0x8,%eax
ja     11e6 <box_checker+0xe6>
mov    -0x60(%rbp),%rax
lea    0xece(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0x0,-0x18(%rbp)
movl   $0x0,-0x1c(%rbp)
jmp    11f2 <box_checker+0xf2>
movl   $0x0,-0x18(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    11f2 <box_checker+0xf2>
movl   $0x0,-0x18(%rbp)
movl   $0x2,-0x1c(%rbp)
jmp    11f2 <box_checker+0xf2>
movl   $0x1,-0x18(%rbp)
movl   $0x0,-0x1c(%rbp)
jmp    11f2 <box_checker+0xf2>
movl   $0x1,-0x18(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    11f2 <box_checker+0xf2>
movl   $0x1,-0x18(%rbp)
movl   $0x2,-0x1c(%rbp)
jmp    11f2 <box_checker+0xf2>
movl   $0x2,-0x18(%rbp)
movl   $0x0,-0x1c(%rbp)
jmp    11f2 <box_checker+0xf2>
movl   $0x2,-0x18(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    11f2 <box_checker+0xf2>
movl   $0x2,-0x18(%rbp)
movl   $0x2,-0x1c(%rbp)
jmp    11f2 <box_checker+0xf2>
movl   $0x1,-0x4(%rbp)
jmp    1307 <box_checker+0x207>
movl   $0x0,-0x20(%rbp)
cmpl   $0x3,-0x20(%rbp)
jge    1275 <box_checker+0x175>
movl   $0x0,-0x24(%rbp)
cmpl   $0x3,-0x24(%rbp)
jge    1262 <box_checker+0x162>
mov    -0x10(%rbp),%rax
mov    -0x20(%rbp),%ecx
imul   $0x3,-0x18(%rbp),%edx
add    %edx,%ecx
imul   $0x9,%ecx,%ecx
movslq %ecx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
movslq -0x24(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
imul   $0x3,-0x1c(%rbp),%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%ecx
movslq -0x54(%rbp),%rax
mov    %ecx,-0x50(%rbp,%rax,4)
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    120a <box_checker+0x10a>
jmp    1267 <box_checker+0x167>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    11f9 <box_checker+0xf9>
movl   $0x0,-0x20(%rbp)
cmpl   $0x9,-0x20(%rbp)
jge    1300 <box_checker+0x200>
movslq -0x20(%rbp),%rax
mov    -0x50(%rbp,%rax,4),%eax
mov    %eax,-0x58(%rbp)
cmpl   $0x0,-0x58(%rbp)
je     12ed <box_checker+0x1ed>
movl   $0x0,-0x24(%rbp)
cmpl   $0x9,-0x24(%rbp)
jge    12e8 <box_checker+0x1e8>
mov    -0x20(%rbp),%eax
cmp    -0x24(%rbp),%eax
je     12d5 <box_checker+0x1d5>
mov    -0x58(%rbp),%eax
movslq -0x24(%rbp),%rcx
cmp    -0x50(%rbp,%rcx,4),%eax
jne    12d5 <box_checker+0x1d5>
movl   $0x1,-0x4(%rbp)
jmp    1307 <box_checker+0x207>
jmp    12da <box_checker+0x1da>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    12a2 <box_checker+0x1a2>
jmp    12ed <box_checker+0x1ed>
jmp    12f2 <box_checker+0x1f2>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    127c <box_checker+0x17c>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<box_checker>:
push   %rbp
push   %rbx
add    $0xffffffff,%esi
mov    $0x1,%eax
cmp    $0x8,%esi
ja     13ed <box_checker+0x2ed>
movslq %esi,%rcx
lea    0xee3(%rip),%rdx
lea    0xf24(%rip),%rsi
mov    (%rsi,%rcx,8),%rbp
add    (%rdx,%rcx,8),%rbp
mov    0x8(%rdi,%rbp,4),%esi
mov    %esi,-0x20(%rsp)
mov    (%rdi,%rbp,4),%rcx
mov    %rcx,-0x28(%rsp)
mov    0x2c(%rdi,%rbp,4),%r10d
mov    %r10d,-0x14(%rsp)
mov    0x24(%rdi,%rbp,4),%rdx
mov    %rdx,-0x1c(%rsp)
mov    0x48(%rdi,%rbp,4),%r8
mov    %r8,-0x10(%rsp)
mov    0x50(%rdi,%rbp,4),%ebx
mov    %ebx,-0x8(%rsp)
mov    -0x24(%rsp),%r11d
mov    -0x18(%rsp),%edi
mov    -0xc(%rsp),%r9d
test   %ecx,%ecx
je     11b9 <box_checker+0xb9>
cmp    %r11d,%ecx
je     13ed <box_checker+0x2ed>
cmp    %esi,%ecx
je     13ed <box_checker+0x2ed>
cmp    %edx,%ecx
je     13ed <box_checker+0x2ed>
cmp    %edi,%ecx
je     13ed <box_checker+0x2ed>
cmp    %r10d,%ecx
je     13ed <box_checker+0x2ed>
cmp    %r8d,%ecx
je     13ed <box_checker+0x2ed>
cmp    %r9d,%ecx
je     13ed <box_checker+0x2ed>
cmp    %ebx,%ecx
je     13ed <box_checker+0x2ed>
mov    -0x24(%rsp),%ebp
test   %ebp,%ebp
je     1204 <box_checker+0x104>
cmp    %ecx,%ebp
je     13ed <box_checker+0x2ed>
cmp    %esi,%ebp
je     13ed <box_checker+0x2ed>
cmp    %edx,%ebp
je     13ed <box_checker+0x2ed>
cmp    %edi,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r10d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r8d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r9d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %ebx,%ebp
je     13ed <box_checker+0x2ed>
mov    -0x20(%rsp),%ebp
test   %ebp,%ebp
je     1250 <box_checker+0x150>
cmp    %ecx,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r11d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %edx,%ebp
je     13ed <box_checker+0x2ed>
cmp    %edi,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r10d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r8d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r9d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %ebx,%ebp
je     13ed <box_checker+0x2ed>
mov    -0x1c(%rsp),%ebp
test   %ebp,%ebp
je     129c <box_checker+0x19c>
cmp    %ecx,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r11d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %esi,%ebp
je     13ed <box_checker+0x2ed>
cmp    %edi,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r10d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r8d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r9d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %ebx,%ebp
je     13ed <box_checker+0x2ed>
mov    -0x18(%rsp),%ebp
test   %ebp,%ebp
je     12e8 <box_checker+0x1e8>
cmp    %ecx,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r11d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %esi,%ebp
je     13ed <box_checker+0x2ed>
cmp    %edx,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r10d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r8d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r9d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %ebx,%ebp
je     13ed <box_checker+0x2ed>
mov    -0x14(%rsp),%ebp
test   %ebp,%ebp
je     1333 <box_checker+0x233>
cmp    %ecx,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r11d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %esi,%ebp
je     13ed <box_checker+0x2ed>
cmp    %edx,%ebp
je     13ed <box_checker+0x2ed>
cmp    %edi,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r8d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r9d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %ebx,%ebp
je     13ed <box_checker+0x2ed>
mov    -0x10(%rsp),%ebp
test   %ebp,%ebp
je     1376 <box_checker+0x276>
cmp    %ecx,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r11d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %esi,%ebp
je     13ed <box_checker+0x2ed>
cmp    %edx,%ebp
je     13ed <box_checker+0x2ed>
cmp    %edi,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r10d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r9d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %ebx,%ebp
je     13ed <box_checker+0x2ed>
mov    -0xc(%rsp),%ebp
test   %ebp,%ebp
je     13a1 <box_checker+0x2a1>
cmp    %ecx,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r11d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %esi,%ebp
je     13ed <box_checker+0x2ed>
cmp    %edx,%ebp
je     13ed <box_checker+0x2ed>
cmp    %edi,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r10d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %r8d,%ebp
je     13ed <box_checker+0x2ed>
cmp    %ebx,%ebp
je     13ed <box_checker+0x2ed>
mov    -0x8(%rsp),%eax
test   %eax,%eax
je     13eb <box_checker+0x2eb>
cmp    %ecx,%eax
sete   %cl
cmp    %r11d,%eax
sete   %bl
or     %cl,%bl
cmp    %esi,%eax
sete   %cl
cmp    %edx,%eax
sete   %dl
or     %cl,%dl
or     %bl,%dl
cmp    %edi,%eax
sete   %cl
cmp    %r10d,%eax
sete   %bl
or     %cl,%bl
cmp    %r8d,%eax
sete   %cl
or     %bl,%cl
or     %dl,%cl
cmp    %r9d,%eax
sete   %al
or     %cl,%al
movzbl %al,%eax
and    $0x1,%eax
jmp    13ed <box_checker+0x2ed>
xor    %eax,%eax
pop    %rbx
pop    %rbp
ret

LLVM IR (-O0):
define i32 @box_checker(i32* %0, i32 %1) {
%3 = alloca i32
%4 = alloca i32*
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca [9 x i32]
%11 = alloca i32
%12 = alloca i32
store i32* %0, i32** %4
store i32 %1, i32* %5
store i32 0, i32* %11
%13 = load i32, i32* %5
switch i32 %13, label %23 [
i32 1, label %14
i32 2, label %15
i32 3, label %16
i32 4, label %17
i32 5, label %18
i32 6, label %19
i32 7, label %20
i32 8, label %21
i32 9, label %22
]
14: ; preds = %2
store i32 0, i32* %6
store i32 0, i32* %7
br label %24
15: ; preds = %2
store i32 0, i32* %6
store i32 1, i32* %7
br label %24
16: ; preds = %2
store i32 0, i32* %6
store i32 2, i32* %7
br label %24
17: ; preds = %2
store i32 1, i32* %6
store i32 0, i32* %7
br label %24
18: ; preds = %2
store i32 1, i32* %6
store i32 1, i32* %7
br label %24
19: ; preds = %2
store i32 1, i32* %6
store i32 2, i32* %7
br label %24
20: ; preds = %2
store i32 2, i32* %6
store i32 0, i32* %7
br label %24
21: ; preds = %2
store i32 2, i32* %6
store i32 1, i32* %7
br label %24
22: ; preds = %2
store i32 2, i32* %6
store i32 2, i32* %7
br label %24
23: ; preds = %2
store i32 1, i32* %3
br label %100
24: ; preds = %22, %21, %20, %19, %18, %17, %16, %15, %14
store i32 0, i32* %8
br label %25
25: ; preds = %58, %24
%26 = load i32, i32* %8
%27 = icmp slt i32 %26, 3
br i1 %27, label %28, label %61
28: ; preds = %25
store i32 0, i32* %9
br label %29
29: ; preds = %54, %28
%30 = load i32, i32* %9
%31 = icmp slt i32 %30, 3
br i1 %31, label %32, label %57
32: ; preds = %29
%33 = load i32*, i32** %4
%34 = load i32, i32* %8
%35 = load i32, i32* %6
%36 = mul nsw i32 3, %35
%37 = add nsw i32 %34, %36
%38 = mul nsw i32 %37, 9
%39 = sext i32 %38 to i64
%40 = getelementptr inbounds i32, i32* %33, i64 %39
%41 = load i32, i32* %9
%42 = sext i32 %41 to i64
%43 = getelementptr inbounds i32, i32* %40, i64 %42
%44 = load i32, i32* %7
%45 = mul nsw i32 3, %44
%46 = sext i32 %45 to i64
%47 = getelementptr inbounds i32, i32* %43, i64 %46
%48 = load i32, i32* %47
%49 = load i32, i32* %11
%50 = sext i32 %49 to i64
%51 = getelementptr inbounds [9 x i32], [9 x i32]* %10, i64 0, i64 %50
store i32 %48, i32* %51
%52 = load i32, i32* %11
%53 = add nsw i32 %52, 1
store i32 %53, i32* %11
br label %54
54: ; preds = %32
%55 = load i32, i32* %9
%56 = add nsw i32 %55, 1
store i32 %56, i32* %9
br label %29
57: ; preds = %29
br label %58
58: ; preds = %57
%59 = load i32, i32* %8
%60 = add nsw i32 %59, 1
store i32 %60, i32* %8
br label %25
61: ; preds = %25
store i32 0, i32* %8
br label %62
62: ; preds = %96, %61
%63 = load i32, i32* %8
%64 = icmp slt i32 %63, 9
br i1 %64, label %65, label %99
65: ; preds = %62
%66 = getelementptr inbounds [9 x i32], [9 x i32]* %10, i64 0, i64 0
%67 = load i32, i32* %8
%68 = sext i32 %67 to i64
%69 = getelementptr inbounds i32, i32* %66, i64 %68
%70 = load i32, i32* %69
store i32 %70, i32* %12
%71 = load i32, i32* %12
%72 = icmp ne i32 %71, 0
br i1 %72, label %73, label %95
73: ; preds = %65
store i32 0, i32* %9
br label %74
74: ; preds = %91, %73
%75 = load i32, i32* %9
%76 = icmp slt i32 %75, 9
br i1 %76, label %77, label %94
77: ; preds = %74
%78 = load i32, i32* %8
%79 = load i32, i32* %9
%80 = icmp ne i32 %78, %79
br i1 %80, label %81, label %90
81: ; preds = %77
%82 = load i32, i32* %12
%83 = getelementptr inbounds [9 x i32], [9 x i32]* %10, i64 0, i64 0
%84 = load i32, i32* %9
%85 = sext i32 %84 to i64
%86 = getelementptr inbounds i32, i32* %83, i64 %85
%87 = load i32, i32* %86
%88 = icmp eq i32 %82, %87
br i1 %88, label %89, label %90
89: ; preds = %81
store i32 1, i32* %3
br label %100
90: ; preds = %81, %77
br label %91
91: ; preds = %90
%92 = load i32, i32* %9
%93 = add nsw i32 %92, 1
store i32 %93, i32* %9
br label %74
94: ; preds = %74
br label %95
95: ; preds = %94, %65
br label %96
96: ; preds = %95
%97 = load i32, i32* %8
%98 = add nsw i32 %97, 1
store i32 %98, i32* %8
br label %62
99: ; preds = %62
store i32 0, i32* %3
br label %100
100: ; preds = %99, %89, %23
%101 = load i32, i32* %3
ret i32 %101
}

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