void get_planes(vm, eval3, evec3, s1, d1, r1, s2, d2, r2) double *vm, **eval3,
    ***evec3, *s1, *d1, *r1, *s2, *d2, *r2;
{
  int nrot, i;
  double **TM;
  double *vn1, *vn2;
  double tmp;
  *eval3 = double_alloc(3);
  *evec3 = double_alloc2(3, 3);
  vn1 = double_alloc(3);
  vn2 = double_alloc(3);
  TM = set_mt(vm);
  jacobi(TM, 3, 3, (*eval3), *evec3, &nrot);
  eigsrt((*eval3), *evec3, 3);
  for (i = 0; i < 3; i++) {
    vn1[i] = ((*evec3)[i][0] + (*evec3)[i][2]) / sqrt(2.);
    vn2[i] = ((*evec3)[i][0] - (*evec3)[i][2]) / sqrt(2.);
  }
  vn2sdr(vn1, vn2, s1, d1, r1);
  vn2sdr(vn2, vn1, s2, d2, r2);
  if (*d1 > *d2) {
    tmp = *s1;
    *s1 = *s2;
    *s2 = tmp;
    tmp = *d1;
    *d1 = *d2;
    *d2 = tmp;
    tmp = *r1;
    *r1 = *r2;
    *r2 = tmp;
  }
  free((void *)vn1);
  free((void *)vn2);
  for (i = 0; i < 3; i++)
    free((void *)TM[i]);
  free((void **)TM);
}


x86 assembly (clang, -O0):
<get_planes>:
push   %rbp
mov    %rsp,%rbp
sub    $0x70,%rsp
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
mov    $0x3,%edi
mov    $0x0,%al
call   1050 <double_alloc@plt>
movslq %eax,%rcx
mov    -0x10(%rbp),%rax
mov    %rcx,(%rax)
mov    $0x3,%esi
mov    %esi,%edi
mov    $0x0,%al
call   10a0 <double_alloc2@plt>
movslq %eax,%rcx
mov    -0x18(%rbp),%rax
mov    %rcx,(%rax)
mov    $0x3,%edi
mov    $0x0,%al
call   1050 <double_alloc@plt>
cltq
mov    %rax,-0x48(%rbp)
mov    $0x3,%edi
mov    $0x0,%al
call   1050 <double_alloc@plt>
cltq
mov    %rax,-0x50(%rbp)
mov    -0x8(%rbp),%rdi
mov    $0x0,%al
call   1070 <set_mt@plt>
cltq
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rdi
mov    -0x10(%rbp),%rax
mov    (%rax),%rcx
mov    -0x18(%rbp),%rax
mov    (%rax),%r8
mov    $0x3,%edx
lea    -0x34(%rbp),%r9
mov    %edx,%esi
mov    $0x0,%al
call   1040 <jacobi@plt>
mov    -0x10(%rbp),%rax
mov    (%rax),%rdi
mov    -0x18(%rbp),%rax
mov    (%rax),%rsi
mov    $0x3,%edx
mov    $0x0,%al
call   1060 <eigsrt@plt>
movl   $0x0,-0x38(%rbp)
cmpl   $0x3,-0x38(%rbp)
jge    1310 <get_planes+0x190>
mov    -0x18(%rbp),%rax
mov    (%rax),%rax
movslq -0x38(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mov    (%rax),%rax
movslq -0x38(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
addsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  0xd6e(%rip),%xmm0
call   1090 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0x68(%rbp),%xmm0
divsd  %xmm1,%xmm0
mov    -0x48(%rbp),%rax
movslq -0x38(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
mov    (%rax),%rax
movslq -0x38(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mov    (%rax),%rax
movslq -0x38(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  0xd1c(%rip),%xmm0
call   1090 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0x60(%rbp),%xmm0
divsd  %xmm1,%xmm0
mov    -0x50(%rbp),%rax
movslq -0x38(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1254 <get_planes+0xd4>
mov    -0x48(%rbp),%rdi
mov    -0x50(%rbp),%rsi
mov    -0x20(%rbp),%rdx
mov    -0x28(%rbp),%rcx
mov    -0x30(%rbp),%r8
mov    $0x0,%al
call   1080 <vn2sdr@plt>
mov    -0x50(%rbp),%rdi
mov    -0x48(%rbp),%rsi
mov    0x10(%rbp),%rdx
mov    0x18(%rbp),%rcx
mov    0x20(%rbp),%r8
mov    $0x0,%al
call   1080 <vn2sdr@plt>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x18(%rbp),%rax
ucomisd (%rax),%xmm0
jbe    13da <get_planes+0x25a>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x58(%rbp),%xmm0
mov    0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x58(%rbp),%xmm0
mov    0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x58(%rbp),%xmm0
mov    0x20(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x48(%rbp),%rdi
call   1030 <free@plt>
mov    -0x50(%rbp),%rdi
call   1030 <free@plt>
movl   $0x0,-0x38(%rbp)
cmpl   $0x3,-0x38(%rbp)
jge    141c <get_planes+0x29c>
mov    -0x40(%rbp),%rax
movslq -0x38(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
call   1030 <free@plt>
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    13f3 <get_planes+0x273>
mov    -0x40(%rbp),%rdi
call   1030 <free@plt>
add    $0x70,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<get_planes>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x28,%rsp
mov    %r9,%r15
mov    %r8,0x18(%rsp)
mov    %rcx,0x10(%rsp)
mov    %rdx,%r14
mov    %rsi,%r12
mov    %rdi,%rbx
mov    $0x3,%edi
xor    %eax,%eax
call   1050 <double_alloc@plt>
cltq
mov    %rax,(%r12)
mov    $0x3,%edi
mov    $0x3,%esi
xor    %eax,%eax
call   1090 <double_alloc2@plt>
cltq
mov    %rax,(%r14)
mov    $0x3,%edi
xor    %eax,%eax
call   1050 <double_alloc@plt>
movslq %eax,%rbp
mov    $0x3,%edi
xor    %eax,%eax
call   1050 <double_alloc@plt>
movslq %eax,%r13
mov    %rbx,%rdi
mov    %r15,%rbx
xor    %eax,%eax
call   1070 <set_mt@plt>
movslq %eax,%r15
mov    (%r12),%rcx
mov    (%r14),%r8
lea    0x24(%rsp),%r9
mov    %r15,%rdi
mov    $0x3,%esi
mov    $0x3,%edx
xor    %eax,%eax
call   1040 <jacobi@plt>
mov    (%r12),%rdi
mov    0x10(%rsp),%r12
mov    (%r14),%rsi
mov    $0x3,%edx
xor    %eax,%eax
call   1060 <eigsrt@plt>
mov    (%r14),%rax
mov    (%rax),%rcx
movsd  (%rcx),%xmm1
addsd  0x10(%rcx),%xmm1
movsd  0xdc7(%rip),%xmm0
divsd  %xmm0,%xmm1
movsd  %xmm1,0x0(%rbp)
movsd  (%rcx),%xmm1
subsd  0x10(%rcx),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,0x0(%r13)
mov    0x8(%rax),%rcx
movsd  (%rcx),%xmm1
addsd  0x10(%rcx),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%rbp)
movsd  (%rcx),%xmm1
subsd  0x10(%rcx),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%r13)
mov    0x10(%rax),%rax
movsd  (%rax),%xmm1
addsd  0x10(%rax),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,0x10(%rbp)
movsd  (%rax),%xmm1
subsd  0x10(%rax),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,0x10(%r13)
mov    %rbp,%rdi
mov    %r13,%rsi
mov    %r12,%rdx
mov    0x18(%rsp),%r14
mov    %r14,%rcx
mov    %rbx,0x8(%rsp)
mov    %rbx,%r8
xor    %eax,%eax
call   1080 <vn2sdr@plt>
mov    %r13,%rdi
mov    %rbp,%rsi
mov    0x60(%rsp),%rdx
mov    0x68(%rsp),%rbx
mov    %rbx,%rcx
mov    0x70(%rsp),%r8
xor    %eax,%eax
call   1080 <vn2sdr@plt>
movsd  (%r14),%xmm0
ucomisd (%rbx),%xmm0
jbe    133b <get_planes+0x1cb>
mov    %rbx,%rcx
movsd  (%r12),%xmm0
mov    0x60(%rsp),%rbx
movsd  (%rbx),%xmm1
movsd  %xmm1,(%r12)
movsd  %xmm0,(%rbx)
movsd  (%r14),%xmm0
movsd  (%rcx),%xmm1
movsd  %xmm1,(%r14)
movsd  %xmm0,(%rcx)
mov    0x8(%rsp),%r14
movsd  (%r14),%xmm0
mov    0x70(%rsp),%rbx
movsd  (%rbx),%xmm1
movsd  %xmm1,(%r14)
movsd  %xmm0,(%rbx)
mov    %rbp,%rdi
call   1030 <free@plt>
mov    %r13,%rdi
call   1030 <free@plt>
mov    (%r15),%rdi
call   1030 <free@plt>
mov    0x8(%r15),%rdi
call   1030 <free@plt>
mov    0x10(%r15),%rdi
call   1030 <free@plt>
mov    %r15,%rdi
call   1030 <free@plt>
add    $0x28,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
define void @get_planes(double* %0, double** nocapture %1, double*** nocapture %2, double* %3, double* %4, double* %5, double* %6, double* %7, double* %8) {
%10 = alloca i32
%11 = bitcast i32* %10 to i8*
%12 = tail call i32 (i32, ...) bitcast (i32 (...)* @double_alloc to i32 (i32, ...)*)(i32 3)
%13 = sext i32 %12 to i64
%14 = inttoptr i64 %13 to double*
store double* %14, double** %1
%15 = tail call i32 (i32, i32, ...) bitcast (i32 (...)* @double_alloc2 to i32 (i32, i32, ...)*)(i32 3, i32 3)
%16 = sext i32 %15 to i64
%17 = inttoptr i64 %16 to double**
store double** %17, double*** %2
%18 = tail call i32 (i32, ...) bitcast (i32 (...)* @double_alloc to i32 (i32, ...)*)(i32 3)
%19 = sext i32 %18 to i64
%20 = inttoptr i64 %19 to double*
%21 = tail call i32 (i32, ...) bitcast (i32 (...)* @double_alloc to i32 (i32, ...)*)(i32 3)
%22 = sext i32 %21 to i64
%23 = inttoptr i64 %22 to double*
%24 = tail call i32 (double*, ...) bitcast (i32 (...)* @set_mt to i32 (double*, ...)*)(double* %0)
%25 = sext i32 %24 to i64
%26 = inttoptr i64 %25 to double**
%27 = load double*, double** %1
%28 = load double**, double*** %2
%29 = call i32 (double**, i32, i32, double*, double**, i32*, ...) bitcast (i32 (...)* @jacobi to i32 (double**, i32, i32, double*, double**, i32*, ...)*)(double** %26, i32 3, i32 3, double* %27, double** %28, i32* %10)
%30 = load double*, double** %1
%31 = load double**, double*** %2
%32 = call i32 (double*, double**, i32, ...) bitcast (i32 (...)* @eigsrt to i32 (double*, double**, i32, ...)*)(double* %30, double** %31, i32 3)
%33 = load double**, double*** %2
%34 = load double*, double** %33
%35 = load double, double* %34
%36 = getelementptr inbounds double, double* %34, i64 2
%37 = load double, double* %36
%38 = fadd double %35, %37
%39 = fdiv double %38, 0x3FF6A09E667F3BCD
store double %39, double* %20
%40 = load double, double* %34
%41 = load double, double* %36
%42 = fsub double %40, %41
%43 = fdiv double %42, 0x3FF6A09E667F3BCD
store double %43, double* %23
%44 = getelementptr inbounds double*, double** %33, i64 1
%45 = load double*, double** %44
%46 = load double, double* %45
%47 = getelementptr inbounds double, double* %45, i64 2
%48 = load double, double* %47
%49 = fadd double %46, %48
%50 = fdiv double %49, 0x3FF6A09E667F3BCD
%51 = getelementptr inbounds double, double* %20, i64 1
store double %50, double* %51
%52 = load double, double* %45
%53 = load double, double* %47
%54 = fsub double %52, %53
%55 = fdiv double %54, 0x3FF6A09E667F3BCD
%56 = getelementptr inbounds double, double* %23, i64 1
store double %55, double* %56
%57 = getelementptr inbounds double*, double** %33, i64 2
%58 = load double*, double** %57
%59 = load double, double* %58
%60 = getelementptr inbounds double, double* %58, i64 2
%61 = load double, double* %60
%62 = fadd double %59, %61
%63 = fdiv double %62, 0x3FF6A09E667F3BCD
%64 = getelementptr inbounds double, double* %20, i64 2
store double %63, double* %64
%65 = load double, double* %58
%66 = load double, double* %60
%67 = fsub double %65, %66
%68 = fdiv double %67, 0x3FF6A09E667F3BCD
%69 = getelementptr inbounds double, double* %23, i64 2
store double %68, double* %69
%70 = call i32 (double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @vn2sdr to i32 (double*, double*, double*, double*, double*, ...)*)(double* %20, double* %23, double* %3, double* %4, double* %5)
%71 = call i32 (double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @vn2sdr to i32 (double*, double*, double*, double*, double*, ...)*)(double* %23, double* %20, double* %6, double* %7, double* %8)
%72 = load double, double* %4
%73 = load double, double* %7
%74 = fcmp ogt double %72, %73
br i1 %74, label %75, label %82
75: ; preds = %9
%76 = load double, double* %3
%77 = load double, double* %6
store double %77, double* %3
store double %76, double* %6
%78 = load double, double* %4
%79 = load double, double* %7
store double %79, double* %4
store double %78, double* %7
%80 = load double, double* %5
%81 = load double, double* %8
store double %81, double* %5
store double %80, double* %8
br label %82
82: ; preds = %75, %9
%83 = inttoptr i64 %19 to i8*
%84 = inttoptr i64 %22 to i8*
%85 = inttoptr i64 %25 to i8**
%86 = load i8*, i8** %85
%87 = getelementptr inbounds double*, double** %26, i64 1
%88 = bitcast double** %87 to i8**
%89 = load i8*, i8** %88
%90 = getelementptr inbounds double*, double** %26, i64 2
%91 = bitcast double** %90 to i8**
%92 = load i8*, i8** %91
%93 = inttoptr i64 %25 to i8*
ret void
}