int checaVitoria(char grade[]) {
  if ((grade[0] == 'X' && grade[1] == 'X' && grade[2] == 'X') ||
      (grade[3] == 'X' && grade[4] == 'X' && grade[5] == 'X') ||
      (grade[6] == 'X' && grade[7] == 'X' && grade[8] == 'X') ||
      (grade[0] == 'X' && grade[3] == 'X' && grade[6] == 'X') ||
      (grade[1] == 'X' && grade[4] == 'X' && grade[7] == 'X') ||
      (grade[2] == 'X' && grade[5] == 'X' && grade[8] == 'X') ||
      (grade[0] == 'X' && grade[4] == 'X' && grade[8] == 'X') ||
      (grade[2] == 'X' && grade[4] == 'X' && grade[6] == 'X')) {
    return 1;
  } else if ((grade[0] == 'O' && grade[1] == 'O' && grade[2] == 'O') ||
             (grade[3] == 'O' && grade[4] == 'O' && grade[5] == 'O') ||
             (grade[6] == 'O' && grade[7] == 'O' && grade[8] == 'O') ||
             (grade[0] == 'O' && grade[3] == 'O' && grade[6] == 'O') ||
             (grade[1] == 'O' && grade[4] == 'O' && grade[7] == 'O') ||
             (grade[2] == 'O' && grade[5] == 'O' && grade[8] == 'O') ||
             (grade[0] == 'O' && grade[4] == 'O' && grade[8] == 'O') ||
             (grade[2] == 'O' && grade[4] == 'O' && grade[6] == 'O')) {
    return -1;
  } else
    return 0;
}


x86 assembly (clang, -O0):
<checaVitoria>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x58,%eax
jne    113a <checaVitoria+0x3a>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x58,%eax
jne    113a <checaVitoria+0x3a>
mov    -0x10(%rbp),%rax
movsbl 0x2(%rax),%eax
cmp    $0x58,%eax
je     129d <checaVitoria+0x19d>
mov    -0x10(%rbp),%rax
movsbl 0x3(%rax),%eax
cmp    $0x58,%eax
jne    116d <checaVitoria+0x6d>
mov    -0x10(%rbp),%rax
movsbl 0x4(%rax),%eax
cmp    $0x58,%eax
jne    116d <checaVitoria+0x6d>
mov    -0x10(%rbp),%rax
movsbl 0x5(%rax),%eax
cmp    $0x58,%eax
je     129d <checaVitoria+0x19d>
mov    -0x10(%rbp),%rax
movsbl 0x6(%rax),%eax
cmp    $0x58,%eax
jne    11a0 <checaVitoria+0xa0>
mov    -0x10(%rbp),%rax
movsbl 0x7(%rax),%eax
cmp    $0x58,%eax
jne    11a0 <checaVitoria+0xa0>
mov    -0x10(%rbp),%rax
movsbl 0x8(%rax),%eax
cmp    $0x58,%eax
je     129d <checaVitoria+0x19d>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x58,%eax
jne    11d2 <checaVitoria+0xd2>
mov    -0x10(%rbp),%rax
movsbl 0x3(%rax),%eax
cmp    $0x58,%eax
jne    11d2 <checaVitoria+0xd2>
mov    -0x10(%rbp),%rax
movsbl 0x6(%rax),%eax
cmp    $0x58,%eax
je     129d <checaVitoria+0x19d>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x58,%eax
jne    1205 <checaVitoria+0x105>
mov    -0x10(%rbp),%rax
movsbl 0x4(%rax),%eax
cmp    $0x58,%eax
jne    1205 <checaVitoria+0x105>
mov    -0x10(%rbp),%rax
movsbl 0x7(%rax),%eax
cmp    $0x58,%eax
je     129d <checaVitoria+0x19d>
mov    -0x10(%rbp),%rax
movsbl 0x2(%rax),%eax
cmp    $0x58,%eax
jne    1238 <checaVitoria+0x138>
mov    -0x10(%rbp),%rax
movsbl 0x5(%rax),%eax
cmp    $0x58,%eax
jne    1238 <checaVitoria+0x138>
mov    -0x10(%rbp),%rax
movsbl 0x8(%rax),%eax
cmp    $0x58,%eax
je     129d <checaVitoria+0x19d>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x58,%eax
jne    126a <checaVitoria+0x16a>
mov    -0x10(%rbp),%rax
movsbl 0x4(%rax),%eax
cmp    $0x58,%eax
jne    126a <checaVitoria+0x16a>
mov    -0x10(%rbp),%rax
movsbl 0x8(%rax),%eax
cmp    $0x58,%eax
je     129d <checaVitoria+0x19d>
mov    -0x10(%rbp),%rax
movsbl 0x2(%rax),%eax
cmp    $0x58,%eax
jne    12a9 <checaVitoria+0x1a9>
mov    -0x10(%rbp),%rax
movsbl 0x4(%rax),%eax
cmp    $0x58,%eax
jne    12a9 <checaVitoria+0x1a9>
mov    -0x10(%rbp),%rax
movsbl 0x6(%rax),%eax
cmp    $0x58,%eax
jne    12a9 <checaVitoria+0x1a9>
movl   $0x1,-0x4(%rbp)
jmp    1451 <checaVitoria+0x351>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x4f,%eax
jne    12db <checaVitoria+0x1db>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x4f,%eax
jne    12db <checaVitoria+0x1db>
mov    -0x10(%rbp),%rax
movsbl 0x2(%rax),%eax
cmp    $0x4f,%eax
je     143e <checaVitoria+0x33e>
mov    -0x10(%rbp),%rax
movsbl 0x3(%rax),%eax
cmp    $0x4f,%eax
jne    130e <checaVitoria+0x20e>
mov    -0x10(%rbp),%rax
movsbl 0x4(%rax),%eax
cmp    $0x4f,%eax
jne    130e <checaVitoria+0x20e>
mov    -0x10(%rbp),%rax
movsbl 0x5(%rax),%eax
cmp    $0x4f,%eax
je     143e <checaVitoria+0x33e>
mov    -0x10(%rbp),%rax
movsbl 0x6(%rax),%eax
cmp    $0x4f,%eax
jne    1341 <checaVitoria+0x241>
mov    -0x10(%rbp),%rax
movsbl 0x7(%rax),%eax
cmp    $0x4f,%eax
jne    1341 <checaVitoria+0x241>
mov    -0x10(%rbp),%rax
movsbl 0x8(%rax),%eax
cmp    $0x4f,%eax
je     143e <checaVitoria+0x33e>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x4f,%eax
jne    1373 <checaVitoria+0x273>
mov    -0x10(%rbp),%rax
movsbl 0x3(%rax),%eax
cmp    $0x4f,%eax
jne    1373 <checaVitoria+0x273>
mov    -0x10(%rbp),%rax
movsbl 0x6(%rax),%eax
cmp    $0x4f,%eax
je     143e <checaVitoria+0x33e>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x4f,%eax
jne    13a6 <checaVitoria+0x2a6>
mov    -0x10(%rbp),%rax
movsbl 0x4(%rax),%eax
cmp    $0x4f,%eax
jne    13a6 <checaVitoria+0x2a6>
mov    -0x10(%rbp),%rax
movsbl 0x7(%rax),%eax
cmp    $0x4f,%eax
je     143e <checaVitoria+0x33e>
mov    -0x10(%rbp),%rax
movsbl 0x2(%rax),%eax
cmp    $0x4f,%eax
jne    13d9 <checaVitoria+0x2d9>
mov    -0x10(%rbp),%rax
movsbl 0x5(%rax),%eax
cmp    $0x4f,%eax
jne    13d9 <checaVitoria+0x2d9>
mov    -0x10(%rbp),%rax
movsbl 0x8(%rax),%eax
cmp    $0x4f,%eax
je     143e <checaVitoria+0x33e>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x4f,%eax
jne    140b <checaVitoria+0x30b>
mov    -0x10(%rbp),%rax
movsbl 0x4(%rax),%eax
cmp    $0x4f,%eax
jne    140b <checaVitoria+0x30b>
mov    -0x10(%rbp),%rax
movsbl 0x8(%rax),%eax
cmp    $0x4f,%eax
je     143e <checaVitoria+0x33e>
mov    -0x10(%rbp),%rax
movsbl 0x2(%rax),%eax
cmp    $0x4f,%eax
jne    144a <checaVitoria+0x34a>
mov    -0x10(%rbp),%rax
movsbl 0x4(%rax),%eax
cmp    $0x4f,%eax
jne    144a <checaVitoria+0x34a>
mov    -0x10(%rbp),%rax
movsbl 0x6(%rax),%eax
cmp    $0x4f,%eax
jne    144a <checaVitoria+0x34a>
movl   $0xffffffff,-0x4(%rbp)
jmp    1451 <checaVitoria+0x351>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<checaVitoria>:
mov    (%rdi),%cl
cmp    $0x58,%cl
jne    1118 <checaVitoria+0x18>
cmpb   $0x58,0x1(%rdi)
jne    1118 <checaVitoria+0x18>
mov    $0x1,%eax
cmpb   $0x58,0x2(%rdi)
je     1164 <checaVitoria+0x64>
mov    0x3(%rdi),%r10b
cmp    $0x58,%r10b
jne    1133 <checaVitoria+0x33>
cmpb   $0x58,0x4(%rdi)
jne    1133 <checaVitoria+0x33>
mov    $0x1,%eax
cmpb   $0x58,0x5(%rdi)
je     1164 <checaVitoria+0x64>
mov    0x6(%rdi),%sil
cmp    $0x58,%sil
jne    1165 <checaVitoria+0x65>
cmpb   $0x58,0x7(%rdi)
jne    114e <checaVitoria+0x4e>
mov    $0x1,%eax
cmpb   $0x58,0x8(%rdi)
je     1164 <checaVitoria+0x64>
cmp    $0x58,%cl
jne    1165 <checaVitoria+0x65>
cmp    $0x58,%r10b
jne    1165 <checaVitoria+0x65>
mov    $0x1,%eax
cmp    $0x58,%sil
jne    1165 <checaVitoria+0x65>
ret
mov    0x1(%rdi),%r11b
cmp    $0x58,%r11b
jne    1180 <checaVitoria+0x80>
cmpb   $0x58,0x4(%rdi)
jne    1180 <checaVitoria+0x80>
mov    $0x1,%eax
cmpb   $0x58,0x7(%rdi)
je     1164 <checaVitoria+0x64>
mov    0x2(%rdi),%dl
cmp    $0x58,%dl
jne    1199 <checaVitoria+0x99>
cmpb   $0x58,0x5(%rdi)
jne    1199 <checaVitoria+0x99>
mov    $0x1,%eax
cmpb   $0x58,0x8(%rdi)
je     1164 <checaVitoria+0x64>
cmp    $0x58,%cl
jne    11af <checaVitoria+0xaf>
cmpb   $0x58,0x4(%rdi)
jne    11af <checaVitoria+0xaf>
mov    $0x1,%eax
cmpb   $0x58,0x8(%rdi)
je     1164 <checaVitoria+0x64>
cmp    $0x58,%dl
jne    11d8 <checaVitoria+0xd8>
cmpb   $0x58,0x4(%rdi)
jne    11c5 <checaVitoria+0xc5>
mov    $0x1,%eax
cmp    $0x58,%sil
je     1164 <checaVitoria+0x64>
cmp    $0x4f,%cl
sete   %cl
cmp    $0x4f,%r11b
sete   %r9b
xor    %r8d,%r8d
jmp    1203 <checaVitoria+0x103>
cmp    $0x4f,%r11b
sete   %r9b
cmp    $0x4f,%dl
sete   %r8b
cmp    $0x4f,%cl
sete   %cl
jne    1203 <checaVitoria+0x103>
cmp    $0x4f,%r11b
jne    1203 <checaVitoria+0x103>
mov    $0xffffffff,%eax
cmp    $0x4f,%dl
je     1164 <checaVitoria+0x64>
cmp    $0x4f,%r10b
jne    121e <checaVitoria+0x11e>
cmpb   $0x4f,0x4(%rdi)
jne    121e <checaVitoria+0x11e>
mov    $0xffffffff,%eax
cmpb   $0x4f,0x5(%rdi)
je     1164 <checaVitoria+0x64>
cmp    $0x4f,%sil
jne    1255 <checaVitoria+0x155>
cmpb   $0x4f,0x7(%rdi)
jne    1239 <checaVitoria+0x139>
mov    $0xffffffff,%eax
cmpb   $0x4f,0x8(%rdi)
je     1164 <checaVitoria+0x64>
cmp    $0x4f,%r10b
sete   %al
and    %cl,%al
cmp    $0x1,%al
jne    1255 <checaVitoria+0x155>
mov    $0xffffffff,%eax
cmp    $0x4f,%sil
je     1164 <checaVitoria+0x64>
test   %r9b,%r9b
je     126f <checaVitoria+0x16f>
cmpb   $0x4f,0x4(%rdi)
jne    126f <checaVitoria+0x16f>
mov    $0xffffffff,%eax
cmpb   $0x4f,0x7(%rdi)
je     1164 <checaVitoria+0x64>
test   %r8b,%r8b
je     1289 <checaVitoria+0x189>
cmpb   $0x4f,0x5(%rdi)
jne    1289 <checaVitoria+0x189>
mov    $0xffffffff,%eax
cmpb   $0x4f,0x8(%rdi)
je     1164 <checaVitoria+0x64>
test   %cl,%cl
je     12a2 <checaVitoria+0x1a2>
cmpb   $0x4f,0x4(%rdi)
jne    12a2 <checaVitoria+0x1a2>
mov    $0xffffffff,%eax
cmpb   $0x4f,0x8(%rdi)
je     1164 <checaVitoria+0x64>
test   %r8b,%r8b
je     12bc <checaVitoria+0x1bc>
cmpb   $0x4f,0x4(%rdi)
jne    12bc <checaVitoria+0x1bc>
mov    $0xffffffff,%eax
cmp    $0x4f,%sil
je     1164 <checaVitoria+0x64>
xor    %eax,%eax
ret

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

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