#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
char jugadorRival(char);
double columnesGuanyadores(char tauler[6][7], char jugador) {
  int i, j;
  double cols = 0;
  for (i = 3; i < 6; i++) {
    for (j = 0; j < 7; j++) {
      if (tauler[i][j] == jugador &&
          tauler[i - 1][j] != jugadorRival(jugador) &&
          tauler[i - 2][j] != jugadorRival(jugador) &&
          tauler[i - 3][j] != jugadorRival(jugador))
        cols++;
    }
  }
  return cols;
}


x86 assembly (clang, -O0):
<columnesGuanyadores>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %sil,%al
mov    %rdi,-0x8(%rbp)
mov    %al,-0x9(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x20(%rbp)
movl   $0x3,-0x10(%rbp)
cmpl   $0x6,-0x10(%rbp)
jge    124f <columnesGuanyadores+0x13f>
movl   $0x0,-0x14(%rbp)
cmpl   $0x7,-0x14(%rbp)
jge    123c <columnesGuanyadores+0x12c>
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
imul   $0x7,%rcx,%rcx
add    %rcx,%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
movsbl -0x9(%rbp),%ecx
cmp    %ecx,%eax
jne    1229 <columnesGuanyadores+0x119>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x7,%rcx,%rcx
add    %rcx,%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    %eax,-0x24(%rbp)
movsbl -0x9(%rbp),%edi
call   1030 <jugadorRival@plt>
mov    %al,%cl
mov    -0x24(%rbp),%eax
movsbl %cl,%ecx
cmp    %ecx,%eax
je     1229 <columnesGuanyadores+0x119>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x7,%rcx,%rcx
add    %rcx,%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    %eax,-0x28(%rbp)
movsbl -0x9(%rbp),%edi
call   1030 <jugadorRival@plt>
mov    %al,%cl
mov    -0x28(%rbp),%eax
movsbl %cl,%ecx
cmp    %ecx,%eax
je     1229 <columnesGuanyadores+0x119>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%ecx
sub    $0x3,%ecx
movslq %ecx,%rcx
imul   $0x7,%rcx,%rcx
add    %rcx,%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    %eax,-0x2c(%rbp)
movsbl -0x9(%rbp),%edi
call   1030 <jugadorRival@plt>
mov    %al,%cl
mov    -0x2c(%rbp),%eax
movsbl %cl,%ecx
cmp    %ecx,%eax
je     1229 <columnesGuanyadores+0x119>
movsd  0xde1(%rip),%xmm0
addsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x20(%rbp)
jmp    122e <columnesGuanyadores+0x11e>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1142 <columnesGuanyadores+0x32>
jmp    1241 <columnesGuanyadores+0x131>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    1131 <columnesGuanyadores+0x21>
movsd  -0x20(%rbp),%xmm0
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<columnesGuanyadores>:
push   %rbp
push   %r15
push   %r14
push   %rbx
push   %rax
mov    %esi,%ebp
mov    %rdi,%rbx
xorpd  %xmm0,%xmm0
movsd  %xmm0,(%rsp)
movsbl %bpl,%r14d
cmp    %bpl,0x15(%rdi)
jne    1177 <columnesGuanyadores+0x67>
mov    0xe(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1177 <columnesGuanyadores+0x67>
mov    0x7(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1177 <columnesGuanyadores+0x67>
mov    (%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
xorpd  %xmm0,%xmm0
movsd  %xmm0,(%rsp)
cmp    %al,%r15b
je     1177 <columnesGuanyadores+0x67>
movsd  0xe8e(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x16(%rbx)
jne    11c2 <columnesGuanyadores+0xb2>
mov    0xf(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     11c2 <columnesGuanyadores+0xb2>
mov    0x8(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     11c2 <columnesGuanyadores+0xb2>
mov    0x1(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     11c2 <columnesGuanyadores+0xb2>
movsd  (%rsp),%xmm0
addsd  0xe43(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x17(%rbx)
jne    120d <columnesGuanyadores+0xfd>
mov    0x10(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     120d <columnesGuanyadores+0xfd>
mov    0x9(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     120d <columnesGuanyadores+0xfd>
mov    0x2(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     120d <columnesGuanyadores+0xfd>
movsd  (%rsp),%xmm0
addsd  0xdf8(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x18(%rbx)
jne    1258 <columnesGuanyadores+0x148>
mov    0x11(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1258 <columnesGuanyadores+0x148>
mov    0xa(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1258 <columnesGuanyadores+0x148>
mov    0x3(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1258 <columnesGuanyadores+0x148>
movsd  (%rsp),%xmm0
addsd  0xdad(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x19(%rbx)
jne    12a3 <columnesGuanyadores+0x193>
mov    0x12(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     12a3 <columnesGuanyadores+0x193>
mov    0xb(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     12a3 <columnesGuanyadores+0x193>
mov    0x4(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     12a3 <columnesGuanyadores+0x193>
movsd  (%rsp),%xmm0
addsd  0xd62(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x1a(%rbx)
jne    12ee <columnesGuanyadores+0x1de>
mov    0x13(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     12ee <columnesGuanyadores+0x1de>
mov    0xc(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     12ee <columnesGuanyadores+0x1de>
mov    0x5(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     12ee <columnesGuanyadores+0x1de>
movsd  (%rsp),%xmm0
addsd  0xd17(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x1b(%rbx)
jne    1339 <columnesGuanyadores+0x229>
mov    0x14(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1339 <columnesGuanyadores+0x229>
mov    0xd(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1339 <columnesGuanyadores+0x229>
mov    0x6(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1339 <columnesGuanyadores+0x229>
movsd  (%rsp),%xmm0
addsd  0xccc(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x1c(%rbx)
jne    1384 <columnesGuanyadores+0x274>
mov    0x15(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1384 <columnesGuanyadores+0x274>
mov    0xe(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1384 <columnesGuanyadores+0x274>
mov    0x7(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1384 <columnesGuanyadores+0x274>
movsd  (%rsp),%xmm0
addsd  0xc81(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x1d(%rbx)
jne    13cf <columnesGuanyadores+0x2bf>
mov    0x16(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     13cf <columnesGuanyadores+0x2bf>
mov    0xf(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     13cf <columnesGuanyadores+0x2bf>
mov    0x8(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     13cf <columnesGuanyadores+0x2bf>
movsd  (%rsp),%xmm0
addsd  0xc36(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x1e(%rbx)
jne    141a <columnesGuanyadores+0x30a>
mov    0x17(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     141a <columnesGuanyadores+0x30a>
mov    0x10(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     141a <columnesGuanyadores+0x30a>
mov    0x9(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     141a <columnesGuanyadores+0x30a>
movsd  (%rsp),%xmm0
addsd  0xbeb(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x1f(%rbx)
jne    1465 <columnesGuanyadores+0x355>
mov    0x18(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1465 <columnesGuanyadores+0x355>
mov    0x11(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1465 <columnesGuanyadores+0x355>
mov    0xa(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1465 <columnesGuanyadores+0x355>
movsd  (%rsp),%xmm0
addsd  0xba0(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x20(%rbx)
jne    14b0 <columnesGuanyadores+0x3a0>
mov    0x19(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     14b0 <columnesGuanyadores+0x3a0>
mov    0x12(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     14b0 <columnesGuanyadores+0x3a0>
mov    0xb(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     14b0 <columnesGuanyadores+0x3a0>
movsd  (%rsp),%xmm0
addsd  0xb55(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x21(%rbx)
jne    14fb <columnesGuanyadores+0x3eb>
mov    0x1a(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     14fb <columnesGuanyadores+0x3eb>
mov    0x13(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     14fb <columnesGuanyadores+0x3eb>
mov    0xc(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     14fb <columnesGuanyadores+0x3eb>
movsd  (%rsp),%xmm0
addsd  0xb0a(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x22(%rbx)
jne    1546 <columnesGuanyadores+0x436>
mov    0x1b(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1546 <columnesGuanyadores+0x436>
mov    0x14(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1546 <columnesGuanyadores+0x436>
mov    0xd(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1546 <columnesGuanyadores+0x436>
movsd  (%rsp),%xmm0
addsd  0xabf(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x23(%rbx)
jne    1591 <columnesGuanyadores+0x481>
mov    0x1c(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1591 <columnesGuanyadores+0x481>
mov    0x15(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1591 <columnesGuanyadores+0x481>
mov    0xe(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1591 <columnesGuanyadores+0x481>
movsd  (%rsp),%xmm0
addsd  0xa74(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x24(%rbx)
jne    15dc <columnesGuanyadores+0x4cc>
mov    0x1d(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     15dc <columnesGuanyadores+0x4cc>
mov    0x16(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     15dc <columnesGuanyadores+0x4cc>
mov    0xf(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     15dc <columnesGuanyadores+0x4cc>
movsd  (%rsp),%xmm0
addsd  0xa29(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x25(%rbx)
jne    1627 <columnesGuanyadores+0x517>
mov    0x1e(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1627 <columnesGuanyadores+0x517>
mov    0x17(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1627 <columnesGuanyadores+0x517>
mov    0x10(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1627 <columnesGuanyadores+0x517>
movsd  (%rsp),%xmm0
addsd  0x9de(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x26(%rbx)
jne    1672 <columnesGuanyadores+0x562>
mov    0x1f(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1672 <columnesGuanyadores+0x562>
mov    0x18(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1672 <columnesGuanyadores+0x562>
mov    0x11(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1672 <columnesGuanyadores+0x562>
movsd  (%rsp),%xmm0
addsd  0x993(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x27(%rbx)
jne    16bd <columnesGuanyadores+0x5ad>
mov    0x20(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     16bd <columnesGuanyadores+0x5ad>
mov    0x19(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     16bd <columnesGuanyadores+0x5ad>
mov    0x12(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     16bd <columnesGuanyadores+0x5ad>
movsd  (%rsp),%xmm0
addsd  0x948(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x28(%rbx)
jne    1708 <columnesGuanyadores+0x5f8>
mov    0x21(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1708 <columnesGuanyadores+0x5f8>
mov    0x1a(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1708 <columnesGuanyadores+0x5f8>
mov    0x13(%rbx),%r15b
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%r15b
je     1708 <columnesGuanyadores+0x5f8>
movsd  (%rsp),%xmm0
addsd  0x8fd(%rip),%xmm0
movsd  %xmm0,(%rsp)
cmp    %bpl,0x29(%rbx)
jne    1751 <columnesGuanyadores+0x641>
mov    0x22(%rbx),%bpl
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%bpl
je     1751 <columnesGuanyadores+0x641>
mov    0x1b(%rbx),%bpl
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%bpl
je     1751 <columnesGuanyadores+0x641>
mov    0x14(%rbx),%bl
mov    %r14d,%edi
call   1030 <jugadorRival@plt>
cmp    %al,%bl
je     1751 <columnesGuanyadores+0x641>
movsd  (%rsp),%xmm0
addsd  0x8b4(%rip),%xmm0
movsd  %xmm0,(%rsp)
movsd  (%rsp),%xmm0
add    $0x8,%rsp
pop    %rbx
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define double @columnesGuanyadores([7 x i8]* %0, i8 signext %1) {
%3 = alloca [7 x i8]*
%4 = alloca i8
%5 = alloca i32
%6 = alloca i32
%7 = alloca double
store [7 x i8]* %0, [7 x i8]** %3
store i8 %1, i8* %4
store double 0.000000e+00, double* %7
store i32 3, i32* %5
br label %8
8: ; preds = %81, %2
%9 = load i32, i32* %5
%10 = icmp slt i32 %9, 6
br i1 %10, label %11, label %84
11: ; preds = %8
store i32 0, i32* %6
br label %12
12: ; preds = %77, %11
%13 = load i32, i32* %6
%14 = icmp slt i32 %13, 7
br i1 %14, label %15, label %80
15: ; preds = %12
%16 = load [7 x i8]*, [7 x i8]** %3
%17 = load i32, i32* %5
%18 = sext i32 %17 to i64
%19 = getelementptr inbounds [7 x i8], [7 x i8]* %16, i64 %18
%20 = load i32, i32* %6
%21 = sext i32 %20 to i64
%22 = getelementptr inbounds [7 x i8], [7 x i8]* %19, i64 0, i64 %21
%23 = load i8, i8* %22
%24 = sext i8 %23 to i32
%25 = load i8, i8* %4
%26 = sext i8 %25 to i32
%27 = icmp eq i32 %24, %26
br i1 %27, label %28, label %76
28: ; preds = %15
%29 = load [7 x i8]*, [7 x i8]** %3
%30 = load i32, i32* %5
%31 = sub nsw i32 %30, 1
%32 = sext i32 %31 to i64
%33 = getelementptr inbounds [7 x i8], [7 x i8]* %29, i64 %32
%34 = load i32, i32* %6
%35 = sext i32 %34 to i64
%36 = getelementptr inbounds [7 x i8], [7 x i8]* %33, i64 0, i64 %35
%37 = load i8, i8* %36
%38 = sext i8 %37 to i32
%39 = load i8, i8* %4
%40 = call signext i8 @jugadorRival(i8 signext %39)
%41 = sext i8 %40 to i32
%42 = icmp ne i32 %38, %41
br i1 %42, label %43, label %76
43: ; preds = %28
%44 = load [7 x i8]*, [7 x i8]** %3
%45 = load i32, i32* %5
%46 = sub nsw i32 %45, 2
%47 = sext i32 %46 to i64
%48 = getelementptr inbounds [7 x i8], [7 x i8]* %44, i64 %47
%49 = load i32, i32* %6
%50 = sext i32 %49 to i64
%51 = getelementptr inbounds [7 x i8], [7 x i8]* %48, i64 0, i64 %50
%52 = load i8, i8* %51
%53 = sext i8 %52 to i32
%54 = load i8, i8* %4
%55 = call signext i8 @jugadorRival(i8 signext %54)
%56 = sext i8 %55 to i32
%57 = icmp ne i32 %53, %56
br i1 %57, label %58, label %76
58: ; preds = %43
%59 = load [7 x i8]*, [7 x i8]** %3
%60 = load i32, i32* %5
%61 = sub nsw i32 %60, 3
%62 = sext i32 %61 to i64
%63 = getelementptr inbounds [7 x i8], [7 x i8]* %59, i64 %62
%64 = load i32, i32* %6
%65 = sext i32 %64 to i64
%66 = getelementptr inbounds [7 x i8], [7 x i8]* %63, i64 0, i64 %65
%67 = load i8, i8* %66
%68 = sext i8 %67 to i32
%69 = load i8, i8* %4
%70 = call signext i8 @jugadorRival(i8 signext %69)
%71 = sext i8 %70 to i32
%72 = icmp ne i32 %68, %71
br i1 %72, label %73, label %76
73: ; preds = %58
%74 = load double, double* %7
%75 = fadd double %74, 1.000000e+00
store double %75, double* %7
br label %76
76: ; preds = %73, %58, %43, %28, %15
br label %77
77: ; preds = %76
%78 = load i32, i32* %6
%79 = add nsw i32 %78, 1
store i32 %79, i32* %6
br label %12
80: ; preds = %12
br label %81
81: ; preds = %80
%82 = load i32, i32* %5
%83 = add nsw i32 %82, 1
store i32 %83, i32* %5
br label %8
84: ; preds = %8
%85 = load double, double* %7
ret double %85
}

LLVM IR (-O2):
define double @columnesGuanyadores([7 x i8]* nocapture %0, i8 signext %1) {
%3 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 3, i64 0
%4 = load i8, i8* %3
%5 = icmp eq i8 %4, %1
br i1 %5, label %6, label %22
6: ; preds = %2
%7 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 0
%8 = load i8, i8* %7
%9 = tail call signext i8 @jugadorRival(i8 signext %1)
%10 = icmp eq i8 %8, %9
br i1 %10, label %22, label %11
11: ; preds = %6
%12 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 1, i64 0
%13 = load i8, i8* %12
%14 = tail call signext i8 @jugadorRival(i8 signext %1)
%15 = icmp eq i8 %13, %14
br i1 %15, label %22, label %16
16: ; preds = %11
%17 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 0, i64 0
%18 = load i8, i8* %17
%19 = tail call signext i8 @jugadorRival(i8 signext %1)
%20 = icmp eq i8 %18, %19
%21 = select i1 %20, double 0.000000e+00, double 1.000000e+00
br label %22
22: ; preds = %16, %2, %6, %11
%23 = phi double [ 0.000000e+00, %11 ], [ 0.000000e+00, %6 ], [ 0.000000e+00, %2 ], [ %21, %16 ]
%24 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 3, i64 1
%25 = load i8, i8* %24
%26 = icmp eq i8 %25, %1
br i1 %26, label %27, label %44
27: ; preds = %22
%28 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 1
%29 = load i8, i8* %28
%30 = tail call signext i8 @jugadorRival(i8 signext %1)
%31 = icmp eq i8 %29, %30
br i1 %31, label %44, label %32
32: ; preds = %27
%33 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 1, i64 1
%34 = load i8, i8* %33
%35 = tail call signext i8 @jugadorRival(i8 signext %1)
%36 = icmp eq i8 %34, %35
br i1 %36, label %44, label %37
37: ; preds = %32
%38 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 0, i64 1
%39 = load i8, i8* %38
%40 = tail call signext i8 @jugadorRival(i8 signext %1)
%41 = icmp eq i8 %39, %40
%42 = fadd double %23, 1.000000e+00
%43 = select i1 %41, double %23, double %42
br label %44
44: ; preds = %37, %32, %27, %22
%45 = phi double [ %23, %32 ], [ %23, %27 ], [ %23, %22 ], [ %43, %37 ]
%46 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 3, i64 2
%47 = load i8, i8* %46
%48 = icmp eq i8 %47, %1
br i1 %48, label %49, label %66
49: ; preds = %44
%50 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 2
%51 = load i8, i8* %50
%52 = tail call signext i8 @jugadorRival(i8 signext %1)
%53 = icmp eq i8 %51, %52
br i1 %53, label %66, label %54
54: ; preds = %49
%55 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 1, i64 2
%56 = load i8, i8* %55
%57 = tail call signext i8 @jugadorRival(i8 signext %1)
%58 = icmp eq i8 %56, %57
br i1 %58, label %66, label %59
59: ; preds = %54
%60 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 0, i64 2
%61 = load i8, i8* %60
%62 = tail call signext i8 @jugadorRival(i8 signext %1)
%63 = icmp eq i8 %61, %62
%64 = fadd double %45, 1.000000e+00
%65 = select i1 %63, double %45, double %64
br label %66
66: ; preds = %59, %54, %49, %44
%67 = phi double [ %45, %54 ], [ %45, %49 ], [ %45, %44 ], [ %65, %59 ]
%68 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 3, i64 3
%69 = load i8, i8* %68
%70 = icmp eq i8 %69, %1
br i1 %70, label %71, label %88
71: ; preds = %66
%72 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 3
%73 = load i8, i8* %72
%74 = tail call signext i8 @jugadorRival(i8 signext %1)
%75 = icmp eq i8 %73, %74
br i1 %75, label %88, label %76
76: ; preds = %71
%77 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 1, i64 3
%78 = load i8, i8* %77
%79 = tail call signext i8 @jugadorRival(i8 signext %1)
%80 = icmp eq i8 %78, %79
br i1 %80, label %88, label %81
81: ; preds = %76
%82 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 0, i64 3
%83 = load i8, i8* %82
%84 = tail call signext i8 @jugadorRival(i8 signext %1)
%85 = icmp eq i8 %83, %84
%86 = fadd double %67, 1.000000e+00
%87 = select i1 %85, double %67, double %86
br label %88
88: ; preds = %81, %76, %71, %66
%89 = phi double [ %67, %76 ], [ %67, %71 ], [ %67, %66 ], [ %87, %81 ]
%90 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 3, i64 4
%91 = load i8, i8* %90
%92 = icmp eq i8 %91, %1
br i1 %92, label %93, label %110
93: ; preds = %88
%94 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 4
%95 = load i8, i8* %94
%96 = tail call signext i8 @jugadorRival(i8 signext %1)
%97 = icmp eq i8 %95, %96
br i1 %97, label %110, label %98
98: ; preds = %93
%99 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 1, i64 4
%100 = load i8, i8* %99
%101 = tail call signext i8 @jugadorRival(i8 signext %1)
%102 = icmp eq i8 %100, %101
br i1 %102, label %110, label %103
103: ; preds = %98
%104 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 0, i64 4
%105 = load i8, i8* %104
%106 = tail call signext i8 @jugadorRival(i8 signext %1)
%107 = icmp eq i8 %105, %106
%108 = fadd double %89, 1.000000e+00
%109 = select i1 %107, double %89, double %108
br label %110
110: ; preds = %103, %98, %93, %88
%111 = phi double [ %89, %98 ], [ %89, %93 ], [ %89, %88 ], [ %109, %103 ]
%112 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 3, i64 5
%113 = load i8, i8* %112
%114 = icmp eq i8 %113, %1
br i1 %114, label %115, label %132
115: ; preds = %110
%116 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 5
%117 = load i8, i8* %116
%118 = tail call signext i8 @jugadorRival(i8 signext %1)
%119 = icmp eq i8 %117, %118
br i1 %119, label %132, label %120
120: ; preds = %115
%121 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 1, i64 5
%122 = load i8, i8* %121
%123 = tail call signext i8 @jugadorRival(i8 signext %1)
%124 = icmp eq i8 %122, %123
br i1 %124, label %132, label %125
125: ; preds = %120
%126 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 0, i64 5
%127 = load i8, i8* %126
%128 = tail call signext i8 @jugadorRival(i8 signext %1)
%129 = icmp eq i8 %127, %128
%130 = fadd double %111, 1.000000e+00
%131 = select i1 %129, double %111, double %130
br label %132
132: ; preds = %125, %120, %115, %110
%133 = phi double [ %111, %120 ], [ %111, %115 ], [ %111, %110 ], [ %131, %125 ]
%134 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 3, i64 6
%135 = load i8, i8* %134
%136 = icmp eq i8 %135, %1
br i1 %136, label %137, label %154
137: ; preds = %132
%138 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 6
%139 = load i8, i8* %138
%140 = tail call signext i8 @jugadorRival(i8 signext %1)
%141 = icmp eq i8 %139, %140
br i1 %141, label %154, label %142
142: ; preds = %137
%143 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 1, i64 6
%144 = load i8, i8* %143
%145 = tail call signext i8 @jugadorRival(i8 signext %1)
%146 = icmp eq i8 %144, %145
br i1 %146, label %154, label %147
147: ; preds = %142
%148 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 0, i64 6
%149 = load i8, i8* %148
%150 = tail call signext i8 @jugadorRival(i8 signext %1)
%151 = icmp eq i8 %149, %150
%152 = fadd double %133, 1.000000e+00
%153 = select i1 %151, double %133, double %152
br label %154
154: ; preds = %147, %142, %137, %132
%155 = phi double [ %133, %142 ], [ %133, %137 ], [ %133, %132 ], [ %153, %147 ]
%156 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 4, i64 0
%157 = load i8, i8* %156
%158 = icmp eq i8 %157, %1
br i1 %158, label %159, label %175
159: ; preds = %154
%160 = load i8, i8* %3
%161 = tail call signext i8 @jugadorRival(i8 signext %1)
%162 = icmp eq i8 %160, %161
br i1 %162, label %175, label %163
163: ; preds = %159
%164 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 0
%165 = load i8, i8* %164
%166 = tail call signext i8 @jugadorRival(i8 signext %1)
%167 = icmp eq i8 %165, %166
br i1 %167, label %175, label %168
168: ; preds = %163
%169 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 1, i64 0
%170 = load i8, i8* %169
%171 = tail call signext i8 @jugadorRival(i8 signext %1)
%172 = icmp eq i8 %170, %171
%173 = fadd double %155, 1.000000e+00
%174 = select i1 %172, double %155, double %173
br label %175
175: ; preds = %168, %163, %159, %154
%176 = phi double [ %155, %163 ], [ %155, %159 ], [ %155, %154 ], [ %174, %168 ]
%177 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 4, i64 1
%178 = load i8, i8* %177
%179 = icmp eq i8 %178, %1
br i1 %179, label %180, label %196
180: ; preds = %175
%181 = load i8, i8* %24
%182 = tail call signext i8 @jugadorRival(i8 signext %1)
%183 = icmp eq i8 %181, %182
br i1 %183, label %196, label %184
184: ; preds = %180
%185 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 1
%186 = load i8, i8* %185
%187 = tail call signext i8 @jugadorRival(i8 signext %1)
%188 = icmp eq i8 %186, %187
br i1 %188, label %196, label %189
189: ; preds = %184
%190 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 1, i64 1
%191 = load i8, i8* %190
%192 = tail call signext i8 @jugadorRival(i8 signext %1)
%193 = icmp eq i8 %191, %192
%194 = fadd double %176, 1.000000e+00
%195 = select i1 %193, double %176, double %194
br label %196
196: ; preds = %189, %184, %180, %175
%197 = phi double [ %176, %184 ], [ %176, %180 ], [ %176, %175 ], [ %195, %189 ]
%198 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 4, i64 2
%199 = load i8, i8* %198
%200 = icmp eq i8 %199, %1
br i1 %200, label %201, label %217
201: ; preds = %196
%202 = load i8, i8* %46
%203 = tail call signext i8 @jugadorRival(i8 signext %1)
%204 = icmp eq i8 %202, %203
br i1 %204, label %217, label %205
205: ; preds = %201
%206 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 2
%207 = load i8, i8* %206
%208 = tail call signext i8 @jugadorRival(i8 signext %1)
%209 = icmp eq i8 %207, %208
br i1 %209, label %217, label %210
210: ; preds = %205
%211 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 1, i64 2
%212 = load i8, i8* %211
%213 = tail call signext i8 @jugadorRival(i8 signext %1)
%214 = icmp eq i8 %212, %213
%215 = fadd double %197, 1.000000e+00
%216 = select i1 %214, double %197, double %215
br label %217
217: ; preds = %210, %205, %201, %196
%218 = phi double [ %197, %205 ], [ %197, %201 ], [ %197, %196 ], [ %216, %210 ]
%219 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 4, i64 3
%220 = load i8, i8* %219
%221 = icmp eq i8 %220, %1
br i1 %221, label %222, label %238
222: ; preds = %217
%223 = load i8, i8* %68
%224 = tail call signext i8 @jugadorRival(i8 signext %1)
%225 = icmp eq i8 %223, %224
br i1 %225, label %238, label %226
226: ; preds = %222
%227 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 3
%228 = load i8, i8* %227
%229 = tail call signext i8 @jugadorRival(i8 signext %1)
%230 = icmp eq i8 %228, %229
br i1 %230, label %238, label %231
231: ; preds = %226
%232 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 1, i64 3
%233 = load i8, i8* %232
%234 = tail call signext i8 @jugadorRival(i8 signext %1)
%235 = icmp eq i8 %233, %234
%236 = fadd double %218, 1.000000e+00
%237 = select i1 %235, double %218, double %236
br label %238
238: ; preds = %231, %226, %222, %217
%239 = phi double [ %218, %226 ], [ %218, %222 ], [ %218, %217 ], [ %237, %231 ]
%240 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 4, i64 4
%241 = load i8, i8* %240
%242 = icmp eq i8 %241, %1
br i1 %242, label %243, label %259
243: ; preds = %238
%244 = load i8, i8* %90
%245 = tail call signext i8 @jugadorRival(i8 signext %1)
%246 = icmp eq i8 %244, %245
br i1 %246, label %259, label %247
247: ; preds = %243
%248 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 4
%249 = load i8, i8* %248
%250 = tail call signext i8 @jugadorRival(i8 signext %1)
%251 = icmp eq i8 %249, %250
br i1 %251, label %259, label %252
252: ; preds = %247
%253 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 1, i64 4
%254 = load i8, i8* %253
%255 = tail call signext i8 @jugadorRival(i8 signext %1)
%256 = icmp eq i8 %254, %255
%257 = fadd double %239, 1.000000e+00
%258 = select i1 %256, double %239, double %257
br label %259
259: ; preds = %252, %247, %243, %238
%260 = phi double [ %239, %247 ], [ %239, %243 ], [ %239, %238 ], [ %258, %252 ]
%261 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 4, i64 5
%262 = load i8, i8* %261
%263 = icmp eq i8 %262, %1
br i1 %263, label %264, label %280
264: ; preds = %259
%265 = load i8, i8* %112
%266 = tail call signext i8 @jugadorRival(i8 signext %1)
%267 = icmp eq i8 %265, %266
br i1 %267, label %280, label %268
268: ; preds = %264
%269 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 5
%270 = load i8, i8* %269
%271 = tail call signext i8 @jugadorRival(i8 signext %1)
%272 = icmp eq i8 %270, %271
br i1 %272, label %280, label %273
273: ; preds = %268
%274 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 1, i64 5
%275 = load i8, i8* %274
%276 = tail call signext i8 @jugadorRival(i8 signext %1)
%277 = icmp eq i8 %275, %276
%278 = fadd double %260, 1.000000e+00
%279 = select i1 %277, double %260, double %278
br label %280
280: ; preds = %273, %268, %264, %259
%281 = phi double [ %260, %268 ], [ %260, %264 ], [ %260, %259 ], [ %279, %273 ]
%282 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 4, i64 6
%283 = load i8, i8* %282
%284 = icmp eq i8 %283, %1
br i1 %284, label %285, label %301
285: ; preds = %280
%286 = load i8, i8* %134
%287 = tail call signext i8 @jugadorRival(i8 signext %1)
%288 = icmp eq i8 %286, %287
br i1 %288, label %301, label %289
289: ; preds = %285
%290 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 6
%291 = load i8, i8* %290
%292 = tail call signext i8 @jugadorRival(i8 signext %1)
%293 = icmp eq i8 %291, %292
br i1 %293, label %301, label %294
294: ; preds = %289
%295 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 1, i64 6
%296 = load i8, i8* %295
%297 = tail call signext i8 @jugadorRival(i8 signext %1)
%298 = icmp eq i8 %296, %297
%299 = fadd double %281, 1.000000e+00
%300 = select i1 %298, double %281, double %299
br label %301
301: ; preds = %294, %289, %285, %280
%302 = phi double [ %281, %289 ], [ %281, %285 ], [ %281, %280 ], [ %300, %294 ]
%303 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 5, i64 0
%304 = load i8, i8* %303
%305 = icmp eq i8 %304, %1
br i1 %305, label %306, label %321
306: ; preds = %301
%307 = load i8, i8* %156
%308 = tail call signext i8 @jugadorRival(i8 signext %1)
%309 = icmp eq i8 %307, %308
br i1 %309, label %321, label %310
310: ; preds = %306
%311 = load i8, i8* %3
%312 = tail call signext i8 @jugadorRival(i8 signext %1)
%313 = icmp eq i8 %311, %312
br i1 %313, label %321, label %314
314: ; preds = %310
%315 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 0
%316 = load i8, i8* %315
%317 = tail call signext i8 @jugadorRival(i8 signext %1)
%318 = icmp eq i8 %316, %317
%319 = fadd double %302, 1.000000e+00
%320 = select i1 %318, double %302, double %319
br label %321
321: ; preds = %314, %310, %306, %301
%322 = phi double [ %302, %310 ], [ %302, %306 ], [ %302, %301 ], [ %320, %314 ]
%323 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 5, i64 1
%324 = load i8, i8* %323
%325 = icmp eq i8 %324, %1
br i1 %325, label %326, label %341
326: ; preds = %321
%327 = load i8, i8* %177
%328 = tail call signext i8 @jugadorRival(i8 signext %1)
%329 = icmp eq i8 %327, %328
br i1 %329, label %341, label %330
330: ; preds = %326
%331 = load i8, i8* %24
%332 = tail call signext i8 @jugadorRival(i8 signext %1)
%333 = icmp eq i8 %331, %332
br i1 %333, label %341, label %334
334: ; preds = %330
%335 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 1
%336 = load i8, i8* %335
%337 = tail call signext i8 @jugadorRival(i8 signext %1)
%338 = icmp eq i8 %336, %337
%339 = fadd double %322, 1.000000e+00
%340 = select i1 %338, double %322, double %339
br label %341
341: ; preds = %334, %330, %326, %321
%342 = phi double [ %322, %330 ], [ %322, %326 ], [ %322, %321 ], [ %340, %334 ]
%343 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 5, i64 2
%344 = load i8, i8* %343
%345 = icmp eq i8 %344, %1
br i1 %345, label %346, label %361
346: ; preds = %341
%347 = load i8, i8* %198
%348 = tail call signext i8 @jugadorRival(i8 signext %1)
%349 = icmp eq i8 %347, %348
br i1 %349, label %361, label %350
350: ; preds = %346
%351 = load i8, i8* %46
%352 = tail call signext i8 @jugadorRival(i8 signext %1)
%353 = icmp eq i8 %351, %352
br i1 %353, label %361, label %354
354: ; preds = %350
%355 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 2
%356 = load i8, i8* %355
%357 = tail call signext i8 @jugadorRival(i8 signext %1)
%358 = icmp eq i8 %356, %357
%359 = fadd double %342, 1.000000e+00
%360 = select i1 %358, double %342, double %359
br label %361
361: ; preds = %354, %350, %346, %341
%362 = phi double [ %342, %350 ], [ %342, %346 ], [ %342, %341 ], [ %360, %354 ]
%363 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 5, i64 3
%364 = load i8, i8* %363
%365 = icmp eq i8 %364, %1
br i1 %365, label %366, label %381
366: ; preds = %361
%367 = load i8, i8* %219
%368 = tail call signext i8 @jugadorRival(i8 signext %1)
%369 = icmp eq i8 %367, %368
br i1 %369, label %381, label %370
370: ; preds = %366
%371 = load i8, i8* %68
%372 = tail call signext i8 @jugadorRival(i8 signext %1)
%373 = icmp eq i8 %371, %372
br i1 %373, label %381, label %374
374: ; preds = %370
%375 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 3
%376 = load i8, i8* %375
%377 = tail call signext i8 @jugadorRival(i8 signext %1)
%378 = icmp eq i8 %376, %377
%379 = fadd double %362, 1.000000e+00
%380 = select i1 %378, double %362, double %379
br label %381
381: ; preds = %374, %370, %366, %361
%382 = phi double [ %362, %370 ], [ %362, %366 ], [ %362, %361 ], [ %380, %374 ]
%383 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 5, i64 4
%384 = load i8, i8* %383
%385 = icmp eq i8 %384, %1
br i1 %385, label %386, label %401
386: ; preds = %381
%387 = load i8, i8* %240
%388 = tail call signext i8 @jugadorRival(i8 signext %1)
%389 = icmp eq i8 %387, %388
br i1 %389, label %401, label %390
390: ; preds = %386
%391 = load i8, i8* %90
%392 = tail call signext i8 @jugadorRival(i8 signext %1)
%393 = icmp eq i8 %391, %392
br i1 %393, label %401, label %394
394: ; preds = %390
%395 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 4
%396 = load i8, i8* %395
%397 = tail call signext i8 @jugadorRival(i8 signext %1)
%398 = icmp eq i8 %396, %397
%399 = fadd double %382, 1.000000e+00
%400 = select i1 %398, double %382, double %399
br label %401
401: ; preds = %394, %390, %386, %381
%402 = phi double [ %382, %390 ], [ %382, %386 ], [ %382, %381 ], [ %400, %394 ]
%403 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 5, i64 5
%404 = load i8, i8* %403
%405 = icmp eq i8 %404, %1
br i1 %405, label %406, label %421
406: ; preds = %401
%407 = load i8, i8* %261
%408 = tail call signext i8 @jugadorRival(i8 signext %1)
%409 = icmp eq i8 %407, %408
br i1 %409, label %421, label %410
410: ; preds = %406
%411 = load i8, i8* %112
%412 = tail call signext i8 @jugadorRival(i8 signext %1)
%413 = icmp eq i8 %411, %412
br i1 %413, label %421, label %414
414: ; preds = %410
%415 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 5
%416 = load i8, i8* %415
%417 = tail call signext i8 @jugadorRival(i8 signext %1)
%418 = icmp eq i8 %416, %417
%419 = fadd double %402, 1.000000e+00
%420 = select i1 %418, double %402, double %419
br label %421
421: ; preds = %414, %410, %406, %401
%422 = phi double [ %402, %410 ], [ %402, %406 ], [ %402, %401 ], [ %420, %414 ]
%423 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 5, i64 6
%424 = load i8, i8* %423
%425 = icmp eq i8 %424, %1
br i1 %425, label %426, label %441
426: ; preds = %421
%427 = load i8, i8* %282
%428 = tail call signext i8 @jugadorRival(i8 signext %1)
%429 = icmp eq i8 %427, %428
br i1 %429, label %441, label %430
430: ; preds = %426
%431 = load i8, i8* %134
%432 = tail call signext i8 @jugadorRival(i8 signext %1)
%433 = icmp eq i8 %431, %432
br i1 %433, label %441, label %434
434: ; preds = %430
%435 = getelementptr inbounds [7 x i8], [7 x i8]* %0, i64 2, i64 6
%436 = load i8, i8* %435
%437 = tail call signext i8 @jugadorRival(i8 signext %1)
%438 = icmp eq i8 %436, %437
%439 = fadd double %422, 1.000000e+00
%440 = select i1 %438, double %422, double %439
br label %441
441: ; preds = %434, %430, %426, %421
%442 = phi double [ %422, %430 ], [ %422, %426 ], [ %422, %421 ], [ %440, %434 ]
ret double %442
}