void sortArray(int array[7][2], int discriminator_index) {
  int swapflag = 1;
  int sortlength = 7;
  int tempId = 0;
  int tempAge = 0;
  int count = 0;
  while (swapflag) {
    swapflag = 0;
    for (count = 1; count < sortlength; ++count) {
      if (array[count - 1][discriminator_index] >
          array[count][discriminator_index]) {
        tempId = array[count][0];
        tempAge = array[count][1];
        array[count][0] = array[count - 1][0];
        array[count][1] = array[count - 1][1];
        array[count - 1][0] = tempId;
        array[count - 1][1] = tempAge;
        swapflag = 1;
      }
    }
    --sortlength;
  }
}


x86 assembly (clang, -O0):
<sortArray>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
movl   $0x1,-0x10(%rbp)
movl   $0x7,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
movl   $0x0,-0x1c(%rbp)
movl   $0x0,-0x20(%rbp)
cmpl   $0x0,-0x10(%rbp)
je     122d <sortArray+0x12d>
movl   $0x0,-0x10(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x20(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    121f <sortArray+0x11f>
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0xc(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    -0x8(%rbp),%rcx
movslq -0x20(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
movslq -0xc(%rbp),%rdx
cmp    (%rcx,%rdx,4),%eax
jle    120c <sortArray+0x10c>
mov    -0x8(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    (%rax,%rcx,8),%eax
mov    %eax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    0x4(%rax,%rcx,8),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,8),%edx
mov    -0x8(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %edx,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    0x4(%rax,%rcx,8),%edx
mov    -0x8(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %edx,0x4(%rax,%rcx,8)
mov    -0x18(%rbp),%edx
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,8)
mov    -0x1c(%rbp),%edx
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,0x4(%rax,%rcx,8)
movl   $0x1,-0x10(%rbp)
jmp    1211 <sortArray+0x111>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1146 <sortArray+0x46>
mov    -0x14(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x14(%rbp)
jmp    112e <sortArray+0x2e>
pop    %rbp
ret

x86 assembly (clang, -O2):
<sortArray>:
movslq %esi,%rax
mov    (%rdi,%rax,4),%edx
xor    %ecx,%ecx
cmp    0x8(%rdi,%rax,4),%edx
jle    1120 <sortArray+0x20>
movdqu (%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,(%rdi)
mov    $0x1,%ecx
mov    0x8(%rdi,%rax,4),%edx
cmp    0x10(%rdi,%rax,4),%edx
jle    113e <sortArray+0x3e>
movdqu 0x8(%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,0x8(%rdi)
mov    $0x1,%ecx
mov    0x10(%rdi,%rax,4),%edx
cmp    0x18(%rdi,%rax,4),%edx
jle    115c <sortArray+0x5c>
movdqu 0x10(%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,0x10(%rdi)
mov    $0x1,%ecx
mov    0x18(%rdi,%rax,4),%edx
cmp    0x20(%rdi,%rax,4),%edx
jle    117a <sortArray+0x7a>
movdqu 0x18(%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,0x18(%rdi)
mov    $0x1,%ecx
mov    0x20(%rdi,%rax,4),%edx
cmp    0x28(%rdi,%rax,4),%edx
jle    1198 <sortArray+0x98>
movdqu 0x20(%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,0x20(%rdi)
mov    $0x1,%ecx
mov    0x28(%rdi,%rax,4),%edx
cmp    0x30(%rdi,%rax,4),%edx
jle    11b6 <sortArray+0xb6>
movdqu 0x28(%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,0x28(%rdi)
mov    $0x1,%ecx
test   %ecx,%ecx
je     138c <sortArray+0x28c>
mov    (%rdi,%rax,4),%edx
xor    %ecx,%ecx
cmp    0x8(%rdi,%rax,4),%edx
jle    11db <sortArray+0xdb>
movdqu (%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,(%rdi)
mov    $0x1,%ecx
mov    0x8(%rdi,%rax,4),%edx
cmp    0x10(%rdi,%rax,4),%edx
jle    11f9 <sortArray+0xf9>
movdqu 0x8(%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,0x8(%rdi)
mov    $0x1,%ecx
mov    0x10(%rdi,%rax,4),%edx
cmp    0x18(%rdi,%rax,4),%edx
jle    1217 <sortArray+0x117>
movdqu 0x10(%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,0x10(%rdi)
mov    $0x1,%ecx
mov    0x18(%rdi,%rax,4),%edx
cmp    0x20(%rdi,%rax,4),%edx
jle    1235 <sortArray+0x135>
movdqu 0x18(%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,0x18(%rdi)
mov    $0x1,%ecx
mov    0x20(%rdi,%rax,4),%edx
cmp    0x28(%rdi,%rax,4),%edx
jle    1253 <sortArray+0x153>
movdqu 0x20(%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,0x20(%rdi)
mov    $0x1,%ecx
test   %ecx,%ecx
je     138c <sortArray+0x28c>
mov    (%rdi,%rax,4),%edx
xor    %ecx,%ecx
cmp    0x8(%rdi,%rax,4),%edx
jle    1278 <sortArray+0x178>
movdqu (%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,(%rdi)
mov    $0x1,%ecx
mov    0x8(%rdi,%rax,4),%edx
cmp    0x10(%rdi,%rax,4),%edx
jle    1296 <sortArray+0x196>
movdqu 0x8(%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,0x8(%rdi)
mov    $0x1,%ecx
mov    0x10(%rdi,%rax,4),%edx
cmp    0x18(%rdi,%rax,4),%edx
jle    12b4 <sortArray+0x1b4>
movdqu 0x10(%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,0x10(%rdi)
mov    $0x1,%ecx
mov    0x18(%rdi,%rax,4),%edx
cmp    0x20(%rdi,%rax,4),%edx
jle    12d2 <sortArray+0x1d2>
movdqu 0x18(%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,0x18(%rdi)
mov    $0x1,%ecx
test   %ecx,%ecx
je     138c <sortArray+0x28c>
mov    (%rdi,%rax,4),%edx
xor    %ecx,%ecx
cmp    0x8(%rdi,%rax,4),%edx
jle    12f7 <sortArray+0x1f7>
movdqu (%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,(%rdi)
mov    $0x1,%ecx
mov    0x8(%rdi,%rax,4),%edx
cmp    0x10(%rdi,%rax,4),%edx
jle    1315 <sortArray+0x215>
movdqu 0x8(%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,0x8(%rdi)
mov    $0x1,%ecx
mov    0x10(%rdi,%rax,4),%edx
cmp    0x18(%rdi,%rax,4),%edx
jle    1333 <sortArray+0x233>
movdqu 0x10(%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,0x10(%rdi)
mov    $0x1,%ecx
test   %ecx,%ecx
je     138c <sortArray+0x28c>
mov    (%rdi,%rax,4),%edx
xor    %ecx,%ecx
cmp    0x8(%rdi,%rax,4),%edx
jle    1354 <sortArray+0x254>
movdqu (%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,(%rdi)
mov    $0x1,%ecx
mov    0x8(%rdi,%rax,4),%edx
cmp    0x10(%rdi,%rax,4),%edx
jle    1372 <sortArray+0x272>
movdqu 0x8(%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,0x8(%rdi)
mov    $0x1,%ecx
test   %ecx,%ecx
je     138c <sortArray+0x28c>
mov    (%rdi,%rax,4),%ecx
cmp    0x8(%rdi,%rax,4),%ecx
jle    138c <sortArray+0x28c>
movdqu (%rdi),%xmm0
pshufd $0x4e,%xmm0,%xmm0
movdqu %xmm0,(%rdi)
ret

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

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