#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 /*<<< orphan*/ scanf(char *, int *);
void main() {
  int n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, m1, m2;
  printf("Numero 1: ");
  scanf("%d", &n1);
  printf("Numero 2: ");
  scanf("%d", &n2);
  printf("Numero 3: ");
  scanf("%d", &n3);
  printf("Numero 4: ");
  scanf("%d", &n4);
  printf("Numero 5: ");
  scanf("%d", &n5);
  printf("Numero 6: ");
  scanf("%d", &n6);
  printf("Numero 7: ");
  scanf("%d", &n7);
  printf("Numero 8: ");
  scanf("%d", &n8);
  printf("Numero 9: ");
  scanf("%d", &n9);
  printf("Numero 10: ");
  scanf("%d", &n10);
  if (n1 > n2) {
    m1 = n1;
    m2 = n2;
  } else {
    m1 = n2;
    m2 = n1;
  }
  if (n3 < m1 && n3 > m2) {
    m2 = n3;
  } else if (n3 > m1) {
    m2 = m1;
    m1 = n3;
  }
  if (n4 < m1 && n4 > m2) {
    m2 = n4;
  } else if (n4 > m1) {
    m2 = m1;
    m1 = n4;
  }
  if (n5 < m1 && n5 > m2) {
    m2 = n5;
  } else if (n5 > m1) {
    m2 = m1;
    m1 = n5;
  }
  if (n6 < m1 && n6 > m2) {
    m2 = n6;
  } else if (n6 > m1) {
    m2 = m1;
    m1 = n6;
  }
  if (n7 < m1 && n7 > m2) {
    m2 = n7;
  } else if (n7 > m1) {
    m2 = m1;
    m1 = n7;
  }
  if (n8 < m2 && n8 > m2) {
    m2 = n8;
  } else if (n8 > m1) {
    m2 = m1;
    m1 = n8;
  }
  if (n9 < m1 && n9 > m2) {
    m2 = n9;
  } else if (n9 > m1) {
    m2 = m1;
    m1 = n9;
  }
  if (n10 < m1 && n10 > m2) {
    m2 = n10;
  } else if (n10 > m1) {
    m2 = m1;
    m1 = n10;
  }
  printf("Maior 2: %d\n", m2);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
lea    0xed1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xece(%rip),%rdi
lea    -0x4(%rbp),%rsi
call   1040 <scanf@plt>
lea    0xec1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xeb0(%rip),%rdi
lea    -0x8(%rbp),%rsi
call   1040 <scanf@plt>
lea    0xeae(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xe92(%rip),%rdi
lea    -0xc(%rbp),%rsi
call   1040 <scanf@plt>
lea    0xe9b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xe74(%rip),%rdi
lea    -0x10(%rbp),%rsi
call   1040 <scanf@plt>
lea    0xe88(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xe56(%rip),%rdi
lea    -0x14(%rbp),%rsi
call   1040 <scanf@plt>
lea    0xe75(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xe38(%rip),%rdi
lea    -0x18(%rbp),%rsi
call   1040 <scanf@plt>
lea    0xe62(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xe1a(%rip),%rdi
lea    -0x1c(%rbp),%rsi
call   1040 <scanf@plt>
lea    0xe4f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xdfc(%rip),%rdi
lea    -0x20(%rbp),%rsi
call   1040 <scanf@plt>
lea    0xe3c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xdde(%rip),%rdi
lea    -0x24(%rbp),%rsi
call   1040 <scanf@plt>
lea    0xe29(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xdc0(%rip),%rdi
lea    -0x28(%rbp),%rsi
call   1040 <scanf@plt>
mov    -0x4(%rbp),%eax
cmp    -0x8(%rbp),%eax
jle    1271 <main+0x151>
mov    -0x4(%rbp),%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,-0x30(%rbp)
jmp    127d <main+0x15d>
mov    -0x8(%rbp),%eax
mov    %eax,-0x2c(%rbp)
mov    -0x4(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0xc(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    12a0 <main+0x180>
mov    -0xc(%rbp),%eax
cmp    -0x30(%rbp),%eax
jle    12a0 <main+0x180>
mov    -0xc(%rbp),%eax
mov    %eax,-0x30(%rbp)
jmp    12bd <main+0x19d>
mov    -0xc(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jle    12b8 <main+0x198>
mov    -0x2c(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0xc(%rbp),%eax
mov    %eax,-0x2c(%rbp)
jmp    12bd <main+0x19d>
mov    -0x10(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    12e0 <main+0x1c0>
mov    -0x10(%rbp),%eax
cmp    -0x30(%rbp),%eax
jle    12e0 <main+0x1c0>
mov    -0x10(%rbp),%eax
mov    %eax,-0x30(%rbp)
jmp    12fd <main+0x1dd>
mov    -0x10(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jle    12f8 <main+0x1d8>
mov    -0x2c(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0x2c(%rbp)
jmp    12fd <main+0x1dd>
mov    -0x14(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1320 <main+0x200>
mov    -0x14(%rbp),%eax
cmp    -0x30(%rbp),%eax
jle    1320 <main+0x200>
mov    -0x14(%rbp),%eax
mov    %eax,-0x30(%rbp)
jmp    133d <main+0x21d>
mov    -0x14(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jle    1338 <main+0x218>
mov    -0x2c(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x14(%rbp),%eax
mov    %eax,-0x2c(%rbp)
jmp    133d <main+0x21d>
mov    -0x18(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1360 <main+0x240>
mov    -0x18(%rbp),%eax
cmp    -0x30(%rbp),%eax
jle    1360 <main+0x240>
mov    -0x18(%rbp),%eax
mov    %eax,-0x30(%rbp)
jmp    137d <main+0x25d>
mov    -0x18(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jle    1378 <main+0x258>
mov    -0x2c(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x18(%rbp),%eax
mov    %eax,-0x2c(%rbp)
jmp    137d <main+0x25d>
mov    -0x1c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    13a0 <main+0x280>
mov    -0x1c(%rbp),%eax
cmp    -0x30(%rbp),%eax
jle    13a0 <main+0x280>
mov    -0x1c(%rbp),%eax
mov    %eax,-0x30(%rbp)
jmp    13bd <main+0x29d>
mov    -0x1c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jle    13b8 <main+0x298>
mov    -0x2c(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x1c(%rbp),%eax
mov    %eax,-0x2c(%rbp)
jmp    13bd <main+0x29d>
mov    -0x20(%rbp),%eax
cmp    -0x30(%rbp),%eax
jge    13e0 <main+0x2c0>
mov    -0x20(%rbp),%eax
cmp    -0x30(%rbp),%eax
jle    13e0 <main+0x2c0>
mov    -0x20(%rbp),%eax
mov    %eax,-0x30(%rbp)
jmp    13fd <main+0x2dd>
mov    -0x20(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jle    13f8 <main+0x2d8>
mov    -0x2c(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x20(%rbp),%eax
mov    %eax,-0x2c(%rbp)
jmp    13fd <main+0x2dd>
mov    -0x24(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1420 <main+0x300>
mov    -0x24(%rbp),%eax
cmp    -0x30(%rbp),%eax
jle    1420 <main+0x300>
mov    -0x24(%rbp),%eax
mov    %eax,-0x30(%rbp)
jmp    143d <main+0x31d>
mov    -0x24(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jle    1438 <main+0x318>
mov    -0x2c(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x24(%rbp),%eax
mov    %eax,-0x2c(%rbp)
jmp    143d <main+0x31d>
mov    -0x28(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1460 <main+0x340>
mov    -0x28(%rbp),%eax
cmp    -0x30(%rbp),%eax
jle    1460 <main+0x340>
mov    -0x28(%rbp),%eax
mov    %eax,-0x30(%rbp)
jmp    147d <main+0x35d>
mov    -0x28(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jle    1478 <main+0x358>
mov    -0x2c(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x28(%rbp),%eax
mov    %eax,-0x2c(%rbp)
jmp    147d <main+0x35d>
mov    -0x30(%rbp),%esi
lea    0xbeb(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
sub    $0x30,%rsp
lea    0xed4(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xed1(%rip),%rbx
lea    0x2c(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0xec0(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x28(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0xeb0(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x24(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0xea0(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x20(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0xe90(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x1c(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0xe80(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x18(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0xe70(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x14(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0xe60(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x10(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0xe50(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xc(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0xe40(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x8(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
mov    0x2c(%rsp),%eax
mov    0x28(%rsp),%ecx
cmp    %ecx,%eax
mov    %ecx,%edx
cmovg  %eax,%edx
cmovg  %ecx,%eax
mov    0x24(%rsp),%ecx
cmp    %eax,%ecx
setg   %dil
cmp    %edx,%ecx
mov    %edx,%esi
cmovg  %ecx,%esi
setl   %bl
cmovg  %edx,%eax
test   %dil,%bl
cmovne %edx,%esi
cmovne %ecx,%eax
mov    0x20(%rsp),%ecx
cmp    %eax,%ecx
setg   %dl
cmp    %esi,%ecx
mov    %esi,%edi
cmovg  %ecx,%edi
cmovg  %esi,%eax
setl   %bl
test   %dl,%bl
cmovne %esi,%edi
cmovne %ecx,%eax
mov    0x1c(%rsp),%ecx
cmp    %eax,%ecx
setg   %dl
cmp    %edi,%ecx
mov    %edi,%esi
cmovg  %ecx,%esi
setl   %bl
cmovg  %edi,%eax
test   %dl,%bl
cmovne %edi,%esi
cmovne %ecx,%eax
mov    0x18(%rsp),%ecx
cmp    %eax,%ecx
setg   %dl
cmp    %esi,%ecx
mov    %esi,%edi
cmovg  %ecx,%edi
cmovg  %esi,%eax
setl   %bl
test   %dl,%bl
cmovne %esi,%edi
cmovne %ecx,%eax
mov    0x14(%rsp),%ecx
cmp    %eax,%ecx
setg   %dl
cmp    %edi,%ecx
mov    %edi,%esi
cmovg  %ecx,%esi
setl   %bl
cmovg  %edi,%eax
test   %dl,%bl
cmovne %edi,%esi
cmovne %ecx,%eax
mov    0x10(%rsp),%ecx
cmp    %esi,%ecx
cmovle %esi,%ecx
cmovg  %esi,%eax
mov    0xc(%rsp),%edx
cmp    %eax,%edx
setg   %sil
cmp    %ecx,%edx
mov    %ecx,%edi
cmovg  %edx,%edi
setl   %bl
cmovg  %ecx,%eax
test   %sil,%bl
cmovne %ecx,%edi
cmovne %edx,%eax
mov    0x8(%rsp),%ecx
cmp    %edi,%ecx
mov    %eax,%edx
cmovg  %edi,%edx
cmp    %eax,%ecx
mov    %edx,%esi
cmovg  %ecx,%esi
cmp    %edi,%ecx
cmovge %edx,%esi
lea    0xd44(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
add    $0x30,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@.str = [11 x i8] c"Numero 1: \00"
@.str.1 = [3 x i8] c"%d\00"
@.str.2 = [11 x i8] c"Numero 2: \00"
@.str.3 = [11 x i8] c"Numero 3: \00"
@.str.4 = [11 x i8] c"Numero 4: \00"
@.str.5 = [11 x i8] c"Numero 5: \00"
@.str.6 = [11 x i8] c"Numero 6: \00"
@.str.7 = [11 x i8] c"Numero 7: \00"
@.str.8 = [11 x i8] c"Numero 8: \00"
@.str.9 = [11 x i8] c"Numero 9: \00"
@.str.10 = [12 x i8] c"Numero 10: \00"
@.str.11 = [13 x i8] c"Maior 2: %d\0A\00"
define void @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i64 0, i64 0))
%14 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %1)
%15 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.2, i64 0, i64 0))
%16 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %2)
%17 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i64 0, i64 0))
%18 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %3)
%19 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.4, i64 0, i64 0))
%20 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %4)
%21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.5, i64 0, i64 0))
%22 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %5)
%23 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.6, i64 0, i64 0))
%24 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %6)
%25 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.7, i64 0, i64 0))
%26 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %7)
%27 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.8, i64 0, i64 0))
%28 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %8)
%29 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.9, i64 0, i64 0))
%30 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %9)
%31 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.10, i64 0, i64 0))
%32 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %10)
%33 = load i32, i32* %1
%34 = load i32, i32* %2
%35 = icmp sgt i32 %33, %34
br i1 %35, label %36, label %39
36: ; preds = %0
%37 = load i32, i32* %1
store i32 %37, i32* %11
%38 = load i32, i32* %2
store i32 %38, i32* %12
br label %42
39: ; preds = %0
%40 = load i32, i32* %2
store i32 %40, i32* %11
%41 = load i32, i32* %1
store i32 %41, i32* %12
br label %42
42: ; preds = %39, %36
%43 = load i32, i32* %3
%44 = load i32, i32* %11
%45 = icmp slt i32 %43, %44
br i1 %45, label %46, label %52
46: ; preds = %42
%47 = load i32, i32* %3
%48 = load i32, i32* %12
%49 = icmp sgt i32 %47, %48
br i1 %49, label %50, label %52
50: ; preds = %46
%51 = load i32, i32* %3
store i32 %51, i32* %12
br label %60
52: ; preds = %46, %42
%53 = load i32, i32* %3
%54 = load i32, i32* %11
%55 = icmp sgt i32 %53, %54
br i1 %55, label %56, label %59
56: ; preds = %52
%57 = load i32, i32* %11
store i32 %57, i32* %12
%58 = load i32, i32* %3
store i32 %58, i32* %11
br label %59
59: ; preds = %56, %52
br label %60
60: ; preds = %59, %50
%61 = load i32, i32* %4
%62 = load i32, i32* %11
%63 = icmp slt i32 %61, %62
br i1 %63, label %64, label %70
64: ; preds = %60
%65 = load i32, i32* %4
%66 = load i32, i32* %12
%67 = icmp sgt i32 %65, %66
br i1 %67, label %68, label %70
68: ; preds = %64
%69 = load i32, i32* %4
store i32 %69, i32* %12
br label %78
70: ; preds = %64, %60
%71 = load i32, i32* %4
%72 = load i32, i32* %11
%73 = icmp sgt i32 %71, %72
br i1 %73, label %74, label %77
74: ; preds = %70
%75 = load i32, i32* %11
store i32 %75, i32* %12
%76 = load i32, i32* %4
store i32 %76, i32* %11
br label %77
77: ; preds = %74, %70
br label %78
78: ; preds = %77, %68
%79 = load i32, i32* %5
%80 = load i32, i32* %11
%81 = icmp slt i32 %79, %80
br i1 %81, label %82, label %88
82: ; preds = %78
%83 = load i32, i32* %5
%84 = load i32, i32* %12
%85 = icmp sgt i32 %83, %84
br i1 %85, label %86, label %88
86: ; preds = %82
%87 = load i32, i32* %5
store i32 %87, i32* %12
br label %96
88: ; preds = %82, %78
%89 = load i32, i32* %5
%90 = load i32, i32* %11
%91 = icmp sgt i32 %89, %90
br i1 %91, label %92, label %95
92: ; preds = %88
%93 = load i32, i32* %11
store i32 %93, i32* %12
%94 = load i32, i32* %5
store i32 %94, i32* %11
br label %95
95: ; preds = %92, %88
br label %96
96: ; preds = %95, %86
%97 = load i32, i32* %6
%98 = load i32, i32* %11
%99 = icmp slt i32 %97, %98
br i1 %99, label %100, label %106
100: ; preds = %96
%101 = load i32, i32* %6
%102 = load i32, i32* %12
%103 = icmp sgt i32 %101, %102
br i1 %103, label %104, label %106
104: ; preds = %100
%105 = load i32, i32* %6
store i32 %105, i32* %12
br label %114
106: ; preds = %100, %96
%107 = load i32, i32* %6
%108 = load i32, i32* %11
%109 = icmp sgt i32 %107, %108
br i1 %109, label %110, label %113
110: ; preds = %106
%111 = load i32, i32* %11
store i32 %111, i32* %12
%112 = load i32, i32* %6
store i32 %112, i32* %11
br label %113
113: ; preds = %110, %106
br label %114
114: ; preds = %113, %104
%115 = load i32, i32* %7
%116 = load i32, i32* %11
%117 = icmp slt i32 %115, %116
br i1 %117, label %118, label %124
118: ; preds = %114
%119 = load i32, i32* %7
%120 = load i32, i32* %12
%121 = icmp sgt i32 %119, %120
br i1 %121, label %122, label %124
122: ; preds = %118
%123 = load i32, i32* %7
store i32 %123, i32* %12
br label %132
124: ; preds = %118, %114
%125 = load i32, i32* %7
%126 = load i32, i32* %11
%127 = icmp sgt i32 %125, %126
br i1 %127, label %128, label %131
128: ; preds = %124
%129 = load i32, i32* %11
store i32 %129, i32* %12
%130 = load i32, i32* %7
store i32 %130, i32* %11
br label %131
131: ; preds = %128, %124
br label %132
132: ; preds = %131, %122
%133 = load i32, i32* %8
%134 = load i32, i32* %12
%135 = icmp slt i32 %133, %134
br i1 %135, label %136, label %142
136: ; preds = %132
%137 = load i32, i32* %8
%138 = load i32, i32* %12
%139 = icmp sgt i32 %137, %138
br i1 %139, label %140, label %142
140: ; preds = %136
%141 = load i32, i32* %8
store i32 %141, i32* %12
br label %150
142: ; preds = %136, %132
%143 = load i32, i32* %8
%144 = load i32, i32* %11
%145 = icmp sgt i32 %143, %144
br i1 %145, label %146, label %149
146: ; preds = %142
%147 = load i32, i32* %11
store i32 %147, i32* %12
%148 = load i32, i32* %8
store i32 %148, i32* %11
br label %149
149: ; preds = %146, %142
br label %150
150: ; preds = %149, %140
%151 = load i32, i32* %9
%152 = load i32, i32* %11
%153 = icmp slt i32 %151, %152
br i1 %153, label %154, label %160
154: ; preds = %150
%155 = load i32, i32* %9
%156 = load i32, i32* %12
%157 = icmp sgt i32 %155, %156
br i1 %157, label %158, label %160
158: ; preds = %154
%159 = load i32, i32* %9
store i32 %159, i32* %12
br label %168
160: ; preds = %154, %150
%161 = load i32, i32* %9
%162 = load i32, i32* %11
%163 = icmp sgt i32 %161, %162
br i1 %163, label %164, label %167
164: ; preds = %160
%165 = load i32, i32* %11
store i32 %165, i32* %12
%166 = load i32, i32* %9
store i32 %166, i32* %11
br label %167
167: ; preds = %164, %160
br label %168
168: ; preds = %167, %158
%169 = load i32, i32* %10
%170 = load i32, i32* %11
%171 = icmp slt i32 %169, %170
br i1 %171, label %172, label %178
172: ; preds = %168
%173 = load i32, i32* %10
%174 = load i32, i32* %12
%175 = icmp sgt i32 %173, %174
br i1 %175, label %176, label %178
176: ; preds = %172
%177 = load i32, i32* %10
store i32 %177, i32* %12
br label %186
178: ; preds = %172, %168
%179 = load i32, i32* %10
%180 = load i32, i32* %11
%181 = icmp sgt i32 %179, %180
br i1 %181, label %182, label %185
182: ; preds = %178
%183 = load i32, i32* %11
store i32 %183, i32* %12
%184 = load i32, i32* %10
store i32 %184, i32* %11
br label %185
185: ; preds = %182, %178
br label %186
186: ; preds = %185, %176
%187 = load i32, i32* %12
%188 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i64 0, i64 0), i32 %187)
ret void
}

LLVM IR (-O2):
@.str = [11 x i8] c"Numero 1: \00"
@.str.1 = [3 x i8] c"%d\00"
@.str.2 = [11 x i8] c"Numero 2: \00"
@.str.3 = [11 x i8] c"Numero 3: \00"
@.str.4 = [11 x i8] c"Numero 4: \00"
@.str.5 = [11 x i8] c"Numero 5: \00"
@.str.6 = [11 x i8] c"Numero 6: \00"
@.str.7 = [11 x i8] c"Numero 7: \00"
@.str.8 = [11 x i8] c"Numero 8: \00"
@.str.9 = [11 x i8] c"Numero 9: \00"
@.str.10 = [12 x i8] c"Numero 10: \00"
@.str.11 = [13 x i8] c"Maior 2: %d\0A\00"
define void @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = bitcast i32* %1 to i8*
%12 = bitcast i32* %2 to i8*
%13 = bitcast i32* %3 to i8*
%14 = bitcast i32* %4 to i8*
%15 = bitcast i32* %5 to i8*
%16 = bitcast i32* %6 to i8*
%17 = bitcast i32* %7 to i8*
%18 = bitcast i32* %8 to i8*
%19 = bitcast i32* %9 to i8*
%20 = bitcast i32* %10 to i8*
%21 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i64 0, i64 0))
%22 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %1)
%23 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.2, i64 0, i64 0))
%24 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %2)
%25 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i64 0, i64 0))
%26 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %3)
%27 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.4, i64 0, i64 0))
%28 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %4)
%29 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.5, i64 0, i64 0))
%30 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %5)
%31 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.6, i64 0, i64 0))
%32 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %6)
%33 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.7, i64 0, i64 0))
%34 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %7)
%35 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.8, i64 0, i64 0))
%36 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %8)
%37 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.9, i64 0, i64 0))
%38 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %9)
%39 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.10, i64 0, i64 0))
%40 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %10)
%41 = load i32, i32* %1
%42 = load i32, i32* %2
%43 = icmp sgt i32 %41, %42
%44 = select i1 %43, i32 %41, i32 %42
%45 = select i1 %43, i32 %42, i32 %41
%46 = load i32, i32* %3
%47 = icmp slt i32 %46, %44
%48 = icmp sgt i32 %46, %45
%49 = select i1 %47, i1 %48, i1 false
%50 = icmp sgt i32 %46, %44
%51 = select i1 %50, i32 %46, i32 %44
%52 = select i1 %50, i32 %44, i32 %45
%53 = select i1 %49, i32 %44, i32 %51
%54 = select i1 %49, i32 %46, i32 %52
%55 = load i32, i32* %4
%56 = icmp slt i32 %55, %53
%57 = icmp sgt i32 %55, %54
%58 = select i1 %56, i1 %57, i1 false
%59 = icmp sgt i32 %55, %53
%60 = select i1 %59, i32 %55, i32 %53
%61 = select i1 %59, i32 %53, i32 %54
%62 = select i1 %58, i32 %53, i32 %60
%63 = select i1 %58, i32 %55, i32 %61
%64 = load i32, i32* %5
%65 = icmp slt i32 %64, %62
%66 = icmp sgt i32 %64, %63
%67 = select i1 %65, i1 %66, i1 false
%68 = icmp sgt i32 %64, %62
%69 = select i1 %68, i32 %64, i32 %62
%70 = select i1 %68, i32 %62, i32 %63
%71 = select i1 %67, i32 %62, i32 %69
%72 = select i1 %67, i32 %64, i32 %70
%73 = load i32, i32* %6
%74 = icmp slt i32 %73, %71
%75 = icmp sgt i32 %73, %72
%76 = select i1 %74, i1 %75, i1 false
%77 = icmp sgt i32 %73, %71
%78 = select i1 %77, i32 %73, i32 %71
%79 = select i1 %77, i32 %71, i32 %72
%80 = select i1 %76, i32 %71, i32 %78
%81 = select i1 %76, i32 %73, i32 %79
%82 = load i32, i32* %7
%83 = icmp slt i32 %82, %80
%84 = icmp sgt i32 %82, %81
%85 = select i1 %83, i1 %84, i1 false
%86 = icmp sgt i32 %82, %80
%87 = select i1 %86, i32 %82, i32 %80
%88 = select i1 %86, i32 %80, i32 %81
%89 = select i1 %85, i32 %80, i32 %87
%90 = select i1 %85, i32 %82, i32 %88
%91 = load i32, i32* %8
%92 = icmp sgt i32 %91, %89
%93 = select i1 %92, i32 %91, i32 %89
%94 = select i1 %92, i32 %89, i32 %90
%95 = load i32, i32* %9
%96 = icmp slt i32 %95, %93
%97 = icmp sgt i32 %95, %94
%98 = select i1 %96, i1 %97, i1 false
%99 = icmp sgt i32 %95, %93
%100 = select i1 %99, i32 %95, i32 %93
%101 = select i1 %99, i32 %93, i32 %94
%102 = select i1 %98, i32 %93, i32 %100
%103 = select i1 %98, i32 %95, i32 %101
%104 = load i32, i32* %10
%105 = icmp slt i32 %104, %102
%106 = icmp sgt i32 %104, %103
%107 = select i1 %105, i1 %106, i1 false
%108 = icmp sgt i32 %104, %102
%109 = select i1 %108, i32 %102, i32 %103
%110 = select i1 %107, i32 %104, i32 %109
%111 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i64 0, i64 0), i32 %110)
ret void
}