int partitionTargets(double *x, double *y, double *z, int *ind, int l, int r) {
  double pivot, tx, ty, tz;
  int i, j, ti;
  pivot = x[l];
  i = l;
  j = r + 1;
  while (1) {
    do
      ++i;
    while (x[i] <= pivot && i <= r);
    do
      --j;
    while (x[j] > pivot);
    if (i >= j)
      break;
    tx = x[i];
    ty = y[i];
    tz = z[i];
    ti = ind[i];
    x[i] = x[j];
    y[i] = y[j];
    z[i] = z[j];
    ind[i] = ind[j];
    x[j] = tx;
    y[j] = ty;
    z[j] = tz;
    ind[j] = ti;
  }
  tx = x[l];
  ty = y[l];
  tz = z[l];
  ti = ind[l];
  x[l] = x[j];
  y[l] = y[j];
  z[l] = z[j];
  ind[l] = ind[j];
  x[j] = tx;
  y[j] = ty;
  z[j] = tz;
  ind[j] = ti;
  return j;
}


x86 assembly (clang, -O0):
<partitionTargets>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8d,-0x24(%rbp)
mov    %r9d,-0x28(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x24(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
jmp    1142 <partitionTargets+0x42>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
movsd  -0x30(%rbp),%xmm0
xor    %eax,%eax
ucomisd %xmm1,%xmm0
mov    %al,-0x55(%rbp)
jb     1178 <partitionTargets+0x78>
mov    -0x4c(%rbp),%eax
cmp    -0x28(%rbp),%eax
setle  %al
mov    %al,-0x55(%rbp)
mov    -0x55(%rbp),%al
test   $0x1,%al
jne    1142 <partitionTargets+0x42>
jmp    1188 <partitionTargets+0x88>
mov    -0x50(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x50(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
ucomisd -0x30(%rbp),%xmm0
ja     1188 <partitionTargets+0x88>
mov    -0x4c(%rbp),%eax
cmp    -0x50(%rbp),%eax
jl     11ba <partitionTargets+0xba>
jmp    12ab <partitionTargets+0x1ab>
mov    -0x8(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x54(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x8(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x10(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
movsd  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x54(%rbp),%edx
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
jmp    113d <partitionTargets+0x3d>
mov    -0x8(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x20(%rbp),%rax
movslq -0x24(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x54(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x8(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x10(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x20(%rbp),%rax
movslq -0x24(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
movsd  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x54(%rbp),%edx
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x50(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<partitionTargets>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    %r9d,%eax
mov    %rcx,-0x20(%rsp)
movslq %r8d,%rcx
mov    %rcx,-0x10(%rsp)
movsd  (%rdi,%rcx,8),%xmm0
movslq %r9d,%r10
add    $0x1,%eax
mov    %rdi,-0x18(%rsp)
lea    0x8(%rdi),%rcx
mov    %rcx,-0x8(%rsp)
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movslq %r8d,%rbp
mov    -0x8(%rsp),%rcx
lea    (%rcx,%rbp,8),%r12
xor    %ebx,%ebx
xchg   %ax,%ax
movsd  (%r12,%rbx,8),%xmm1
lea    0x1(%rbx),%r15
ucomisd %xmm1,%xmm0
jb     116b <partitionTargets+0x6b>
add    %rbp,%rbx
cmp    %r10,%rbx
mov    %r15,%rbx
jl     1150 <partitionTargets+0x50>
mov    %r8d,%r8d
add    %r15,%r8
movslq %eax,%r13
mov    -0x18(%rsp),%rcx
lea    (%rcx,%r13,8),%r14
xor    %ebx,%ebx
nop
movsd  -0x8(%r14,%rbx,8),%xmm2
add    $0xffffffffffffffff,%rbx
ucomisd %xmm0,%xmm2
ja     1180 <partitionTargets+0x80>
mov    %eax,%r9d
add    %rbx,%r9
cmp    %r9d,%r8d
jge    120e <partitionTargets+0x10e>
lea    (%rsi,%rbp,8),%rax
movsd  (%rax,%r15,8),%xmm3
lea    (%rdx,%rbp,8),%r11
movsd  (%r11,%r15,8),%xmm4
mov    -0x20(%rsp),%rdi
lea    (%rdi,%rbp,4),%rbp
mov    0x0(%rbp,%r15,4),%ecx
movsd  %xmm2,-0x8(%r12,%r15,8)
lea    (%rsi,%r13,8),%r12
movsd  (%r12,%rbx,8),%xmm2
movsd  %xmm2,(%rax,%r15,8)
lea    (%rdx,%r13,8),%rax
movsd  (%rax,%rbx,8),%xmm2
movsd  %xmm2,(%r11,%r15,8)
lea    (%rdi,%r13,4),%r11
mov    (%r11,%rbx,4),%edi
mov    %edi,0x0(%rbp,%r15,4)
movsd  %xmm1,(%r14,%rbx,8)
movsd  %xmm3,(%r12,%rbx,8)
movsd  %xmm4,(%rax,%rbx,8)
mov    %ecx,(%r11,%rbx,4)
mov    %r9d,%eax
jmp    1140 <partitionTargets+0x40>
add    %ebx,%eax
mov    -0x10(%rsp),%rdi
mov    -0x18(%rsp),%rbp
movsd  0x0(%rbp,%rdi,8),%xmm0
movsd  (%rsi,%rdi,8),%xmm1
movsd  (%rdx,%rdi,8),%xmm3
mov    -0x20(%rsp),%rcx
mov    (%rcx,%rdi,4),%r8d
movsd  %xmm2,0x0(%rbp,%rdi,8)
lea    (%rsi,%r13,8),%r9
movsd  (%r9,%rbx,8),%xmm2
movsd  %xmm2,(%rsi,%rdi,8)
lea    (%rdx,%r13,8),%rsi
movsd  (%rsi,%rbx,8),%xmm2
movsd  %xmm2,(%rdx,%rdi,8)
lea    (%rcx,%r13,4),%rdx
mov    (%rdx,%rbx,4),%ebp
mov    %ebp,(%rcx,%rdi,4)
movsd  %xmm0,(%r14,%rbx,8)
movsd  %xmm1,(%r9,%rbx,8)
movsd  %xmm3,(%rsi,%rbx,8)
mov    %r8d,(%rdx,%rbx,4)
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define i32 @partitionTargets(double* %0, double* %1, double* %2, i32* %3, i32 %4, i32 %5) {
%7 = alloca double*
%8 = alloca double*
%9 = alloca double*
%10 = alloca i32*
%11 = alloca i32
%12 = alloca i32
%13 = alloca double
%14 = alloca double
%15 = alloca double
%16 = alloca double
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
store double* %0, double** %7
store double* %1, double** %8
store double* %2, double** %9
store i32* %3, i32** %10
store i32 %4, i32* %11
store i32 %5, i32* %12
%20 = load double*, double** %7
%21 = load i32, i32* %11
%22 = sext i32 %21 to i64
%23 = getelementptr inbounds double, double* %20, i64 %22
%24 = load double, double* %23
store double %24, double* %13
%25 = load i32, i32* %11
store i32 %25, i32* %17
%26 = load i32, i32* %12
%27 = add nsw i32 %26, 1
store i32 %27, i32* %18
br label %28
28: ; preds = %6, %63
br label %29
29: ; preds = %44, %28
%30 = load i32, i32* %17
%31 = add nsw i32 %30, 1
store i32 %31, i32* %17
br label %32
32: ; preds = %29
%33 = load double*, double** %7
%34 = load i32, i32* %17
%35 = sext i32 %34 to i64
%36 = getelementptr inbounds double, double* %33, i64 %35
%37 = load double, double* %36
%38 = load double, double* %13
%39 = fcmp ole double %37, %38
br i1 %39, label %40, label %44
40: ; preds = %32
%41 = load i32, i32* %17
%42 = load i32, i32* %12
%43 = icmp sle i32 %41, %42
br label %44
44: ; preds = %40, %32
%45 = phi i1 [ false, %32 ], [ %43, %40 ]
br i1 %45, label %29, label %46
46: ; preds = %44
br label %47
47: ; preds = %50, %46
%48 = load i32, i32* %18
%49 = add nsw i32 %48, -1
store i32 %49, i32* %18
br label %50
50: ; preds = %47
%51 = load double*, double** %7
%52 = load i32, i32* %18
%53 = sext i32 %52 to i64
%54 = getelementptr inbounds double, double* %51, i64 %53
%55 = load double, double* %54
%56 = load double, double* %13
%57 = fcmp ogt double %55, %56
br i1 %57, label %47, label %58
58: ; preds = %50
%59 = load i32, i32* %17
%60 = load i32, i32* %18
%61 = icmp sge i32 %59, %60
br i1 %61, label %62, label %63
62: ; preds = %58
br label %140
63: ; preds = %58
%64 = load double*, double** %7
%65 = load i32, i32* %17
%66 = sext i32 %65 to i64
%67 = getelementptr inbounds double, double* %64, i64 %66
%68 = load double, double* %67
store double %68, double* %14
%69 = load double*, double** %8
%70 = load i32, i32* %17
%71 = sext i32 %70 to i64
%72 = getelementptr inbounds double, double* %69, i64 %71
%73 = load double, double* %72
store double %73, double* %15
%74 = load double*, double** %9
%75 = load i32, i32* %17
%76 = sext i32 %75 to i64
%77 = getelementptr inbounds double, double* %74, i64 %76
%78 = load double, double* %77
store double %78, double* %16
%79 = load i32*, i32** %10
%80 = load i32, i32* %17
%81 = sext i32 %80 to i64
%82 = getelementptr inbounds i32, i32* %79, i64 %81
%83 = load i32, i32* %82
store i32 %83, i32* %19
%84 = load double*, double** %7
%85 = load i32, i32* %18
%86 = sext i32 %85 to i64
%87 = getelementptr inbounds double, double* %84, i64 %86
%88 = load double, double* %87
%89 = load double*, double** %7
%90 = load i32, i32* %17
%91 = sext i32 %90 to i64
%92 = getelementptr inbounds double, double* %89, i64 %91
store double %88, double* %92
%93 = load double*, double** %8
%94 = load i32, i32* %18
%95 = sext i32 %94 to i64
%96 = getelementptr inbounds double, double* %93, i64 %95
%97 = load double, double* %96
%98 = load double*, double** %8
%99 = load i32, i32* %17
%100 = sext i32 %99 to i64
%101 = getelementptr inbounds double, double* %98, i64 %100
store double %97, double* %101
%102 = load double*, double** %9
%103 = load i32, i32* %18
%104 = sext i32 %103 to i64
%105 = getelementptr inbounds double, double* %102, i64 %104
%106 = load double, double* %105
%107 = load double*, double** %9
%108 = load i32, i32* %17
%109 = sext i32 %108 to i64
%110 = getelementptr inbounds double, double* %107, i64 %109
store double %106, double* %110
%111 = load i32*, i32** %10
%112 = load i32, i32* %18
%113 = sext i32 %112 to i64
%114 = getelementptr inbounds i32, i32* %111, i64 %113
%115 = load i32, i32* %114
%116 = load i32*, i32** %10
%117 = load i32, i32* %17
%118 = sext i32 %117 to i64
%119 = getelementptr inbounds i32, i32* %116, i64 %118
store i32 %115, i32* %119
%120 = load double, double* %14
%121 = load double*, double** %7
%122 = load i32, i32* %18
%123 = sext i32 %122 to i64
%124 = getelementptr inbounds double, double* %121, i64 %123
store double %120, double* %124
%125 = load double, double* %15
%126 = load double*, double** %8
%127 = load i32, i32* %18
%128 = sext i32 %127 to i64
%129 = getelementptr inbounds double, double* %126, i64 %128
store double %125, double* %129
%130 = load double, double* %16
%131 = load double*, double** %9
%132 = load i32, i32* %18
%133 = sext i32 %132 to i64
%134 = getelementptr inbounds double, double* %131, i64 %133
store double %130, double* %134
%135 = load i32, i32* %19
%136 = load i32*, i32** %10
%137 = load i32, i32* %18
%138 = sext i32 %137 to i64
%139 = getelementptr inbounds i32, i32* %136, i64 %138
store i32 %135, i32* %139
br label %28
140: ; preds = %62
%141 = load double*, double** %7
%142 = load i32, i32* %11
%143 = sext i32 %142 to i64
%144 = getelementptr inbounds double, double* %141, i64 %143
%145 = load double, double* %144
store double %145, double* %14
%146 = load double*, double** %8
%147 = load i32, i32* %11
%148 = sext i32 %147 to i64
%149 = getelementptr inbounds double, double* %146, i64 %148
%150 = load double, double* %149
store double %150, double* %15
%151 = load double*, double** %9
%152 = load i32, i32* %11
%153 = sext i32 %152 to i64
%154 = getelementptr inbounds double, double* %151, i64 %153
%155 = load double, double* %154
store double %155, double* %16
%156 = load i32*, i32** %10
%157 = load i32, i32* %11
%158 = sext i32 %157 to i64
%159 = getelementptr inbounds i32, i32* %156, i64 %158
%160 = load i32, i32* %159
store i32 %160, i32* %19
%161 = load double*, double** %7
%162 = load i32, i32* %18
%163 = sext i32 %162 to i64
%164 = getelementptr inbounds double, double* %161, i64 %163
%165 = load double, double* %164
%166 = load double*, double** %7
%167 = load i32, i32* %11
%168 = sext i32 %167 to i64
%169 = getelementptr inbounds double, double* %166, i64 %168
store double %165, double* %169
%170 = load double*, double** %8
%171 = load i32, i32* %18
%172 = sext i32 %171 to i64
%173 = getelementptr inbounds double, double* %170, i64 %172
%174 = load double, double* %173
%175 = load double*, double** %8
%176 = load i32, i32* %11
%177 = sext i32 %176 to i64
%178 = getelementptr inbounds double, double* %175, i64 %177
store double %174, double* %178
%179 = load double*, double** %9
%180 = load i32, i32* %18
%181 = sext i32 %180 to i64
%182 = getelementptr inbounds double, double* %179, i64 %181
%183 = load double, double* %182
%184 = load double*, double** %9
%185 = load i32, i32* %11
%186 = sext i32 %185 to i64
%187 = getelementptr inbounds double, double* %184, i64 %186
store double %183, double* %187
%188 = load i32*, i32** %10
%189 = load i32, i32* %18
%190 = sext i32 %189 to i64
%191 = getelementptr inbounds i32, i32* %188, i64 %190
%192 = load i32, i32* %191
%193 = load i32*, i32** %10
%194 = load i32, i32* %11
%195 = sext i32 %194 to i64
%196 = getelementptr inbounds i32, i32* %193, i64 %195
store i32 %192, i32* %196
%197 = load double, double* %14
%198 = load double*, double** %7
%199 = load i32, i32* %18
%200 = sext i32 %199 to i64
%201 = getelementptr inbounds double, double* %198, i64 %200
store double %197, double* %201
%202 = load double, double* %15
%203 = load double*, double** %8
%204 = load i32, i32* %18
%205 = sext i32 %204 to i64
%206 = getelementptr inbounds double, double* %203, i64 %205
store double %202, double* %206
%207 = load double, double* %16
%208 = load double*, double** %9
%209 = load i32, i32* %18
%210 = sext i32 %209 to i64
%211 = getelementptr inbounds double, double* %208, i64 %210
store double %207, double* %211
%212 = load i32, i32* %19
%213 = load i32*, i32** %10
%214 = load i32, i32* %18
%215 = sext i32 %214 to i64
%216 = getelementptr inbounds i32, i32* %213, i64 %215
store i32 %212, i32* %216
%217 = load i32, i32* %18
ret i32 %217
}

LLVM IR (-O2):
define i32 @partitionTargets(double* nocapture %0, double* nocapture %1, double* nocapture %2, i32* nocapture %3, i32 %4, i32 %5) {
%7 = sext i32 %4 to i64
%8 = getelementptr inbounds double, double* %0, i64 %7
%9 = load double, double* %8
%10 = add nsw i32 %5, 1
%11 = sext i32 %5 to i64
br label %12
12: ; preds = %38, %6
%13 = phi i32 [ %4, %6 ], [ %26, %38 ]
%14 = phi i32 [ %10, %6 ], [ %36, %38 ]
%15 = sext i32 %13 to i64
br label %16
16: ; preds = %16, %12
%17 = phi i64 [ %18, %16 ], [ %15, %12 ]
%18 = add nsw i64 %17, 1
%19 = getelementptr inbounds double, double* %0, i64 %18
%20 = load double, double* %19
%21 = fcmp ole double %20, %9
%22 = icmp slt i64 %17, %11
%23 = select i1 %21, i1 %22, i1 false
br i1 %23, label %16, label %24
24: ; preds = %16
%25 = getelementptr inbounds double, double* %0, i64 %18
%26 = trunc i64 %18 to i32
%27 = sext i32 %14 to i64
br label %28
28: ; preds = %24, %28
%29 = phi i64 [ %27, %24 ], [ %30, %28 ]
%30 = add i64 %29, -1
%31 = getelementptr inbounds double, double* %0, i64 %30
%32 = load double, double* %31
%33 = fcmp ogt double %32, %9
br i1 %33, label %28, label %34
34: ; preds = %28
%35 = getelementptr inbounds double, double* %0, i64 %30
%36 = trunc i64 %30 to i32
%37 = icmp slt i32 %26, %36
br i1 %37, label %38, label %51
38: ; preds = %34
%39 = getelementptr inbounds double, double* %1, i64 %18
%40 = load double, double* %39
%41 = getelementptr inbounds double, double* %2, i64 %18
%42 = load double, double* %41
%43 = getelementptr inbounds i32, i32* %3, i64 %18
%44 = load i32, i32* %43
store double %32, double* %25
%45 = getelementptr inbounds double, double* %1, i64 %30
%46 = load double, double* %45
store double %46, double* %39
%47 = getelementptr inbounds double, double* %2, i64 %30
%48 = load double, double* %47
store double %48, double* %41
%49 = getelementptr inbounds i32, i32* %3, i64 %30
%50 = load i32, i32* %49
store i32 %50, i32* %43
store double %20, double* %35
store double %40, double* %45
store double %42, double* %47
store i32 %44, i32* %49
br label %12
51: ; preds = %34
%52 = trunc i64 %30 to i32
%53 = load double, double* %8
%54 = getelementptr inbounds double, double* %1, i64 %7
%55 = load double, double* %54
%56 = getelementptr inbounds double, double* %2, i64 %7
%57 = load double, double* %56
%58 = getelementptr inbounds i32, i32* %3, i64 %7
%59 = load i32, i32* %58
store double %32, double* %8
%60 = getelementptr inbounds double, double* %1, i64 %30
%61 = load double, double* %60
store double %61, double* %54
%62 = getelementptr inbounds double, double* %2, i64 %30
%63 = load double, double* %62
store double %63, double* %56
%64 = getelementptr inbounds i32, i32* %3, i64 %30
%65 = load i32, i32* %64
store i32 %65, i32* %58
store double %53, double* %35
store double %55, double* %60
store double %57, double* %62
store i32 %59, i32* %64
ret i32 %52
}