#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 *, float *);
int main() {
  int i, j;
  float a[10], temp;
  printf("Enter the elentes of array");
  for (i = 0; i < 10; i++)
    scanf("\n%f", &a[i]);
  for (i = 0; i < 10 - 1; i++)
    for (j = i + 1; j < 10; j++) {
      if (a[i] > a[j]) {
        temp = a[i];
        a[i] = a[j];
        a[j] = temp;
      }
    }
  for (i = 0; i < 10; i++)
    printf("%f \t", a[i]);
  printf(" smaller=%f and BIgger=%f \t", a[0], a[9]);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
movl   $0x0,-0x4(%rbp)
lea    0xeca(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movl   $0x0,-0x8(%rbp)
cmpl   $0xa,-0x8(%rbp)
jge    1177 <main+0x57>
movslq -0x8(%rbp),%rax
lea    -0x40(%rbp),%rsi
shl    $0x2,%rax
add    %rax,%rsi
lea    0xeb7(%rip),%rdi
call   1040 <scanf@plt>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1144 <main+0x24>
movl   $0x0,-0x8(%rbp)
cmpl   $0x9,-0x8(%rbp)
jge    120c <main+0xec>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
cmpl   $0xa,-0xc(%rbp)
jge    11f9 <main+0xd9>
movslq -0x8(%rbp),%rax
movss  -0x40(%rbp,%rax,4),%xmm0
movslq -0xc(%rbp),%rax
ucomiss -0x40(%rbp,%rax,4),%xmm0
jbe    11e6 <main+0xc6>
movslq -0x8(%rbp),%rax
movss  -0x40(%rbp,%rax,4),%xmm0
movss  %xmm0,-0x44(%rbp)
movslq -0xc(%rbp),%rax
movss  -0x40(%rbp,%rax,4),%xmm0
movslq -0x8(%rbp),%rax
movss  %xmm0,-0x40(%rbp,%rax,4)
movss  -0x44(%rbp),%xmm0
movslq -0xc(%rbp),%rax
movss  %xmm0,-0x40(%rbp,%rax,4)
jmp    11eb <main+0xcb>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1191 <main+0x71>
jmp    11fe <main+0xde>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    117e <main+0x5e>
movl   $0x0,-0x8(%rbp)
cmpl   $0xa,-0x8(%rbp)
jge    1247 <main+0x127>
movslq -0x8(%rbp),%rax
movss  -0x40(%rbp,%rax,4),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xe04(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1213 <main+0xf3>
movss  -0x40(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movss  -0x1c(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
lea    0xdbf(%rip),%rdi
mov    $0x2,%al
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x50,%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    0xee1(%rip),%rbx
mov    %rsp,%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0x4(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0x8(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0xc(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0x10(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0x14(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0x18(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0x1c(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0x20(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
lea    0x24(%rsp),%rsi
mov    %rbx,%rdi
call   1040 <scanf@plt>
mov    $0x1,%eax
movss  (%rsp),%xmm0
jmp    11da <main+0xba>
cs nopw 0x0(%rax,%rax,1)
add    $0x1,%rax
cmp    $0xa,%rax
je     11f3 <main+0xd3>
movss  (%rsp,%rax,4),%xmm1
ucomiss %xmm1,%xmm0
jbe    11d0 <main+0xb0>
movss  %xmm1,(%rsp)
movss  %xmm0,(%rsp,%rax,4)
movaps %xmm1,%xmm0
jmp    11d0 <main+0xb0>
xor    %eax,%eax
jmp    120a <main+0xea>
nopw   0x0(%rax,%rax,1)
add    $0x1,%rax
cmp    $0x8,%rax
je     1229 <main+0x109>
movss  0x4(%rsp),%xmm0
movss  0x8(%rsp,%rax,4),%xmm1
ucomiss %xmm1,%xmm0
jbe    1200 <main+0xe0>
movss  %xmm1,0x4(%rsp)
movss  %xmm0,0x8(%rsp,%rax,4)
jmp    1200 <main+0xe0>
xor    %eax,%eax
jmp    123a <main+0x11a>
nopl   (%rax)
add    $0x1,%rax
cmp    $0x7,%rax
je     1259 <main+0x139>
movss  0x8(%rsp),%xmm0
movss  0xc(%rsp,%rax,4),%xmm1
ucomiss %xmm1,%xmm0
jbe    1230 <main+0x110>
movss  %xmm1,0x8(%rsp)
movss  %xmm0,0xc(%rsp,%rax,4)
jmp    1230 <main+0x110>
xor    %eax,%eax
jmp    126a <main+0x14a>
nopl   (%rax)
add    $0x1,%rax
cmp    $0x6,%rax
je     1289 <main+0x169>
movss  0xc(%rsp),%xmm0
movss  0x10(%rsp,%rax,4),%xmm1
ucomiss %xmm1,%xmm0
jbe    1260 <main+0x140>
movss  %xmm1,0xc(%rsp)
movss  %xmm0,0x10(%rsp,%rax,4)
jmp    1260 <main+0x140>
xor    %eax,%eax
jmp    129a <main+0x17a>
nopl   (%rax)
add    $0x1,%rax
cmp    $0x5,%rax
je     12b9 <main+0x199>
movss  0x10(%rsp),%xmm0
movss  0x14(%rsp,%rax,4),%xmm1
ucomiss %xmm1,%xmm0
jbe    1290 <main+0x170>
movss  %xmm1,0x10(%rsp)
movss  %xmm0,0x14(%rsp,%rax,4)
jmp    1290 <main+0x170>
xor    %eax,%eax
jmp    12ca <main+0x1aa>
nopl   (%rax)
add    $0x1,%rax
cmp    $0x4,%rax
je     12e9 <main+0x1c9>
movss  0x14(%rsp),%xmm0
movss  0x18(%rsp,%rax,4),%xmm1
ucomiss %xmm1,%xmm0
jbe    12c0 <main+0x1a0>
movss  %xmm1,0x14(%rsp)
movss  %xmm0,0x18(%rsp,%rax,4)
jmp    12c0 <main+0x1a0>
xor    %eax,%eax
jmp    12fa <main+0x1da>
nopl   (%rax)
add    $0x1,%rax
cmp    $0x3,%rax
je     1319 <main+0x1f9>
movss  0x18(%rsp),%xmm0
movss  0x1c(%rsp,%rax,4),%xmm1
ucomiss %xmm1,%xmm0
jbe    12f0 <main+0x1d0>
movss  %xmm1,0x18(%rsp)
movss  %xmm0,0x1c(%rsp,%rax,4)
jmp    12f0 <main+0x1d0>
xor    %eax,%eax
jmp    132a <main+0x20a>
nopl   (%rax)
add    $0x1,%rax
cmp    $0x2,%rax
je     1349 <main+0x229>
movss  0x1c(%rsp),%xmm0
movss  0x20(%rsp,%rax,4),%xmm1
ucomiss %xmm1,%xmm0
jbe    1320 <main+0x200>
movss  %xmm1,0x1c(%rsp)
movss  %xmm0,0x20(%rsp,%rax,4)
jmp    1320 <main+0x200>
xor    %eax,%eax
jmp    135a <main+0x23a>
nopl   (%rax)
add    $0x1,%rax
cmp    $0x1,%rax
je     1379 <main+0x259>
movss  0x20(%rsp),%xmm0
movss  0x24(%rsp,%rax,4),%xmm1
ucomiss %xmm1,%xmm0
jbe    1350 <main+0x230>
movss  %xmm1,0x20(%rsp)
movss  %xmm0,0x24(%rsp,%rax,4)
jmp    1350 <main+0x230>
movss  (%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xcad(%rip),%rbx
mov    %rbx,%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movss  0x4(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movss  0x8(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movss  0xc(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movss  0x10(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movss  0x14(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movss  0x18(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movss  0x1c(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movss  0x20(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movss  0x24(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movss  (%rsp),%xmm0
movss  0x24(%rsp),%xmm1
cvtss2sd %xmm0,%xmm0
cvtss2sd %xmm1,%xmm1
lea    0xbbe(%rip),%rdi
mov    $0x2,%al
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x30,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@.str = [27 x i8] c"Enter the elentes of array\00"
@.str.1 = [4 x i8] c"\0A%f\00"
@.str.2 = [5 x i8] c"%f \09\00"
@.str.3 = [28 x i8] c" smaller=%f and BIgger=%f \09\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca [10 x float]
%5 = alloca float
store i32 0, i32* %1
%6 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str, i64 0, i64 0))
store i32 0, i32* %2
br label %7
7: ; preds = %15, %0
%8 = load i32, i32* %2
%9 = icmp slt i32 %8, 10
br i1 %9, label %10, label %18
10: ; preds = %7
%11 = load i32, i32* %2
%12 = sext i32 %11 to i64
%13 = getelementptr inbounds [10 x float], [10 x float]* %4, i64 0, i64 %12
%14 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), float* %13)
br label %15
15: ; preds = %10
%16 = load i32, i32* %2
%17 = add nsw i32 %16, 1
store i32 %17, i32* %2
br label %7
18: ; preds = %7
store i32 0, i32* %2
br label %19
19: ; preds = %59, %18
%20 = load i32, i32* %2
%21 = icmp slt i32 %20, 9
br i1 %21, label %22, label %62
22: ; preds = %19
%23 = load i32, i32* %2
%24 = add nsw i32 %23, 1
store i32 %24, i32* %3
br label %25
25: ; preds = %55, %22
%26 = load i32, i32* %3
%27 = icmp slt i32 %26, 10
br i1 %27, label %28, label %58
28: ; preds = %25
%29 = load i32, i32* %2
%30 = sext i32 %29 to i64
%31 = getelementptr inbounds [10 x float], [10 x float]* %4, i64 0, i64 %30
%32 = load float, float* %31
%33 = load i32, i32* %3
%34 = sext i32 %33 to i64
%35 = getelementptr inbounds [10 x float], [10 x float]* %4, i64 0, i64 %34
%36 = load float, float* %35
%37 = fcmp ogt float %32, %36
br i1 %37, label %38, label %54
38: ; preds = %28
%39 = load i32, i32* %2
%40 = sext i32 %39 to i64
%41 = getelementptr inbounds [10 x float], [10 x float]* %4, i64 0, i64 %40
%42 = load float, float* %41
store float %42, float* %5
%43 = load i32, i32* %3
%44 = sext i32 %43 to i64
%45 = getelementptr inbounds [10 x float], [10 x float]* %4, i64 0, i64 %44
%46 = load float, float* %45
%47 = load i32, i32* %2
%48 = sext i32 %47 to i64
%49 = getelementptr inbounds [10 x float], [10 x float]* %4, i64 0, i64 %48
store float %46, float* %49
%50 = load float, float* %5
%51 = load i32, i32* %3
%52 = sext i32 %51 to i64
%53 = getelementptr inbounds [10 x float], [10 x float]* %4, i64 0, i64 %52
store float %50, float* %53
br label %54
54: ; preds = %38, %28
br label %55
55: ; preds = %54
%56 = load i32, i32* %3
%57 = add nsw i32 %56, 1
store i32 %57, i32* %3
br label %25
58: ; preds = %25
br label %59
59: ; preds = %58
%60 = load i32, i32* %2
%61 = add nsw i32 %60, 1
store i32 %61, i32* %2
br label %19
62: ; preds = %19
store i32 0, i32* %2
br label %63
63: ; preds = %73, %62
%64 = load i32, i32* %2
%65 = icmp slt i32 %64, 10
br i1 %65, label %66, label %76
66: ; preds = %63
%67 = load i32, i32* %2
%68 = sext i32 %67 to i64
%69 = getelementptr inbounds [10 x float], [10 x float]* %4, i64 0, i64 %68
%70 = load float, float* %69
%71 = fpext float %70 to double
%72 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), double %71)
br label %73
73: ; preds = %66
%74 = load i32, i32* %2
%75 = add nsw i32 %74, 1
store i32 %75, i32* %2
br label %63
76: ; preds = %63
%77 = getelementptr inbounds [10 x float], [10 x float]* %4, i64 0, i64 0
%78 = load float, float* %77
%79 = fpext float %78 to double
%80 = getelementptr inbounds [10 x float], [10 x float]* %4, i64 0, i64 9
%81 = load float, float* %80
%82 = fpext float %81 to double
%83 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.3, i64 0, i64 0), double %79, double %82)
ret i32 0
}

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