void fun(int *a) {
  int *p, *q, tmp;
  for (p = a; p < a + 9; p++)
    for (q = p + 1; q < a + 10; q++)
      if (*p > *q) {
        tmp = *q;
        *q = *p;
        *p = tmp;
      }
}


x86 assembly (clang, -O0):
<fun>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
add    $0x24,%rcx
cmp    %rcx,%rax
jae    11a2 <fun+0xa2>
mov    -0x10(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
add    $0x28,%rcx
cmp    %rcx,%rax
jae    118c <fun+0x8c>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x18(%rbp),%rcx
cmp    (%rcx),%eax
jle    1176 <fun+0x76>
mov    -0x18(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%ecx
mov    -0x18(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x1c(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    117b <fun+0x7b>
mov    -0x18(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x18(%rbp)
jmp    1131 <fun+0x31>
jmp    1191 <fun+0x91>
mov    -0x10(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x10(%rbp)
jmp    1110 <fun+0x10>
pop    %rbp
ret

x86 assembly (clang, -O2):
<fun>:
mov    (%rdi),%ecx
mov    0x4(%rdi),%eax
cmp    %eax,%ecx
jle    1110 <fun+0x10>
mov    %ecx,0x4(%rdi)
mov    %eax,(%rdi)
jmp    1112 <fun+0x12>
mov    %ecx,%eax
mov    0x8(%rdi),%ecx
cmp    %ecx,%eax
jle    1120 <fun+0x20>
mov    %eax,0x8(%rdi)
mov    %ecx,(%rdi)
jmp    1122 <fun+0x22>
mov    %eax,%ecx
mov    0xc(%rdi),%eax
cmp    %eax,%ecx
jle    1130 <fun+0x30>
mov    %ecx,0xc(%rdi)
mov    %eax,(%rdi)
jmp    1132 <fun+0x32>
mov    %ecx,%eax
mov    0x10(%rdi),%ecx
cmp    %ecx,%eax
jle    1140 <fun+0x40>
mov    %eax,0x10(%rdi)
mov    %ecx,(%rdi)
jmp    1142 <fun+0x42>
mov    %eax,%ecx
mov    0x14(%rdi),%eax
cmp    %eax,%ecx
jle    1150 <fun+0x50>
mov    %ecx,0x14(%rdi)
mov    %eax,(%rdi)
jmp    1152 <fun+0x52>
mov    %ecx,%eax
mov    0x18(%rdi),%ecx
cmp    %ecx,%eax
jle    1160 <fun+0x60>
mov    %eax,0x18(%rdi)
mov    %ecx,(%rdi)
jmp    1162 <fun+0x62>
mov    %eax,%ecx
mov    0x1c(%rdi),%eax
cmp    %eax,%ecx
jle    1170 <fun+0x70>
mov    %ecx,0x1c(%rdi)
mov    %eax,(%rdi)
jmp    1172 <fun+0x72>
mov    %ecx,%eax
mov    0x20(%rdi),%ecx
cmp    %ecx,%eax
jle    1180 <fun+0x80>
mov    %eax,0x20(%rdi)
mov    %ecx,(%rdi)
jmp    1182 <fun+0x82>
mov    %eax,%ecx
mov    0x24(%rdi),%eax
cmp    %eax,%ecx
jle    118e <fun+0x8e>
mov    %ecx,0x24(%rdi)
mov    %eax,(%rdi)
mov    0x4(%rdi),%ecx
mov    0x8(%rdi),%eax
cmp    %eax,%ecx
jle    11a0 <fun+0xa0>
mov    %ecx,0x8(%rdi)
mov    %eax,0x4(%rdi)
jmp    11a2 <fun+0xa2>
mov    %ecx,%eax
mov    0xc(%rdi),%ecx
cmp    %ecx,%eax
jle    11b1 <fun+0xb1>
mov    %eax,0xc(%rdi)
mov    %ecx,0x4(%rdi)
jmp    11b3 <fun+0xb3>
mov    %eax,%ecx
mov    0x10(%rdi),%eax
cmp    %eax,%ecx
jle    11c2 <fun+0xc2>
mov    %ecx,0x10(%rdi)
mov    %eax,0x4(%rdi)
jmp    11c4 <fun+0xc4>
mov    %ecx,%eax
mov    0x14(%rdi),%ecx
cmp    %ecx,%eax
jle    11d3 <fun+0xd3>
mov    %eax,0x14(%rdi)
mov    %ecx,0x4(%rdi)
jmp    11d5 <fun+0xd5>
mov    %eax,%ecx
mov    0x18(%rdi),%eax
cmp    %eax,%ecx
jle    11e4 <fun+0xe4>
mov    %ecx,0x18(%rdi)
mov    %eax,0x4(%rdi)
jmp    11e6 <fun+0xe6>
mov    %ecx,%eax
mov    0x1c(%rdi),%ecx
cmp    %ecx,%eax
jle    11f5 <fun+0xf5>
mov    %eax,0x1c(%rdi)
mov    %ecx,0x4(%rdi)
jmp    11f7 <fun+0xf7>
mov    %eax,%ecx
mov    0x20(%rdi),%eax
cmp    %eax,%ecx
jle    1206 <fun+0x106>
mov    %ecx,0x20(%rdi)
mov    %eax,0x4(%rdi)
jmp    1208 <fun+0x108>
mov    %ecx,%eax
mov    0x24(%rdi),%ecx
cmp    %ecx,%eax
jle    1215 <fun+0x115>
mov    %eax,0x24(%rdi)
mov    %ecx,0x4(%rdi)
mov    0x8(%rdi),%ecx
mov    0xc(%rdi),%eax
cmp    %eax,%ecx
jle    1227 <fun+0x127>
mov    %ecx,0xc(%rdi)
mov    %eax,0x8(%rdi)
jmp    1229 <fun+0x129>
mov    %ecx,%eax
mov    0x10(%rdi),%ecx
cmp    %ecx,%eax
jle    1238 <fun+0x138>
mov    %eax,0x10(%rdi)
mov    %ecx,0x8(%rdi)
jmp    123a <fun+0x13a>
mov    %eax,%ecx
mov    0x14(%rdi),%eax
cmp    %eax,%ecx
jle    1249 <fun+0x149>
mov    %ecx,0x14(%rdi)
mov    %eax,0x8(%rdi)
jmp    124b <fun+0x14b>
mov    %ecx,%eax
mov    0x18(%rdi),%ecx
cmp    %ecx,%eax
jle    125a <fun+0x15a>
mov    %eax,0x18(%rdi)
mov    %ecx,0x8(%rdi)
jmp    125c <fun+0x15c>
mov    %eax,%ecx
mov    0x1c(%rdi),%eax
cmp    %eax,%ecx
jle    126b <fun+0x16b>
mov    %ecx,0x1c(%rdi)
mov    %eax,0x8(%rdi)
jmp    126d <fun+0x16d>
mov    %ecx,%eax
mov    0x20(%rdi),%ecx
cmp    %ecx,%eax
jle    127c <fun+0x17c>
mov    %eax,0x20(%rdi)
mov    %ecx,0x8(%rdi)
jmp    127e <fun+0x17e>
mov    %eax,%ecx
mov    0x24(%rdi),%eax
cmp    %eax,%ecx
jle    128b <fun+0x18b>
mov    %ecx,0x24(%rdi)
mov    %eax,0x8(%rdi)
mov    0xc(%rdi),%ecx
mov    0x10(%rdi),%eax
cmp    %eax,%ecx
jle    129d <fun+0x19d>
mov    %ecx,0x10(%rdi)
mov    %eax,0xc(%rdi)
jmp    129f <fun+0x19f>
mov    %ecx,%eax
mov    0x14(%rdi),%ecx
cmp    %ecx,%eax
jle    12ae <fun+0x1ae>
mov    %eax,0x14(%rdi)
mov    %ecx,0xc(%rdi)
jmp    12b0 <fun+0x1b0>
mov    %eax,%ecx
mov    0x18(%rdi),%eax
cmp    %eax,%ecx
jle    12bf <fun+0x1bf>
mov    %ecx,0x18(%rdi)
mov    %eax,0xc(%rdi)
jmp    12c1 <fun+0x1c1>
mov    %ecx,%eax
mov    0x1c(%rdi),%ecx
cmp    %ecx,%eax
jle    12d0 <fun+0x1d0>
mov    %eax,0x1c(%rdi)
mov    %ecx,0xc(%rdi)
jmp    12d2 <fun+0x1d2>
mov    %eax,%ecx
mov    0x20(%rdi),%eax
cmp    %eax,%ecx
jle    12e1 <fun+0x1e1>
mov    %ecx,0x20(%rdi)
mov    %eax,0xc(%rdi)
jmp    12e3 <fun+0x1e3>
mov    %ecx,%eax
mov    0x24(%rdi),%ecx
cmp    %ecx,%eax
jle    12f0 <fun+0x1f0>
mov    %eax,0x24(%rdi)
mov    %ecx,0xc(%rdi)
mov    0x10(%rdi),%ecx
mov    0x14(%rdi),%eax
cmp    %eax,%ecx
jle    1302 <fun+0x202>
mov    %ecx,0x14(%rdi)
mov    %eax,0x10(%rdi)
jmp    1304 <fun+0x204>
mov    %ecx,%eax
mov    0x18(%rdi),%ecx
cmp    %ecx,%eax
jle    1313 <fun+0x213>
mov    %eax,0x18(%rdi)
mov    %ecx,0x10(%rdi)
jmp    1315 <fun+0x215>
mov    %eax,%ecx
mov    0x1c(%rdi),%eax
cmp    %eax,%ecx
jle    1324 <fun+0x224>
mov    %ecx,0x1c(%rdi)
mov    %eax,0x10(%rdi)
jmp    1326 <fun+0x226>
mov    %ecx,%eax
mov    0x20(%rdi),%ecx
cmp    %ecx,%eax
jle    1335 <fun+0x235>
mov    %eax,0x20(%rdi)
mov    %ecx,0x10(%rdi)
jmp    1337 <fun+0x237>
mov    %eax,%ecx
mov    0x24(%rdi),%eax
cmp    %eax,%ecx
jle    1344 <fun+0x244>
mov    %ecx,0x24(%rdi)
mov    %eax,0x10(%rdi)
mov    0x14(%rdi),%ecx
mov    0x18(%rdi),%eax
cmp    %eax,%ecx
jle    1356 <fun+0x256>
mov    %ecx,0x18(%rdi)
mov    %eax,0x14(%rdi)
jmp    1358 <fun+0x258>
mov    %ecx,%eax
mov    0x1c(%rdi),%ecx
cmp    %ecx,%eax
jle    1367 <fun+0x267>
mov    %eax,0x1c(%rdi)
mov    %ecx,0x14(%rdi)
jmp    1369 <fun+0x269>
mov    %eax,%ecx
mov    0x20(%rdi),%eax
cmp    %eax,%ecx
jle    1378 <fun+0x278>
mov    %ecx,0x20(%rdi)
mov    %eax,0x14(%rdi)
jmp    137a <fun+0x27a>
mov    %ecx,%eax
mov    0x24(%rdi),%ecx
cmp    %ecx,%eax
jle    1387 <fun+0x287>
mov    %eax,0x24(%rdi)
mov    %ecx,0x14(%rdi)
mov    0x18(%rdi),%ecx
mov    0x1c(%rdi),%eax
cmp    %eax,%ecx
jle    1399 <fun+0x299>
mov    %ecx,0x1c(%rdi)
mov    %eax,0x18(%rdi)
jmp    139b <fun+0x29b>
mov    %ecx,%eax
mov    0x20(%rdi),%ecx
cmp    %ecx,%eax
jle    13aa <fun+0x2aa>
mov    %eax,0x20(%rdi)
mov    %ecx,0x18(%rdi)
jmp    13ac <fun+0x2ac>
mov    %eax,%ecx
mov    0x24(%rdi),%eax
cmp    %eax,%ecx
jle    13b9 <fun+0x2b9>
mov    %ecx,0x24(%rdi)
mov    %eax,0x18(%rdi)
mov    0x1c(%rdi),%ecx
mov    0x20(%rdi),%eax
cmp    %eax,%ecx
jle    13cb <fun+0x2cb>
mov    %ecx,0x20(%rdi)
mov    %eax,0x1c(%rdi)
jmp    13cd <fun+0x2cd>
mov    %ecx,%eax
mov    0x24(%rdi),%ecx
cmp    %ecx,%eax
jle    13da <fun+0x2da>
mov    %eax,0x24(%rdi)
mov    %ecx,0x1c(%rdi)
mov    0x20(%rdi),%eax
mov    0x24(%rdi),%ecx
cmp    %ecx,%eax
jle    13ea <fun+0x2ea>
mov    %eax,0x24(%rdi)
mov    %ecx,0x20(%rdi)
ret

LLVM IR (-O0):
define void @fun(i32* %0) {
%2 = alloca i32*
%3 = alloca i32*
%4 = alloca i32*
%5 = alloca i32
store i32* %0, i32** %2
%6 = load i32*, i32** %2
store i32* %6, i32** %3
br label %7
7: ; preds = %39, %1
%8 = load i32*, i32** %3
%9 = load i32*, i32** %2
%10 = getelementptr inbounds i32, i32* %9, i64 9
%11 = icmp ult i32* %8, %10
br i1 %11, label %12, label %42
12: ; preds = %7
%13 = load i32*, i32** %3
%14 = getelementptr inbounds i32, i32* %13, i64 1
store i32* %14, i32** %4
br label %15
15: ; preds = %35, %12
%16 = load i32*, i32** %4
%17 = load i32*, i32** %2
%18 = getelementptr inbounds i32, i32* %17, i64 10
%19 = icmp ult i32* %16, %18
br i1 %19, label %20, label %38
20: ; preds = %15
%21 = load i32*, i32** %3
%22 = load i32, i32* %21
%23 = load i32*, i32** %4
%24 = load i32, i32* %23
%25 = icmp sgt i32 %22, %24
br i1 %25, label %26, label %34
26: ; preds = %20
%27 = load i32*, i32** %4
%28 = load i32, i32* %27
store i32 %28, i32* %5
%29 = load i32*, i32** %3
%30 = load i32, i32* %29
%31 = load i32*, i32** %4
store i32 %30, i32* %31
%32 = load i32, i32* %5
%33 = load i32*, i32** %3
store i32 %32, i32* %33
br label %34
34: ; preds = %26, %20
br label %35
35: ; preds = %34
%36 = load i32*, i32** %4
%37 = getelementptr inbounds i32, i32* %36, i32 1
store i32* %37, i32** %4
br label %15
38: ; preds = %15
br label %39
39: ; preds = %38
%40 = load i32*, i32** %3
%41 = getelementptr inbounds i32, i32* %40, i32 1
store i32* %41, i32** %3
br label %7
42: ; preds = %7
ret void
}

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