void free3d(double *vals[8][8], int *indices[8][8]) {
  sfree(vals[0][1]);
  sfree(vals[0][2]);
  sfree(vals[0][4]);
  sfree(vals[0][3]);
  sfree(vals[1][2]);
  sfree(vals[0][5]);
  sfree(vals[1][4]);
  sfree(vals[0][6]);
  sfree(vals[2][4]);
  sfree(vals[0][7]);
  sfree(vals[1][6]);
  sfree(vals[2][5]);
  sfree(vals[3][4]);
  sfree(indices[0][1]);
  sfree(indices[0][2]);
  sfree(indices[0][4]);
  sfree(indices[0][3]);
  sfree(indices[1][2]);
  sfree(indices[0][5]);
  sfree(indices[1][4]);
  sfree(indices[0][6]);
  sfree(indices[2][4]);
  sfree(indices[0][7]);
  sfree(indices[1][6]);
  sfree(indices[2][5]);
  sfree(indices[3][4]);
}


x86 assembly (clang, -O0):
<free3d>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x8(%rbp),%rax
mov    0x10(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x8(%rbp),%rax
mov    0x20(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x8(%rbp),%rax
mov    0x18(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x8(%rbp),%rax
mov    0x50(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x8(%rbp),%rax
mov    0x28(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x8(%rbp),%rax
mov    0x60(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x8(%rbp),%rax
mov    0x30(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x8(%rbp),%rax
mov    0xa0(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x8(%rbp),%rax
mov    0x38(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x8(%rbp),%rax
mov    0x70(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x8(%rbp),%rax
mov    0xa8(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x8(%rbp),%rax
mov    0xe0(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x10(%rbp),%rax
mov    0x50(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x10(%rbp),%rax
mov    0x60(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x10(%rbp),%rax
mov    0xa0(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x10(%rbp),%rax
mov    0x70(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x10(%rbp),%rax
mov    0xa8(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
mov    -0x10(%rbp),%rax
mov    0xe0(%rax),%rdi
mov    $0x0,%al
call   1030 <sfree@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<free3d>:
push   %r14
push   %rbx
push   %rax
mov    %rsi,%r14
mov    %rdi,%rbx
mov    0x8(%rdi),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x10(%rbx),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x20(%rbx),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x18(%rbx),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x50(%rbx),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x28(%rbx),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x60(%rbx),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x30(%rbx),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0xa0(%rbx),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x38(%rbx),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x70(%rbx),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0xa8(%rbx),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0xe0(%rbx),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x8(%r14),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x10(%r14),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x20(%r14),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x18(%r14),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x50(%r14),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x28(%r14),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x60(%r14),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x30(%r14),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0xa0(%r14),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x38(%r14),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0x70(%r14),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0xa8(%r14),%rdi
xor    %eax,%eax
call   1030 <sfree@plt>
mov    0xe0(%r14),%rdi
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r14
jmp    1030 <sfree@plt>

LLVM IR (-O0):
define void @free3d([8 x double*]* %0, [8 x i32*]* %1) {
%3 = alloca [8 x double*]*
%4 = alloca [8 x i32*]*
store [8 x double*]* %0, [8 x double*]** %3
store [8 x i32*]* %1, [8 x i32*]** %4
%5 = load [8 x double*]*, [8 x double*]** %3
%6 = getelementptr inbounds [8 x double*], [8 x double*]* %5, i64 0
%7 = getelementptr inbounds [8 x double*], [8 x double*]* %6, i64 0, i64 1
%8 = load double*, double** %7
%9 = call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %8)
%10 = load [8 x double*]*, [8 x double*]** %3
%11 = getelementptr inbounds [8 x double*], [8 x double*]* %10, i64 0
%12 = getelementptr inbounds [8 x double*], [8 x double*]* %11, i64 0, i64 2
%13 = load double*, double** %12
%14 = call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %13)
%15 = load [8 x double*]*, [8 x double*]** %3
%16 = getelementptr inbounds [8 x double*], [8 x double*]* %15, i64 0
%17 = getelementptr inbounds [8 x double*], [8 x double*]* %16, i64 0, i64 4
%18 = load double*, double** %17
%19 = call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %18)
%20 = load [8 x double*]*, [8 x double*]** %3
%21 = getelementptr inbounds [8 x double*], [8 x double*]* %20, i64 0
%22 = getelementptr inbounds [8 x double*], [8 x double*]* %21, i64 0, i64 3
%23 = load double*, double** %22
%24 = call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %23)
%25 = load [8 x double*]*, [8 x double*]** %3
%26 = getelementptr inbounds [8 x double*], [8 x double*]* %25, i64 1
%27 = getelementptr inbounds [8 x double*], [8 x double*]* %26, i64 0, i64 2
%28 = load double*, double** %27
%29 = call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %28)
%30 = load [8 x double*]*, [8 x double*]** %3
%31 = getelementptr inbounds [8 x double*], [8 x double*]* %30, i64 0
%32 = getelementptr inbounds [8 x double*], [8 x double*]* %31, i64 0, i64 5
%33 = load double*, double** %32
%34 = call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %33)
%35 = load [8 x double*]*, [8 x double*]** %3
%36 = getelementptr inbounds [8 x double*], [8 x double*]* %35, i64 1
%37 = getelementptr inbounds [8 x double*], [8 x double*]* %36, i64 0, i64 4
%38 = load double*, double** %37
%39 = call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %38)
%40 = load [8 x double*]*, [8 x double*]** %3
%41 = getelementptr inbounds [8 x double*], [8 x double*]* %40, i64 0
%42 = getelementptr inbounds [8 x double*], [8 x double*]* %41, i64 0, i64 6
%43 = load double*, double** %42
%44 = call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %43)
%45 = load [8 x double*]*, [8 x double*]** %3
%46 = getelementptr inbounds [8 x double*], [8 x double*]* %45, i64 2
%47 = getelementptr inbounds [8 x double*], [8 x double*]* %46, i64 0, i64 4
%48 = load double*, double** %47
%49 = call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %48)
%50 = load [8 x double*]*, [8 x double*]** %3
%51 = getelementptr inbounds [8 x double*], [8 x double*]* %50, i64 0
%52 = getelementptr inbounds [8 x double*], [8 x double*]* %51, i64 0, i64 7
%53 = load double*, double** %52
%54 = call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %53)
%55 = load [8 x double*]*, [8 x double*]** %3
%56 = getelementptr inbounds [8 x double*], [8 x double*]* %55, i64 1
%57 = getelementptr inbounds [8 x double*], [8 x double*]* %56, i64 0, i64 6
%58 = load double*, double** %57
%59 = call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %58)
%60 = load [8 x double*]*, [8 x double*]** %3
%61 = getelementptr inbounds [8 x double*], [8 x double*]* %60, i64 2
%62 = getelementptr inbounds [8 x double*], [8 x double*]* %61, i64 0, i64 5
%63 = load double*, double** %62
%64 = call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %63)
%65 = load [8 x double*]*, [8 x double*]** %3
%66 = getelementptr inbounds [8 x double*], [8 x double*]* %65, i64 3
%67 = getelementptr inbounds [8 x double*], [8 x double*]* %66, i64 0, i64 4
%68 = load double*, double** %67
%69 = call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %68)
%70 = load [8 x i32*]*, [8 x i32*]** %4
%71 = getelementptr inbounds [8 x i32*], [8 x i32*]* %70, i64 0
%72 = getelementptr inbounds [8 x i32*], [8 x i32*]* %71, i64 0, i64 1
%73 = load i32*, i32** %72
%74 = call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %73)
%75 = load [8 x i32*]*, [8 x i32*]** %4
%76 = getelementptr inbounds [8 x i32*], [8 x i32*]* %75, i64 0
%77 = getelementptr inbounds [8 x i32*], [8 x i32*]* %76, i64 0, i64 2
%78 = load i32*, i32** %77
%79 = call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %78)
%80 = load [8 x i32*]*, [8 x i32*]** %4
%81 = getelementptr inbounds [8 x i32*], [8 x i32*]* %80, i64 0
%82 = getelementptr inbounds [8 x i32*], [8 x i32*]* %81, i64 0, i64 4
%83 = load i32*, i32** %82
%84 = call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %83)
%85 = load [8 x i32*]*, [8 x i32*]** %4
%86 = getelementptr inbounds [8 x i32*], [8 x i32*]* %85, i64 0
%87 = getelementptr inbounds [8 x i32*], [8 x i32*]* %86, i64 0, i64 3
%88 = load i32*, i32** %87
%89 = call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %88)
%90 = load [8 x i32*]*, [8 x i32*]** %4
%91 = getelementptr inbounds [8 x i32*], [8 x i32*]* %90, i64 1
%92 = getelementptr inbounds [8 x i32*], [8 x i32*]* %91, i64 0, i64 2
%93 = load i32*, i32** %92
%94 = call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %93)
%95 = load [8 x i32*]*, [8 x i32*]** %4
%96 = getelementptr inbounds [8 x i32*], [8 x i32*]* %95, i64 0
%97 = getelementptr inbounds [8 x i32*], [8 x i32*]* %96, i64 0, i64 5
%98 = load i32*, i32** %97
%99 = call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %98)
%100 = load [8 x i32*]*, [8 x i32*]** %4
%101 = getelementptr inbounds [8 x i32*], [8 x i32*]* %100, i64 1
%102 = getelementptr inbounds [8 x i32*], [8 x i32*]* %101, i64 0, i64 4
%103 = load i32*, i32** %102
%104 = call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %103)
%105 = load [8 x i32*]*, [8 x i32*]** %4
%106 = getelementptr inbounds [8 x i32*], [8 x i32*]* %105, i64 0
%107 = getelementptr inbounds [8 x i32*], [8 x i32*]* %106, i64 0, i64 6
%108 = load i32*, i32** %107
%109 = call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %108)
%110 = load [8 x i32*]*, [8 x i32*]** %4
%111 = getelementptr inbounds [8 x i32*], [8 x i32*]* %110, i64 2
%112 = getelementptr inbounds [8 x i32*], [8 x i32*]* %111, i64 0, i64 4
%113 = load i32*, i32** %112
%114 = call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %113)
%115 = load [8 x i32*]*, [8 x i32*]** %4
%116 = getelementptr inbounds [8 x i32*], [8 x i32*]* %115, i64 0
%117 = getelementptr inbounds [8 x i32*], [8 x i32*]* %116, i64 0, i64 7
%118 = load i32*, i32** %117
%119 = call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %118)
%120 = load [8 x i32*]*, [8 x i32*]** %4
%121 = getelementptr inbounds [8 x i32*], [8 x i32*]* %120, i64 1
%122 = getelementptr inbounds [8 x i32*], [8 x i32*]* %121, i64 0, i64 6
%123 = load i32*, i32** %122
%124 = call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %123)
%125 = load [8 x i32*]*, [8 x i32*]** %4
%126 = getelementptr inbounds [8 x i32*], [8 x i32*]* %125, i64 2
%127 = getelementptr inbounds [8 x i32*], [8 x i32*]* %126, i64 0, i64 5
%128 = load i32*, i32** %127
%129 = call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %128)
%130 = load [8 x i32*]*, [8 x i32*]** %4
%131 = getelementptr inbounds [8 x i32*], [8 x i32*]* %130, i64 3
%132 = getelementptr inbounds [8 x i32*], [8 x i32*]* %131, i64 0, i64 4
%133 = load i32*, i32** %132
%134 = call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %133)
ret void
}

LLVM IR (-O2):
define void @free3d([8 x double*]* nocapture %0, [8 x i32*]* nocapture %1) {
%3 = getelementptr inbounds [8 x double*], [8 x double*]* %0, i64 0, i64 1
%4 = load double*, double** %3
%5 = tail call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %4)
%6 = getelementptr inbounds [8 x double*], [8 x double*]* %0, i64 0, i64 2
%7 = load double*, double** %6
%8 = tail call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %7)
%9 = getelementptr inbounds [8 x double*], [8 x double*]* %0, i64 0, i64 4
%10 = load double*, double** %9
%11 = tail call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %10)
%12 = getelementptr inbounds [8 x double*], [8 x double*]* %0, i64 0, i64 3
%13 = load double*, double** %12
%14 = tail call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %13)
%15 = getelementptr inbounds [8 x double*], [8 x double*]* %0, i64 1, i64 2
%16 = load double*, double** %15
%17 = tail call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %16)
%18 = getelementptr inbounds [8 x double*], [8 x double*]* %0, i64 0, i64 5
%19 = load double*, double** %18
%20 = tail call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %19)
%21 = getelementptr inbounds [8 x double*], [8 x double*]* %0, i64 1, i64 4
%22 = load double*, double** %21
%23 = tail call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %22)
%24 = getelementptr inbounds [8 x double*], [8 x double*]* %0, i64 0, i64 6
%25 = load double*, double** %24
%26 = tail call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %25)
%27 = getelementptr inbounds [8 x double*], [8 x double*]* %0, i64 2, i64 4
%28 = load double*, double** %27
%29 = tail call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %28)
%30 = getelementptr inbounds [8 x double*], [8 x double*]* %0, i64 0, i64 7
%31 = load double*, double** %30
%32 = tail call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %31)
%33 = getelementptr inbounds [8 x double*], [8 x double*]* %0, i64 1, i64 6
%34 = load double*, double** %33
%35 = tail call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %34)
%36 = getelementptr inbounds [8 x double*], [8 x double*]* %0, i64 2, i64 5
%37 = load double*, double** %36
%38 = tail call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %37)
%39 = getelementptr inbounds [8 x double*], [8 x double*]* %0, i64 3, i64 4
%40 = load double*, double** %39
%41 = tail call i32 (double*, ...) bitcast (i32 (...)* @sfree to i32 (double*, ...)*)(double* %40)
%42 = getelementptr inbounds [8 x i32*], [8 x i32*]* %1, i64 0, i64 1
%43 = load i32*, i32** %42
%44 = tail call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %43)
%45 = getelementptr inbounds [8 x i32*], [8 x i32*]* %1, i64 0, i64 2
%46 = load i32*, i32** %45
%47 = tail call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %46)
%48 = getelementptr inbounds [8 x i32*], [8 x i32*]* %1, i64 0, i64 4
%49 = load i32*, i32** %48
%50 = tail call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %49)
%51 = getelementptr inbounds [8 x i32*], [8 x i32*]* %1, i64 0, i64 3
%52 = load i32*, i32** %51
%53 = tail call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %52)
%54 = getelementptr inbounds [8 x i32*], [8 x i32*]* %1, i64 1, i64 2
%55 = load i32*, i32** %54
%56 = tail call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %55)
%57 = getelementptr inbounds [8 x i32*], [8 x i32*]* %1, i64 0, i64 5
%58 = load i32*, i32** %57
%59 = tail call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %58)
%60 = getelementptr inbounds [8 x i32*], [8 x i32*]* %1, i64 1, i64 4
%61 = load i32*, i32** %60
%62 = tail call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %61)
%63 = getelementptr inbounds [8 x i32*], [8 x i32*]* %1, i64 0, i64 6
%64 = load i32*, i32** %63
%65 = tail call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %64)
%66 = getelementptr inbounds [8 x i32*], [8 x i32*]* %1, i64 2, i64 4
%67 = load i32*, i32** %66
%68 = tail call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %67)
%69 = getelementptr inbounds [8 x i32*], [8 x i32*]* %1, i64 0, i64 7
%70 = load i32*, i32** %69
%71 = tail call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %70)
%72 = getelementptr inbounds [8 x i32*], [8 x i32*]* %1, i64 1, i64 6
%73 = load i32*, i32** %72
%74 = tail call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %73)
%75 = getelementptr inbounds [8 x i32*], [8 x i32*]* %1, i64 2, i64 5
%76 = load i32*, i32** %75
%77 = tail call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %76)
%78 = getelementptr inbounds [8 x i32*], [8 x i32*]* %1, i64 3, i64 4
%79 = load i32*, i32** %78
%80 = tail call i32 (i32*, ...) bitcast (i32 (...)* @sfree to i32 (i32*, ...)*)(i32* %79)
ret void
}