void sortList(long double sorted[][2]) {
  short i, j;
  long double temp, temp2;
  for (i = 13; i >= 0; i--) {
    for (j = 1; j <= i; j++) {
      if (sorted[j - 1][0] < sorted[j][0]) {
        temp = sorted[j][0];
        temp2 = sorted[j][1];
        sorted[j][0] = sorted[j - 1][0];
        sorted[j][1] = sorted[j - 1][1];
        sorted[j - 1][0] = temp;
        sorted[j - 1][1] = temp2;
      }
    }
  }
}


x86 assembly (clang, -O0):
<sortList>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
movw   $0xd,-0xa(%rbp)
movswl -0xa(%rbp),%eax
cmp    $0x0,%eax
jl     1223 <sortList+0x123>
movw   $0x1,-0xc(%rbp)
movswl -0xc(%rbp),%eax
movswl -0xa(%rbp),%ecx
cmp    %ecx,%eax
jg     120d <sortList+0x10d>
mov    -0x8(%rbp),%rax
movswq -0xc(%rbp),%rcx
mov    %ecx,%edx
add    $0xffffffff,%edx
movslq %edx,%rdx
shl    $0x5,%rdx
fldt   (%rax,%rdx,1)
shl    $0x5,%rcx
fldt   (%rax,%rcx,1)
fucomip %st(1),%st
fstp   %st(0)
jbe    11f7 <sortList+0xf7>
jmp    115f <sortList+0x5f>
mov    -0x8(%rbp),%rax
movswq -0xc(%rbp),%rcx
shl    $0x5,%rcx
fldt   (%rax,%rcx,1)
fstpt  -0x20(%rbp)
mov    -0x8(%rbp),%rax
movswq -0xc(%rbp),%rcx
shl    $0x5,%rcx
fldt   0x10(%rax,%rcx,1)
fstpt  -0x30(%rbp)
mov    -0x8(%rbp),%rax
movswq -0xc(%rbp),%rcx
mov    %ecx,%edx
add    $0xffffffff,%edx
movslq %edx,%rdx
shl    $0x5,%rdx
fldt   (%rax,%rdx,1)
shl    $0x5,%rcx
fstpt  (%rax,%rcx,1)
mov    -0x8(%rbp),%rax
movswq -0xc(%rbp),%rcx
mov    %ecx,%edx
add    $0xffffffff,%edx
movslq %edx,%rdx
shl    $0x5,%rdx
fldt   0x10(%rax,%rdx,1)
shl    $0x5,%rcx
fstpt  0x10(%rax,%rcx,1)
fldt   -0x20(%rbp)
mov    -0x8(%rbp),%rax
movswl -0xc(%rbp),%ecx
add    $0xffffffff,%ecx
movslq %ecx,%rcx
shl    $0x5,%rcx
fstpt  (%rax,%rcx,1)
fldt   -0x30(%rbp)
mov    -0x8(%rbp),%rax
movswl -0xc(%rbp),%ecx
add    $0xffffffff,%ecx
movslq %ecx,%rcx
shl    $0x5,%rcx
fstpt  0x10(%rax,%rcx,1)
jmp    11fc <sortList+0xfc>
mov    -0xc(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0xc(%rbp)
jmp    1121 <sortList+0x21>
jmp    1212 <sortList+0x112>
mov    -0xa(%rbp),%ax
add    $0xffff,%ax
mov    %ax,-0xa(%rbp)
jmp    110e <sortList+0xe>
pop    %rbp
ret

x86 assembly (clang, -O2):
<sortList>:
lea    0x30(%rdi),%r8
mov    $0xd,%ecx
mov    $0xd,%edx
jmp    111a <sortList+0x1a>
fstp   %st(0)
test   %rcx,%rcx
mov    %rdx,%rcx
jle    115c <sortList+0x5c>
sub    $0x1,%rdx
jb     115c <sortList+0x5c>
fldt   (%rdi)
mov    %r8,%rsi
xor    %eax,%eax
jmp    1151 <sortList+0x51>
nopl   0x0(%rax)
fldt   (%rsi)
fld    %st(2)
fstpt  -0x10(%rsi)
fldt   -0x20(%rsi)
fstpt  (%rsi)
fxch   %st(1)
fstpt  -0x30(%rsi)
fstpt  -0x20(%rsi)
add    $0x1,%rax
add    $0x20,%rsi
cmp    %rcx,%rax
jae    1110 <sortList+0x10>
fldt   -0x10(%rsi)
fucomi %st(1),%st
ja     1130 <sortList+0x30>
fstp   %st(1)
jmp    1144 <sortList+0x44>
ret

LLVM IR (-O0):
define void @sortList([2 x x86_fp80]* %0) {
%2 = alloca [2 x x86_fp80]*
%3 = alloca i16
%4 = alloca i16
%5 = alloca x86_fp80
%6 = alloca x86_fp80
store [2 x x86_fp80]* %0, [2 x x86_fp80]** %2
store i16 13, i16* %3
br label %7
7: ; preds = %94, %1
%8 = load i16, i16* %3
%9 = sext i16 %8 to i32
%10 = icmp sge i32 %9, 0
br i1 %10, label %11, label %97
11: ; preds = %7
store i16 1, i16* %4
br label %12
12: ; preds = %90, %11
%13 = load i16, i16* %4
%14 = sext i16 %13 to i32
%15 = load i16, i16* %3
%16 = sext i16 %15 to i32
%17 = icmp sle i32 %14, %16
br i1 %17, label %18, label %93
18: ; preds = %12
%19 = load [2 x x86_fp80]*, [2 x x86_fp80]** %2
%20 = load i16, i16* %4
%21 = sext i16 %20 to i32
%22 = sub nsw i32 %21, 1
%23 = sext i32 %22 to i64
%24 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %19, i64 %23
%25 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %24, i64 0, i64 0
%26 = load x86_fp80, x86_fp80* %25
%27 = load [2 x x86_fp80]*, [2 x x86_fp80]** %2
%28 = load i16, i16* %4
%29 = sext i16 %28 to i64
%30 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %27, i64 %29
%31 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %30, i64 0, i64 0
%32 = load x86_fp80, x86_fp80* %31
%33 = fcmp olt x86_fp80 %26, %32
br i1 %33, label %34, label %89
34: ; preds = %18
%35 = load [2 x x86_fp80]*, [2 x x86_fp80]** %2
%36 = load i16, i16* %4
%37 = sext i16 %36 to i64
%38 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %35, i64 %37
%39 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %38, i64 0, i64 0
%40 = load x86_fp80, x86_fp80* %39
store x86_fp80 %40, x86_fp80* %5
%41 = load [2 x x86_fp80]*, [2 x x86_fp80]** %2
%42 = load i16, i16* %4
%43 = sext i16 %42 to i64
%44 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %41, i64 %43
%45 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %44, i64 0, i64 1
%46 = load x86_fp80, x86_fp80* %45
store x86_fp80 %46, x86_fp80* %6
%47 = load [2 x x86_fp80]*, [2 x x86_fp80]** %2
%48 = load i16, i16* %4
%49 = sext i16 %48 to i32
%50 = sub nsw i32 %49, 1
%51 = sext i32 %50 to i64
%52 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %47, i64 %51
%53 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %52, i64 0, i64 0
%54 = load x86_fp80, x86_fp80* %53
%55 = load [2 x x86_fp80]*, [2 x x86_fp80]** %2
%56 = load i16, i16* %4
%57 = sext i16 %56 to i64
%58 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %55, i64 %57
%59 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %58, i64 0, i64 0
store x86_fp80 %54, x86_fp80* %59
%60 = load [2 x x86_fp80]*, [2 x x86_fp80]** %2
%61 = load i16, i16* %4
%62 = sext i16 %61 to i32
%63 = sub nsw i32 %62, 1
%64 = sext i32 %63 to i64
%65 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %60, i64 %64
%66 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %65, i64 0, i64 1
%67 = load x86_fp80, x86_fp80* %66
%68 = load [2 x x86_fp80]*, [2 x x86_fp80]** %2
%69 = load i16, i16* %4
%70 = sext i16 %69 to i64
%71 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %68, i64 %70
%72 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %71, i64 0, i64 1
store x86_fp80 %67, x86_fp80* %72
%73 = load x86_fp80, x86_fp80* %5
%74 = load [2 x x86_fp80]*, [2 x x86_fp80]** %2
%75 = load i16, i16* %4
%76 = sext i16 %75 to i32
%77 = sub nsw i32 %76, 1
%78 = sext i32 %77 to i64
%79 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %74, i64 %78
%80 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %79, i64 0, i64 0
store x86_fp80 %73, x86_fp80* %80
%81 = load x86_fp80, x86_fp80* %6
%82 = load [2 x x86_fp80]*, [2 x x86_fp80]** %2
%83 = load i16, i16* %4
%84 = sext i16 %83 to i32
%85 = sub nsw i32 %84, 1
%86 = sext i32 %85 to i64
%87 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %82, i64 %86
%88 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %87, i64 0, i64 1
store x86_fp80 %81, x86_fp80* %88
br label %89
89: ; preds = %34, %18
br label %90
90: ; preds = %89
%91 = load i16, i16* %4
%92 = add i16 %91, 1
store i16 %92, i16* %4
br label %12
93: ; preds = %12
br label %94
94: ; preds = %93
%95 = load i16, i16* %3
%96 = add i16 %95, -1
store i16 %96, i16* %3
br label %7
97: ; preds = %7
ret void
}

LLVM IR (-O2):
define void @sortList([2 x x86_fp80]* nocapture %0) {
%2 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %0, i64 0, i64 0
br label %3
3: ; preds = %1, %25
%4 = phi i64 [ 13, %1 ], [ %26, %25 ]
%5 = icmp eq i64 %4, 0
br i1 %5, label %28, label %6
6: ; preds = %3
%7 = load x86_fp80, x86_fp80* %2
br label %8
8: ; preds = %6, %21
%9 = phi x86_fp80 [ %7, %6 ], [ %22, %21 ]
%10 = phi i64 [ 1, %6 ], [ %23, %21 ]
%11 = add nsw i64 %10, -1
%12 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %0, i64 %10, i64 0
%13 = load x86_fp80, x86_fp80* %12
%14 = fcmp olt x86_fp80 %9, %13
br i1 %14, label %15, label %21
15: ; preds = %8
%16 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %0, i64 %11, i64 0
%17 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %0, i64 %10, i64 1
%18 = load x86_fp80, x86_fp80* %17
store x86_fp80 %9, x86_fp80* %12
%19 = getelementptr inbounds [2 x x86_fp80], [2 x x86_fp80]* %0, i64 %11, i64 1
%20 = load x86_fp80, x86_fp80* %19
store x86_fp80 %20, x86_fp80* %17
store x86_fp80 %13, x86_fp80* %16
store x86_fp80 %18, x86_fp80* %19
br label %21
21: ; preds = %8, %15
%22 = phi x86_fp80 [ %13, %8 ], [ %9, %15 ]
%23 = add nuw nsw i64 %10, 1
%24 = icmp ult i64 %10, %4
br i1 %24, label %8, label %25
25: ; preds = %21
%26 = add nsw i64 %4, -1
%27 = icmp sgt i64 %4, 0
br i1 %27, label %3, label %28
28: ; preds = %3, %25
ret void
}