int insert_into_peaks(peaks, max, max_place)
int max, max_place, peaks[30][2];
{
  int i, j;
  if (max > peaks[0][0]) {
    for (i = 30 - 1; i > 0; i--) {
      peaks[i][0] = peaks[i - 1][0];
      peaks[i][1] = peaks[i - 1][1];
    }
    peaks[0][0] = max;
    peaks[0][1] = max_place;
  }
  for (j = 0; j < 30 - 3; j++) {
    if (max < peaks[j][0] && max > peaks[j + 1][0]) {
      for (i = 30 - 1; i > j + 1; i--) {
        peaks[i][0] = peaks[i - 1][0];
        peaks[i][1] = peaks[i - 1][1];
      }
      peaks[j + 1][0] = max;
      peaks[j + 1][1] = max_place;
    }
  }
  if (max < peaks[30 - 2][0] && max > peaks[30 - 1][0]) {
    peaks[30 - 1][0] = max;
    peaks[30 - 1][1] = max_place;
  }
  return (1);
}


x86 assembly (clang, -O0):
<insert_into_peaks>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %edx,-0x10(%rbp)
mov    -0xc(%rbp),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
jle    1187 <insert_into_peaks+0x87>
movl   $0x1d,-0x14(%rbp)
cmpl   $0x0,-0x14(%rbp)
jle    1174 <insert_into_peaks+0x74>
mov    -0x8(%rbp),%rax
mov    -0x14(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,8),%edx
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
mov    %edx,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0x14(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    0x4(%rax,%rcx,8),%edx
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
mov    %edx,0x4(%rax,%rcx,8)
mov    -0x14(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x14(%rbp)
jmp    1124 <insert_into_peaks+0x24>
mov    -0xc(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x10(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x4(%rax)
movl   $0x0,-0x18(%rbp)
cmpl   $0x1b,-0x18(%rbp)
jge    125d <insert_into_peaks+0x15d>
mov    -0xc(%rbp),%eax
mov    -0x8(%rbp),%rcx
movslq -0x18(%rbp),%rdx
cmp    (%rcx,%rdx,8),%eax
jge    124a <insert_into_peaks+0x14a>
mov    -0xc(%rbp),%eax
mov    -0x8(%rbp),%rcx
mov    -0x18(%rbp),%edx
add    $0x1,%edx
movslq %edx,%rdx
cmp    (%rcx,%rdx,8),%eax
jle    124a <insert_into_peaks+0x14a>
movl   $0x1d,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x18(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jle    1223 <insert_into_peaks+0x123>
mov    -0x8(%rbp),%rax
mov    -0x14(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,8),%edx
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
mov    %edx,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0x14(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    0x4(%rax,%rcx,8),%edx
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
mov    %edx,0x4(%rax,%rcx,8)
mov    -0x14(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x14(%rbp)
jmp    11cc <insert_into_peaks+0xcc>
mov    -0xc(%rbp),%edx
mov    -0x8(%rbp),%rax
mov    -0x18(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,8)
mov    -0x10(%rbp),%edx
mov    -0x8(%rbp),%rax
mov    -0x18(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,0x4(%rax,%rcx,8)
jmp    124f <insert_into_peaks+0x14f>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    118e <insert_into_peaks+0x8e>
mov    -0xc(%rbp),%eax
mov    -0x8(%rbp),%rcx
cmp    0xe0(%rcx),%eax
jge    129d <insert_into_peaks+0x19d>
mov    -0xc(%rbp),%eax
mov    -0x8(%rbp),%rcx
cmp    0xe8(%rcx),%eax
jle    129d <insert_into_peaks+0x19d>
mov    -0xc(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0xe8(%rax)
mov    -0x10(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0xec(%rax)
mov    $0x1,%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<insert_into_peaks>:
push   %rbx
mov    (%rdi),%r8d
cmp    %esi,%r8d
jge    1138 <insert_into_peaks+0x38>
mov    $0x1c,%eax
xchg   %ax,%ax
movups -0x18(%rdi,%rax,8),%xmm0
movups -0x8(%rdi,%rax,8),%xmm1
movups %xmm1,(%rdi,%rax,8)
movups %xmm0,-0x10(%rdi,%rax,8)
add    $0xfffffffffffffffc,%rax
jne    1110 <insert_into_peaks+0x10>
mov    (%rdi),%rax
mov    %rax,0x8(%rdi)
mov    %esi,(%rdi)
mov    %edx,0x4(%rdi)
mov    %esi,%r8d
mov    $0x1a,%r10d
xor    %eax,%eax
lea    0x1(%rax),%r11
cmp    %esi,%r8d
jle    122e <insert_into_peaks+0x12e>
cmp    %esi,(%rdi,%r11,8)
jge    122e <insert_into_peaks+0x12e>
mov    $0x1c,%r8d
sub    %rax,%r8
mov    $0x1d,%ecx
cmp    $0x2,%r8
jb     1210 <insert_into_peaks+0x110>
mov    $0x1a,%ecx
sub    %rax,%rcx
mov    %rcx,%r9
shr    %r9
add    $0x1,%r9
cmp    $0x2,%rcx
jae    118b <insert_into_peaks+0x8b>
xor    %eax,%eax
jmp    11cd <insert_into_peaks+0xcd>
mov    %r10,%rcx
shr    %rcx
add    $0x1,%rcx
and    $0xfffffffffffffffe,%rcx
xor    %eax,%eax
nopl   0x0(%rax,%rax,1)
movups 0xc8(%rdi,%rax,8),%xmm0
movups 0xd8(%rdi,%rax,8),%xmm1
movups %xmm1,0xe0(%rdi,%rax,8)
movups %xmm0,0xd0(%rdi,%rax,8)
add    $0xfffffffffffffffc,%rax
add    $0xfffffffffffffffe,%rcx
jne    11a0 <insert_into_peaks+0xa0>
neg    %rax
mov    %r8,%rbx
and    $0xfffffffffffffffe,%rbx
test   $0x1,%r9b
je     11f6 <insert_into_peaks+0xf6>
mov    $0x1d,%r9d
sub    %rax,%r9
mov    $0x1c,%ecx
sub    %rax,%rcx
movups -0x8(%rdi,%rcx,8),%xmm0
movups %xmm0,-0x8(%rdi,%r9,8)
cmp    %rbx,%r8
je     1225 <insert_into_peaks+0x125>
mov    $0x1d,%ecx
sub    %rbx,%rcx
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    -0x8(%rdi,%rcx,8),%rax
mov    %rax,(%rdi,%rcx,8)
lea    -0x1(%rcx),%rax
mov    %rax,%rcx
cmp    %r11,%rax
ja     1210 <insert_into_peaks+0x110>
mov    %esi,(%rdi,%r11,8)
mov    %edx,0x4(%rdi,%r11,8)
cmp    $0x1b,%r11
je     1244 <insert_into_peaks+0x144>
mov    (%rdi,%r11,8),%r8d
add    $0xffffffffffffffff,%r10
mov    %r11,%rax
jmp    1140 <insert_into_peaks+0x40>
cmp    %esi,0xe0(%rdi)
jle    1260 <insert_into_peaks+0x160>
cmp    %esi,0xe8(%rdi)
jge    1260 <insert_into_peaks+0x160>
mov    %esi,0xe8(%rdi)
mov    %edx,0xec(%rdi)
mov    $0x1,%eax
pop    %rbx
ret

LLVM IR (-O0):
define i32 @insert_into_peaks([2 x i32]* %0, i32 %1, i32 %2) {
%4 = alloca [2 x i32]*
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
store [2 x i32]* %0, [2 x i32]** %4
store i32 %1, i32* %5
store i32 %2, i32* %6
%9 = load i32, i32* %5
%10 = load [2 x i32]*, [2 x i32]** %4
%11 = getelementptr inbounds [2 x i32], [2 x i32]* %10, i64 0
%12 = getelementptr inbounds [2 x i32], [2 x i32]* %11, i64 0, i64 0
%13 = load i32, i32* %12
%14 = icmp sgt i32 %9, %13
br i1 %14, label %15, label %56
15: ; preds = %3
store i32 29, i32* %7
br label %16
16: ; preds = %44, %15
%17 = load i32, i32* %7
%18 = icmp sgt i32 %17, 0
br i1 %18, label %19, label %47
19: ; preds = %16
%20 = load [2 x i32]*, [2 x i32]** %4
%21 = load i32, i32* %7
%22 = sub nsw i32 %21, 1
%23 = sext i32 %22 to i64
%24 = getelementptr inbounds [2 x i32], [2 x i32]* %20, i64 %23
%25 = getelementptr inbounds [2 x i32], [2 x i32]* %24, i64 0, i64 0
%26 = load i32, i32* %25
%27 = load [2 x i32]*, [2 x i32]** %4
%28 = load i32, i32* %7
%29 = sext i32 %28 to i64
%30 = getelementptr inbounds [2 x i32], [2 x i32]* %27, i64 %29
%31 = getelementptr inbounds [2 x i32], [2 x i32]* %30, i64 0, i64 0
store i32 %26, i32* %31
%32 = load [2 x i32]*, [2 x i32]** %4
%33 = load i32, i32* %7
%34 = sub nsw i32 %33, 1
%35 = sext i32 %34 to i64
%36 = getelementptr inbounds [2 x i32], [2 x i32]* %32, i64 %35
%37 = getelementptr inbounds [2 x i32], [2 x i32]* %36, i64 0, i64 1
%38 = load i32, i32* %37
%39 = load [2 x i32]*, [2 x i32]** %4
%40 = load i32, i32* %7
%41 = sext i32 %40 to i64
%42 = getelementptr inbounds [2 x i32], [2 x i32]* %39, i64 %41
%43 = getelementptr inbounds [2 x i32], [2 x i32]* %42, i64 0, i64 1
store i32 %38, i32* %43
br label %44
44: ; preds = %19
%45 = load i32, i32* %7
%46 = add nsw i32 %45, -1
store i32 %46, i32* %7
br label %16
47: ; preds = %16
%48 = load i32, i32* %5
%49 = load [2 x i32]*, [2 x i32]** %4
%50 = getelementptr inbounds [2 x i32], [2 x i32]* %49, i64 0
%51 = getelementptr inbounds [2 x i32], [2 x i32]* %50, i64 0, i64 0
store i32 %48, i32* %51
%52 = load i32, i32* %6
%53 = load [2 x i32]*, [2 x i32]** %4
%54 = getelementptr inbounds [2 x i32], [2 x i32]* %53, i64 0
%55 = getelementptr inbounds [2 x i32], [2 x i32]* %54, i64 0, i64 1
store i32 %52, i32* %55
br label %56
56: ; preds = %47, %3
store i32 0, i32* %8
br label %57
57: ; preds = %129, %56
%58 = load i32, i32* %8
%59 = icmp slt i32 %58, 27
br i1 %59, label %60, label %132
60: ; preds = %57
%61 = load i32, i32* %5
%62 = load [2 x i32]*, [2 x i32]** %4
%63 = load i32, i32* %8
%64 = sext i32 %63 to i64
%65 = getelementptr inbounds [2 x i32], [2 x i32]* %62, i64 %64
%66 = getelementptr inbounds [2 x i32], [2 x i32]* %65, i64 0, i64 0
%67 = load i32, i32* %66
%68 = icmp slt i32 %61, %67
br i1 %68, label %69, label %128
69: ; preds = %60
%70 = load i32, i32* %5
%71 = load [2 x i32]*, [2 x i32]** %4
%72 = load i32, i32* %8
%73 = add nsw i32 %72, 1
%74 = sext i32 %73 to i64
%75 = getelementptr inbounds [2 x i32], [2 x i32]* %71, i64 %74
%76 = getelementptr inbounds [2 x i32], [2 x i32]* %75, i64 0, i64 0
%77 = load i32, i32* %76
%78 = icmp sgt i32 %70, %77
br i1 %78, label %79, label %128
79: ; preds = %69
store i32 29, i32* %7
br label %80
80: ; preds = %110, %79
%81 = load i32, i32* %7
%82 = load i32, i32* %8
%83 = add nsw i32 %82, 1
%84 = icmp sgt i32 %81, %83
br i1 %84, label %85, label %113
85: ; preds = %80
%86 = load [2 x i32]*, [2 x i32]** %4
%87 = load i32, i32* %7
%88 = sub nsw i32 %87, 1
%89 = sext i32 %88 to i64
%90 = getelementptr inbounds [2 x i32], [2 x i32]* %86, i64 %89
%91 = getelementptr inbounds [2 x i32], [2 x i32]* %90, i64 0, i64 0
%92 = load i32, i32* %91
%93 = load [2 x i32]*, [2 x i32]** %4
%94 = load i32, i32* %7
%95 = sext i32 %94 to i64
%96 = getelementptr inbounds [2 x i32], [2 x i32]* %93, i64 %95
%97 = getelementptr inbounds [2 x i32], [2 x i32]* %96, i64 0, i64 0
store i32 %92, i32* %97
%98 = load [2 x i32]*, [2 x i32]** %4
%99 = load i32, i32* %7
%100 = sub nsw i32 %99, 1
%101 = sext i32 %100 to i64
%102 = getelementptr inbounds [2 x i32], [2 x i32]* %98, i64 %101
%103 = getelementptr inbounds [2 x i32], [2 x i32]* %102, i64 0, i64 1
%104 = load i32, i32* %103
%105 = load [2 x i32]*, [2 x i32]** %4
%106 = load i32, i32* %7
%107 = sext i32 %106 to i64
%108 = getelementptr inbounds [2 x i32], [2 x i32]* %105, i64 %107
%109 = getelementptr inbounds [2 x i32], [2 x i32]* %108, i64 0, i64 1
store i32 %104, i32* %109
br label %110
110: ; preds = %85
%111 = load i32, i32* %7
%112 = add nsw i32 %111, -1
store i32 %112, i32* %7
br label %80
113: ; preds = %80
%114 = load i32, i32* %5
%115 = load [2 x i32]*, [2 x i32]** %4
%116 = load i32, i32* %8
%117 = add nsw i32 %116, 1
%118 = sext i32 %117 to i64
%119 = getelementptr inbounds [2 x i32], [2 x i32]* %115, i64 %118
%120 = getelementptr inbounds [2 x i32], [2 x i32]* %119, i64 0, i64 0
store i32 %114, i32* %120
%121 = load i32, i32* %6
%122 = load [2 x i32]*, [2 x i32]** %4
%123 = load i32, i32* %8
%124 = add nsw i32 %123, 1
%125 = sext i32 %124 to i64
%126 = getelementptr inbounds [2 x i32], [2 x i32]* %122, i64 %125
%127 = getelementptr inbounds [2 x i32], [2 x i32]* %126, i64 0, i64 1
store i32 %121, i32* %127
br label %128
128: ; preds = %113, %69, %60
br label %129
129: ; preds = %128
%130 = load i32, i32* %8
%131 = add nsw i32 %130, 1
store i32 %131, i32* %8
br label %57
132: ; preds = %57
%133 = load i32, i32* %5
%134 = load [2 x i32]*, [2 x i32]** %4
%135 = getelementptr inbounds [2 x i32], [2 x i32]* %134, i64 28
%136 = getelementptr inbounds [2 x i32], [2 x i32]* %135, i64 0, i64 0
%137 = load i32, i32* %136
%138 = icmp slt i32 %133, %137
br i1 %138, label %139, label %155
139: ; preds = %132
%140 = load i32, i32* %5
%141 = load [2 x i32]*, [2 x i32]** %4
%142 = getelementptr inbounds [2 x i32], [2 x i32]* %141, i64 29
%143 = getelementptr inbounds [2 x i32], [2 x i32]* %142, i64 0, i64 0
%144 = load i32, i32* %143
%145 = icmp sgt i32 %140, %144
br i1 %145, label %146, label %155
146: ; preds = %139
%147 = load i32, i32* %5
%148 = load [2 x i32]*, [2 x i32]** %4
%149 = getelementptr inbounds [2 x i32], [2 x i32]* %148, i64 29
%150 = getelementptr inbounds [2 x i32], [2 x i32]* %149, i64 0, i64 0
store i32 %147, i32* %150
%151 = load i32, i32* %6
%152 = load [2 x i32]*, [2 x i32]** %4
%153 = getelementptr inbounds [2 x i32], [2 x i32]* %152, i64 29
%154 = getelementptr inbounds [2 x i32], [2 x i32]* %153, i64 0, i64 1
store i32 %151, i32* %154
br label %155
155: ; preds = %146, %139, %132
ret i32 1
}

LLVM IR (-O2):
define i32 @insert_into_peaks([2 x i32]* nocapture %0, i32 %1, i32 %2) {
%4 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 0, i64 0
%5 = load i32, i32* %4
%6 = icmp slt i32 %5, %1
br i1 %6, label %7, label %47
7: ; preds = %3, %7
%8 = phi i64 [ %37, %7 ], [ 0, %3 ]
%9 = sub nuw nsw i64 29, %8
%10 = sub nuw nsw i64 28, %8
%11 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %10, i64 -2
%12 = bitcast i32* %11 to <4 x i32>*
%13 = load <4 x i32>, <4 x i32>* %12
%14 = shufflevector <4 x i32> %13, <4 x i32> poison, <2 x i32> <i32 0, i32 2>
%15 = shufflevector <2 x i32> %14, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%16 = shufflevector <4 x i32> %13, <4 x i32> poison, <2 x i32> <i32 1, i32 3>
%17 = shufflevector <2 x i32> %16, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%18 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %9, i64 -2
%19 = bitcast i32* %18 to <4 x i32>*
%20 = shufflevector <2 x i32> %15, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%21 = shufflevector <2 x i32> %17, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%22 = shufflevector <2 x i32> %20, <2 x i32> %21, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
store <4 x i32> %22, <4 x i32>* %19
%23 = sub nsw i64 27, %8
%24 = sub nsw i64 26, %8
%25 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %24, i64 -2
%26 = bitcast i32* %25 to <4 x i32>*
%27 = load <4 x i32>, <4 x i32>* %26
%28 = shufflevector <4 x i32> %27, <4 x i32> poison, <2 x i32> <i32 0, i32 2>
%29 = shufflevector <2 x i32> %28, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%30 = shufflevector <4 x i32> %27, <4 x i32> poison, <2 x i32> <i32 1, i32 3>
%31 = shufflevector <2 x i32> %30, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%32 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %23, i64 -2
%33 = bitcast i32* %32 to <4 x i32>*
%34 = shufflevector <2 x i32> %29, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%35 = shufflevector <2 x i32> %31, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%36 = shufflevector <2 x i32> %34, <2 x i32> %35, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
store <4 x i32> %36, <4 x i32>* %33
%37 = add nuw nsw i64 %8, 4
%38 = icmp eq i64 %37, 28
br i1 %38, label %39, label %7
39: ; preds = %7
%40 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 0, i64 0
%41 = load i32, i32* %40
%42 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 1, i64 0
store i32 %41, i32* %42
%43 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 0, i64 1
%44 = load i32, i32* %43
%45 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 1, i64 1
store i32 %44, i32* %45
store i32 %1, i32* %4
%46 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 0, i64 1
store i32 %2, i32* %46
br label %47
47: ; preds = %39, %3
%48 = phi i32 [ %5, %3 ], [ %1, %39 ]
br label %49
49: ; preds = %47, %141
%50 = phi i32 [ %143, %141 ], [ %48, %47 ]
%51 = phi i64 [ %57, %141 ], [ 0, %47 ]
%52 = sub nsw i64 26, %51
%53 = lshr i64 %52, 1
%54 = add nuw nsw i64 %53, 1
%55 = sub nsw i64 28, %51
%56 = icmp sgt i32 %50, %1
%57 = add nuw nsw i64 %51, 1
br i1 %56, label %58, label %139
58: ; preds = %49
%59 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %57, i64 0
%60 = load i32, i32* %59
%61 = icmp slt i32 %60, %1
br i1 %61, label %62, label %139
62: ; preds = %58
%63 = icmp ult i64 %55, 2
br i1 %63, label %125, label %64
64: ; preds = %62
%65 = and i64 %55, -2
%66 = sub i64 29, %65
%67 = and i64 %54, 1
%68 = icmp ult i64 %52, 2
br i1 %68, label %105, label %69
69: ; preds = %64
%70 = and i64 %54, 9223372036854775806
br label %71
71: ; preds = %71, %69
%72 = phi i64 [ 0, %69 ], [ %102, %71 ]
%73 = phi i64 [ 0, %69 ], [ %103, %71 ]
%74 = sub i64 29, %72
%75 = sub i64 28, %72
%76 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %75, i64 -2
%77 = bitcast i32* %76 to <4 x i32>*
%78 = load <4 x i32>, <4 x i32>* %77
%79 = shufflevector <4 x i32> %78, <4 x i32> poison, <2 x i32> <i32 0, i32 2>
%80 = shufflevector <2 x i32> %79, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%81 = shufflevector <4 x i32> %78, <4 x i32> poison, <2 x i32> <i32 1, i32 3>
%82 = shufflevector <2 x i32> %81, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%83 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %74, i64 -2
%84 = bitcast i32* %83 to <4 x i32>*
%85 = shufflevector <2 x i32> %80, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%86 = shufflevector <2 x i32> %82, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%87 = shufflevector <2 x i32> %85, <2 x i32> %86, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
store <4 x i32> %87, <4 x i32>* %84
%88 = sub i64 27, %72
%89 = sub i64 26, %72
%90 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %89, i64 -2
%91 = bitcast i32* %90 to <4 x i32>*
%92 = load <4 x i32>, <4 x i32>* %91
%93 = shufflevector <4 x i32> %92, <4 x i32> poison, <2 x i32> <i32 0, i32 2>
%94 = shufflevector <2 x i32> %93, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%95 = shufflevector <4 x i32> %92, <4 x i32> poison, <2 x i32> <i32 1, i32 3>
%96 = shufflevector <2 x i32> %95, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%97 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %88, i64 -2
%98 = bitcast i32* %97 to <4 x i32>*
%99 = shufflevector <2 x i32> %94, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%100 = shufflevector <2 x i32> %96, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%101 = shufflevector <2 x i32> %99, <2 x i32> %100, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
store <4 x i32> %101, <4 x i32>* %98
%102 = add nuw i64 %72, 4
%103 = add nuw i64 %73, 2
%104 = icmp eq i64 %103, %70
br i1 %104, label %105, label %71
105: ; preds = %71, %64
%106 = phi i64 [ 0, %64 ], [ %102, %71 ]
%107 = icmp eq i64 %67, 0
br i1 %107, label %123, label %108
108: ; preds = %105
%109 = sub i64 29, %106
%110 = sub i64 28, %106
%111 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %110, i64 -2
%112 = bitcast i32* %111 to <4 x i32>*
%113 = load <4 x i32>, <4 x i32>* %112
%114 = shufflevector <4 x i32> %113, <4 x i32> poison, <2 x i32> <i32 0, i32 2>
%115 = shufflevector <2 x i32> %114, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%116 = shufflevector <4 x i32> %113, <4 x i32> poison, <2 x i32> <i32 1, i32 3>
%117 = shufflevector <2 x i32> %116, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%118 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %109, i64 -2
%119 = bitcast i32* %118 to <4 x i32>*
%120 = shufflevector <2 x i32> %115, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%121 = shufflevector <2 x i32> %117, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%122 = shufflevector <2 x i32> %120, <2 x i32> %121, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
store <4 x i32> %122, <4 x i32>* %119
br label %123
123: ; preds = %105, %108
%124 = icmp eq i64 %55, %65
br i1 %124, label %137, label %125
125: ; preds = %62, %123
%126 = phi i64 [ 29, %62 ], [ %66, %123 ]
br label %127
127: ; preds = %125, %127
%128 = phi i64 [ %129, %127 ], [ %126, %125 ]
%129 = add nsw i64 %128, -1
%130 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %129, i64 0
%131 = load i32, i32* %130
%132 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %128, i64 0
store i32 %131, i32* %132
%133 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %129, i64 1
%134 = load i32, i32* %133
%135 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %128, i64 1
store i32 %134, i32* %135
%136 = icmp ugt i64 %129, %57
br i1 %136, label %127, label %137
137: ; preds = %127, %123
store i32 %1, i32* %59
%138 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %57, i64 1
store i32 %2, i32* %138
br label %139
139: ; preds = %49, %58, %137
%140 = icmp eq i64 %57, 27
br i1 %140, label %144, label %141
141: ; preds = %139
%142 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 %57, i64 0
%143 = load i32, i32* %142
br label %49
144: ; preds = %139
%145 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 28, i64 0
%146 = load i32, i32* %145
%147 = icmp sgt i32 %146, %1
br i1 %147, label %148, label %154
148: ; preds = %144
%149 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 29, i64 0
%150 = load i32, i32* %149
%151 = icmp slt i32 %150, %1
br i1 %151, label %152, label %154
152: ; preds = %148
store i32 %1, i32* %149
%153 = getelementptr inbounds [2 x i32], [2 x i32]* %0, i64 29, i64 1
store i32 %2, i32* %153
br label %154
154: ; preds = %152, %148, %144
ret i32 1
}