#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 */
int /*<<< orphan*/ printf(char *, int, int, int, int, int);
main() {
  int a, b, c, d;
  a = 1;
  b = 2;
  c = 5;
  d = 3;
  printf("El máximo de los numeros(%d,%d,%d,%d)=%d\n", a, b, c, d,
         ((((((a) > (b) ? (a) : (b))) > (c) ? (((a) > (b) ? (a) : (b)))
                                            : (c))) > (d)
              ? (((((a) > (b) ? (a) : (b))) > (c) ? (((a) > (b) ? (a) : (b)))
                                                  : (c)))
              : (d)));
  printf("El máximo de los numeros(%d,%d,%d,%d)=%d\n", a, c, b, d,
         ((((((a) > (c) ? (a) : (c))) > (b) ? (((a) > (c) ? (a) : (c)))
                                            : (b))) > (d)
              ? (((((a) > (c) ? (a) : (c))) > (b) ? (((a) > (c) ? (a) : (c)))
                                                  : (b)))
              : (d)));
  printf("El máximo de los numeros(%d,%d,%d,%d)=%d\n", d, b, c, a,
         ((((((d) > (b) ? (d) : (b))) > (c) ? (((d) > (b) ? (d) : (b)))
                                            : (c))) > (a)
              ? (((((d) > (b) ? (d) : (b))) > (c) ? (((d) > (b) ? (d) : (b)))
                                                  : (c)))
              : (a)));
  printf("El máximo de los numeros(%d,%d,%d,%d)=%d\n", c, a, d, b,
         ((((((c) > (a) ? (c) : (a))) > (d) ? (((c) > (a) ? (c) : (a)))
                                            : (d))) > (b)
              ? (((((c) > (a) ? (c) : (a))) > (d) ? (((c) > (a) ? (c) : (a)))
                                                  : (d)))
              : (b)));
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0xd0,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x1,-0x8(%rbp)
movl   $0x2,-0xc(%rbp)
movl   $0x5,-0x10(%rbp)
movl   $0x3,-0x14(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0xc(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x14(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    116d <main+0x5d>
mov    -0x8(%rbp),%eax
mov    %eax,-0x28(%rbp)
jmp    1173 <main+0x63>
mov    -0xc(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
cmp    -0x10(%rbp),%eax
jle    11a7 <main+0x97>
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    1196 <main+0x86>
mov    -0x8(%rbp),%eax
mov    %eax,-0x2c(%rbp)
jmp    119c <main+0x8c>
mov    -0xc(%rbp),%eax
mov    %eax,-0x2c(%rbp)
mov    -0x2c(%rbp),%eax
mov    %eax,-0x30(%rbp)
jmp    11ad <main+0x9d>
mov    -0x10(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    121b <main+0x10b>
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    11d0 <main+0xc0>
mov    -0x8(%rbp),%eax
mov    %eax,-0x34(%rbp)
jmp    11d6 <main+0xc6>
mov    -0xc(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x34(%rbp),%eax
cmp    -0x10(%rbp),%eax
jle    120a <main+0xfa>
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    11f9 <main+0xe9>
mov    -0x8(%rbp),%eax
mov    %eax,-0x38(%rbp)
jmp    11ff <main+0xef>
mov    -0xc(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x38(%rbp),%eax
mov    %eax,-0x3c(%rbp)
jmp    1210 <main+0x100>
mov    -0x10(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
mov    %eax,-0x40(%rbp)
jmp    1221 <main+0x111>
mov    -0x14(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x18(%rbp),%r8d
mov    -0x1c(%rbp),%ecx
mov    -0x20(%rbp),%edx
mov    -0x24(%rbp),%esi
mov    -0x40(%rbp),%r9d
lea    0xdc7(%rip),%rdi
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0xc(%rbp),%eax
mov    %eax,-0x48(%rbp)
mov    -0x14(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x8(%rbp),%eax
cmp    -0x10(%rbp),%eax
jle    126d <main+0x15d>
mov    -0x8(%rbp),%eax
mov    %eax,-0x54(%rbp)
jmp    1273 <main+0x163>
mov    -0x10(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x54(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    12a7 <main+0x197>
mov    -0x8(%rbp),%eax
cmp    -0x10(%rbp),%eax
jle    1296 <main+0x186>
mov    -0x8(%rbp),%eax
mov    %eax,-0x58(%rbp)
jmp    129c <main+0x18c>
mov    -0x10(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0x58(%rbp),%eax
mov    %eax,-0x5c(%rbp)
jmp    12ad <main+0x19d>
mov    -0xc(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    131b <main+0x20b>
mov    -0x8(%rbp),%eax
cmp    -0x10(%rbp),%eax
jle    12d0 <main+0x1c0>
mov    -0x8(%rbp),%eax
mov    %eax,-0x60(%rbp)
jmp    12d6 <main+0x1c6>
mov    -0x10(%rbp),%eax
mov    %eax,-0x60(%rbp)
mov    -0x60(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    130a <main+0x1fa>
mov    -0x8(%rbp),%eax
cmp    -0x10(%rbp),%eax
jle    12f9 <main+0x1e9>
mov    -0x8(%rbp),%eax
mov    %eax,-0x64(%rbp)
jmp    12ff <main+0x1ef>
mov    -0x10(%rbp),%eax
mov    %eax,-0x64(%rbp)
mov    -0x64(%rbp),%eax
mov    %eax,-0x68(%rbp)
jmp    1310 <main+0x200>
mov    -0xc(%rbp),%eax
mov    %eax,-0x68(%rbp)
mov    -0x68(%rbp),%eax
mov    %eax,-0x6c(%rbp)
jmp    1321 <main+0x211>
mov    -0x14(%rbp),%eax
mov    %eax,-0x6c(%rbp)
mov    -0x44(%rbp),%r8d
mov    -0x48(%rbp),%ecx
mov    -0x4c(%rbp),%edx
mov    -0x50(%rbp),%esi
mov    -0x6c(%rbp),%r9d
lea    0xcc7(%rip),%rdi
call   1030 <printf@plt>
mov    -0x14(%rbp),%eax
mov    %eax,-0x7c(%rbp)
mov    -0xc(%rbp),%eax
mov    %eax,-0x78(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0x74(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,-0x70(%rbp)
mov    -0x14(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    136d <main+0x25d>
mov    -0x14(%rbp),%eax
mov    %eax,-0x80(%rbp)
jmp    1373 <main+0x263>
mov    -0xc(%rbp),%eax
mov    %eax,-0x80(%rbp)
mov    -0x80(%rbp),%eax
cmp    -0x10(%rbp),%eax
jle    13b3 <main+0x2a3>
mov    -0x14(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    1399 <main+0x289>
mov    -0x14(%rbp),%eax
mov    %eax,-0x84(%rbp)
jmp    13a2 <main+0x292>
mov    -0xc(%rbp),%eax
mov    %eax,-0x84(%rbp)
mov    -0x84(%rbp),%eax
mov    %eax,-0x88(%rbp)
jmp    13bc <main+0x2ac>
mov    -0x10(%rbp),%eax
mov    %eax,-0x88(%rbp)
mov    -0x88(%rbp),%eax
cmp    -0x8(%rbp),%eax
jle    144b <main+0x33b>
mov    -0x14(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    13e5 <main+0x2d5>
mov    -0x14(%rbp),%eax
mov    %eax,-0x8c(%rbp)
jmp    13ee <main+0x2de>
mov    -0xc(%rbp),%eax
mov    %eax,-0x8c(%rbp)
mov    -0x8c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jle    1431 <main+0x321>
mov    -0x14(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    1417 <main+0x307>
mov    -0x14(%rbp),%eax
mov    %eax,-0x90(%rbp)
jmp    1420 <main+0x310>
mov    -0xc(%rbp),%eax
mov    %eax,-0x90(%rbp)
mov    -0x90(%rbp),%eax
mov    %eax,-0x94(%rbp)
jmp    143a <main+0x32a>
mov    -0x10(%rbp),%eax
mov    %eax,-0x94(%rbp)
mov    -0x94(%rbp),%eax
mov    %eax,-0x98(%rbp)
jmp    1454 <main+0x344>
mov    -0x8(%rbp),%eax
mov    %eax,-0x98(%rbp)
mov    -0x70(%rbp),%r8d
mov    -0x74(%rbp),%ecx
mov    -0x78(%rbp),%edx
mov    -0x7c(%rbp),%esi
mov    -0x98(%rbp),%r9d
lea    0xb91(%rip),%rdi
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
mov    %eax,-0xa8(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,-0xa4(%rbp)
mov    -0x14(%rbp),%eax
mov    %eax,-0xa0(%rbp)
mov    -0xc(%rbp),%eax
mov    %eax,-0x9c(%rbp)
mov    -0x10(%rbp),%eax
cmp    -0x8(%rbp),%eax
jle    14b2 <main+0x3a2>
mov    -0x10(%rbp),%eax
mov    %eax,-0xac(%rbp)
jmp    14bb <main+0x3ab>
mov    -0x8(%rbp),%eax
mov    %eax,-0xac(%rbp)
mov    -0xac(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    14fe <main+0x3ee>
mov    -0x10(%rbp),%eax
cmp    -0x8(%rbp),%eax
jle    14e4 <main+0x3d4>
mov    -0x10(%rbp),%eax
mov    %eax,-0xb0(%rbp)
jmp    14ed <main+0x3dd>
mov    -0x8(%rbp),%eax
mov    %eax,-0xb0(%rbp)
mov    -0xb0(%rbp),%eax
mov    %eax,-0xb4(%rbp)
jmp    1507 <main+0x3f7>
mov    -0x14(%rbp),%eax
mov    %eax,-0xb4(%rbp)
mov    -0xb4(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    1596 <main+0x486>
mov    -0x10(%rbp),%eax
cmp    -0x8(%rbp),%eax
jle    1530 <main+0x420>
mov    -0x10(%rbp),%eax
mov    %eax,-0xb8(%rbp)
jmp    1539 <main+0x429>
mov    -0x8(%rbp),%eax
mov    %eax,-0xb8(%rbp)
mov    -0xb8(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    157c <main+0x46c>
mov    -0x10(%rbp),%eax
cmp    -0x8(%rbp),%eax
jle    1562 <main+0x452>
mov    -0x10(%rbp),%eax
mov    %eax,-0xbc(%rbp)
jmp    156b <main+0x45b>
mov    -0x8(%rbp),%eax
mov    %eax,-0xbc(%rbp)
mov    -0xbc(%rbp),%eax
mov    %eax,-0xc0(%rbp)
jmp    1585 <main+0x475>
mov    -0x14(%rbp),%eax
mov    %eax,-0xc0(%rbp)
mov    -0xc0(%rbp),%eax
mov    %eax,-0xc4(%rbp)
jmp    159f <main+0x48f>
mov    -0xc(%rbp),%eax
mov    %eax,-0xc4(%rbp)
mov    -0x9c(%rbp),%r8d
mov    -0xa0(%rbp),%ecx
mov    -0xa4(%rbp),%edx
mov    -0xa8(%rbp),%esi
mov    -0xc4(%rbp),%r9d
lea    0xa3a(%rip),%rdi
call   1030 <printf@plt>
xor    %eax,%eax
add    $0xd0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
lea    0xee8(%rip),%rbx
mov    %rbx,%rdi
mov    $0x1,%esi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    $0x3,%r8d
mov    $0x5,%r9d
call   1030 <printf@plt>
mov    %rbx,%rdi
mov    $0x1,%esi
mov    $0x5,%edx
mov    $0x2,%ecx
mov    $0x3,%r8d
mov    $0x5,%r9d
call   1030 <printf@plt>
mov    %rbx,%rdi
mov    $0x3,%esi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    $0x1,%r8d
mov    $0x5,%r9d
call   1030 <printf@plt>
mov    %rbx,%rdi
mov    $0x5,%esi
mov    $0x1,%edx
mov    $0x3,%ecx
mov    $0x2,%r8d
mov    $0x5,%r9d
call   1030 <printf@plt>
xor    %eax,%eax
pop    %rbx
ret

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

LLVM IR (-O2):
@.str = [43 x i8] c"El m\C3\A1ximo de los numeros(%d,%d,%d,%d)=%d\0A\00"
define i32 @main() {
%1 = tail call i32 @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str, i64 0, i64 0), i32 1, i32 2, i32 5, i32 3, i32 5)
%2 = tail call i32 @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str, i64 0, i64 0), i32 1, i32 5, i32 2, i32 3, i32 5)
%3 = tail call i32 @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str, i64 0, i64 0), i32 3, i32 2, i32 5, i32 1, i32 5)
%4 = tail call i32 @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str, i64 0, i64 0), i32 5, i32 1, i32 3, i32 2, i32 5)
ret i32 0
}