void OUT__1__6755__(void **__out_argv) {
  int *Ai = (int *)(__out_argv[20]);
  int *xi = (int *)(__out_argv[19]);
  int *ri = (int *)(__out_argv[18]);
  double **Ap = (double **)(__out_argv[17]);
  double **xp = (double **)(__out_argv[16]);
  double **rp = (double **)(__out_argv[15]);
  int *loopi = (int *)(__out_argv[14]);
  int *loopj = (int *)(__out_argv[13]);
  int *loopk = (int *)(__out_argv[12]);
  int *hypre__sx1 = (int *)(__out_argv[11]);
  int *hypre__sy1 = (int *)(__out_argv[10]);
  int *hypre__sz1 = (int *)(__out_argv[9]);
  int *hypre__sx2 = (int *)(__out_argv[8]);
  int *hypre__sy2 = (int *)(__out_argv[7]);
  int *hypre__sz2 = (int *)(__out_argv[6]);
  int *hypre__sx3 = (int *)(__out_argv[5]);
  int *hypre__sy3 = (int *)(__out_argv[4]);
  int *hypre__sz3 = (int *)(__out_argv[3]);
  int *hypre__nx = (int *)(__out_argv[2]);
  int *hypre__ny = (int *)(__out_argv[1]);
  int *hypre__nz = (int *)(__out_argv[0]);
  for (*loopk = 0; *loopk < *hypre__nz; (*loopk)++) {
    for (*loopj = 0; *loopj < *hypre__ny; (*loopj)++) {
      for (*loopi = 0; *loopi < *hypre__nx; (*loopi)++) {
        { (*rp)[*ri] -= (((*Ap)[*Ai]) * ((*xp)[*xi])); }
        *Ai += *hypre__sx1;
        *xi += *hypre__sx2;
        *ri += *hypre__sx3;
      }
      *Ai += (*hypre__sy1 - (*hypre__nx * *hypre__sx1));
      *xi += (*hypre__sy2 - (*hypre__nx * *hypre__sx2));
      *ri += (*hypre__sy3 - (*hypre__nx * *hypre__sx3));
    }
    *Ai += (*hypre__sz1 - (*hypre__ny * *hypre__sy1));
    *xi += (*hypre__sz2 - (*hypre__ny * *hypre__sy2));
    *ri += (*hypre__sz3 - (*hypre__ny * *hypre__sy3));
  }
}


x86 assembly (clang, -O0):
<OUT__1__6755__>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    0xa0(%rax),%rax
mov    %rax,-0x10(%rbp)
mov    -0x8(%rbp),%rax
mov    0x98(%rax),%rax
mov    %rax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
mov    0x90(%rax),%rax
mov    %rax,-0x20(%rbp)
mov    -0x8(%rbp),%rax
mov    0x88(%rax),%rax
mov    %rax,-0x28(%rbp)
mov    -0x8(%rbp),%rax
mov    0x80(%rax),%rax
mov    %rax,-0x30(%rbp)
mov    -0x8(%rbp),%rax
mov    0x78(%rax),%rax
mov    %rax,-0x38(%rbp)
mov    -0x8(%rbp),%rax
mov    0x70(%rax),%rax
mov    %rax,-0x40(%rbp)
mov    -0x8(%rbp),%rax
mov    0x68(%rax),%rax
mov    %rax,-0x48(%rbp)
mov    -0x8(%rbp),%rax
mov    0x60(%rax),%rax
mov    %rax,-0x50(%rbp)
mov    -0x8(%rbp),%rax
mov    0x58(%rax),%rax
mov    %rax,-0x58(%rbp)
mov    -0x8(%rbp),%rax
mov    0x50(%rax),%rax
mov    %rax,-0x60(%rbp)
mov    -0x8(%rbp),%rax
mov    0x48(%rax),%rax
mov    %rax,-0x68(%rbp)
mov    -0x8(%rbp),%rax
mov    0x40(%rax),%rax
mov    %rax,-0x70(%rbp)
mov    -0x8(%rbp),%rax
mov    0x38(%rax),%rax
mov    %rax,-0x78(%rbp)
mov    -0x8(%rbp),%rax
mov    0x30(%rax),%rax
mov    %rax,-0x80(%rbp)
mov    -0x8(%rbp),%rax
mov    0x28(%rax),%rax
mov    %rax,-0x88(%rbp)
mov    -0x8(%rbp),%rax
mov    0x20(%rax),%rax
mov    %rax,-0x90(%rbp)
mov    -0x8(%rbp),%rax
mov    0x18(%rax),%rax
mov    %rax,-0x98(%rbp)
mov    -0x8(%rbp),%rax
mov    0x10(%rax),%rax
mov    %rax,-0xa0(%rbp)
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%rax
mov    %rax,-0xa8(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
mov    %rax,-0xb0(%rbp)
mov    -0x50(%rbp),%rax
movl   $0x0,(%rax)
mov    -0x50(%rbp),%rax
mov    (%rax),%eax
mov    -0xb0(%rbp),%rcx
cmp    (%rcx),%eax
jge    140b <OUT__1__6755__+0x30b>
mov    -0x48(%rbp),%rax
movl   $0x0,(%rax)
mov    -0x48(%rbp),%rax
mov    (%rax),%eax
mov    -0xa8(%rbp),%rcx
cmp    (%rcx),%eax
jge    1395 <OUT__1__6755__+0x295>
mov    -0x40(%rbp),%rax
movl   $0x0,(%rax)
mov    -0x40(%rbp),%rax
mov    (%rax),%eax
mov    -0xa0(%rbp),%rcx
cmp    (%rcx),%eax
jge    131f <OUT__1__6755__+0x21f>
mov    -0x28(%rbp),%rax
mov    (%rax),%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x30(%rbp),%rax
mov    (%rax),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    -0x38(%rbp),%rax
mov    (%rax),%rax
mov    -0x20(%rbp),%rcx
movslq (%rcx),%rcx
movsd  (%rax,%rcx,8),%xmm1
movq   %xmm0,%rdx
movabs $0x8000000000000000,%rsi
xor    %rsi,%rdx
movq   %rdx,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x58(%rbp),%rax
mov    (%rax),%ecx
mov    -0x10(%rbp),%rax
add    (%rax),%ecx
mov    %ecx,(%rax)
mov    -0x70(%rbp),%rax
mov    (%rax),%ecx
mov    -0x18(%rbp),%rax
add    (%rax),%ecx
mov    %ecx,(%rax)
mov    -0x88(%rbp),%rax
mov    (%rax),%ecx
mov    -0x20(%rbp),%rax
add    (%rax),%ecx
mov    %ecx,(%rax)
mov    -0x40(%rbp),%rax
mov    (%rax),%ecx
add    $0x1,%ecx
mov    %ecx,(%rax)
jmp    1270 <OUT__1__6755__+0x170>
mov    -0x60(%rbp),%rax
mov    (%rax),%ecx
mov    -0xa0(%rbp),%rax
mov    (%rax),%eax
mov    -0x58(%rbp),%rdx
imul   (%rdx),%eax
sub    %eax,%ecx
mov    -0x10(%rbp),%rax
add    (%rax),%ecx
mov    %ecx,(%rax)
mov    -0x78(%rbp),%rax
mov    (%rax),%ecx
mov    -0xa0(%rbp),%rax
mov    (%rax),%eax
mov    -0x70(%rbp),%rdx
imul   (%rdx),%eax
sub    %eax,%ecx
mov    -0x18(%rbp),%rax
add    (%rax),%ecx
mov    %ecx,(%rax)
mov    -0x90(%rbp),%rax
mov    (%rax),%ecx
mov    -0xa0(%rbp),%rax
mov    (%rax),%eax
mov    -0x88(%rbp),%rdx
imul   (%rdx),%eax
sub    %eax,%ecx
mov    -0x20(%rbp),%rax
add    (%rax),%ecx
mov    %ecx,(%rax)
mov    -0x48(%rbp),%rax
mov    (%rax),%ecx
add    $0x1,%ecx
mov    %ecx,(%rax)
jmp    1251 <OUT__1__6755__+0x151>
mov    -0x68(%rbp),%rax
mov    (%rax),%ecx
mov    -0xa8(%rbp),%rax
mov    (%rax),%eax
mov    -0x60(%rbp),%rdx
imul   (%rdx),%eax
sub    %eax,%ecx
mov    -0x10(%rbp),%rax
add    (%rax),%ecx
mov    %ecx,(%rax)
mov    -0x80(%rbp),%rax
mov    (%rax),%ecx
mov    -0xa8(%rbp),%rax
mov    (%rax),%eax
mov    -0x78(%rbp),%rdx
imul   (%rdx),%eax
sub    %eax,%ecx
mov    -0x18(%rbp),%rax
add    (%rax),%ecx
mov    %ecx,(%rax)
mov    -0x98(%rbp),%rax
mov    (%rax),%ecx
mov    -0xa8(%rbp),%rax
mov    (%rax),%eax
mov    -0x90(%rbp),%rdx
imul   (%rdx),%eax
sub    %eax,%ecx
mov    -0x20(%rbp),%rax
add    (%rax),%ecx
mov    %ecx,(%rax)
mov    -0x50(%rbp),%rax
mov    (%rax),%ecx
add    $0x1,%ecx
mov    %ecx,(%rax)
jmp    1232 <OUT__1__6755__+0x132>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<OUT__1__6755__>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    %rdi,%rbx
mov    0xa0(%rdi),%rax
mov    0x98(%rdi),%rcx
mov    0x90(%rdi),%rdx
mov    0x88(%rdi),%rsi
mov    %rsi,-0x10(%rsp)
mov    0x80(%rdi),%rsi
mov    %rsi,-0x18(%rsp)
mov    0x78(%rdi),%rsi
mov    %rsi,-0x20(%rsp)
mov    0x70(%rdi),%rsi
mov    0x68(%rdi),%rdi
mov    %rdi,-0x58(%rsp)
mov    0x60(%rbx),%rdi
mov    0x58(%rbx),%r13
mov    0x50(%rbx),%rbp
mov    %rbp,-0x50(%rsp)
mov    0x48(%rbx),%rbp
mov    %rbp,-0x30(%rsp)
mov    0x40(%rbx),%r11
mov    0x38(%rbx),%rbp
mov    %rbp,-0x60(%rsp)
mov    0x30(%rbx),%rbp
mov    %rbp,-0x38(%rsp)
mov    0x28(%rbx),%r12
mov    0x20(%rbx),%rbp
mov    %rbp,-0x68(%rsp)
mov    0x18(%rbx),%rbp
mov    %rbp,-0x40(%rsp)
mov    0x10(%rbx),%r8
mov    (%rbx),%rbp
mov    0x8(%rbx),%r9
mov    %rdi,-0x28(%rsp)
movl   $0x0,(%rdi)
mov    %rbp,-0x48(%rsp)
cmpl   $0x0,0x0(%rbp)
jle    131b <OUT__1__6755__+0x21b>
mov    %r9,-0x8(%rsp)
jmp    1231 <OUT__1__6755__+0x131>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    -0x50(%rsp),%rdi
imul   (%rdi),%ebp
mov    (%rax),%edi
mov    -0x30(%rsp),%rbx
add    (%rbx),%edi
sub    %ebp,%edi
mov    %edi,(%rax)
mov    -0x60(%rsp),%rdi
mov    (%rdi),%edi
imul   (%r9),%edi
mov    (%rcx),%ebp
mov    -0x38(%rsp),%rbx
add    (%rbx),%ebp
sub    %edi,%ebp
mov    %ebp,(%rcx)
mov    -0x68(%rsp),%rdi
mov    (%rdi),%edi
imul   (%r9),%edi
mov    (%rdx),%ebp
mov    -0x40(%rsp),%rbx
add    (%rbx),%ebp
sub    %edi,%ebp
mov    %ebp,(%rdx)
mov    -0x28(%rsp),%rbp
mov    0x0(%rbp),%edi
add    $0x1,%edi
mov    %edi,0x0(%rbp)
mov    -0x48(%rsp),%rbp
cmp    0x0(%rbp),%edi
jge    131b <OUT__1__6755__+0x21b>
mov    -0x58(%rsp),%rdi
movl   $0x0,(%rdi)
mov    (%r9),%ebp
test   %ebp,%ebp
jg     12a9 <OUT__1__6755__+0x1a9>
jmp    11d0 <OUT__1__6755__+0xd0>
cs nopw 0x0(%rax,%rax,1)
nop
imul   0x0(%r13),%ebp
mov    (%rax),%edi
mov    -0x50(%rsp),%rbx
add    (%rbx),%edi
sub    %ebp,%edi
mov    %edi,(%rax)
mov    (%r11),%edi
imul   (%r8),%edi
mov    (%rcx),%ebp
mov    -0x60(%rsp),%rbx
add    (%rbx),%ebp
sub    %edi,%ebp
mov    %ebp,(%rcx)
mov    (%r12),%edi
imul   (%r8),%edi
mov    (%rdx),%ebp
mov    -0x68(%rsp),%rbx
add    (%rbx),%ebp
sub    %edi,%ebp
mov    %ebp,(%rdx)
mov    -0x58(%rsp),%rbp
mov    0x0(%rbp),%edi
add    $0x1,%edi
mov    %edi,0x0(%rbp)
mov    -0x8(%rsp),%r9
mov    (%r9),%ebp
cmp    %ebp,%edi
jge    11d0 <OUT__1__6755__+0xd0>
movl   $0x0,(%rsi)
mov    (%r8),%ebp
test   %ebp,%ebp
jle    1250 <OUT__1__6755__+0x150>
mov    -0x10(%rsp),%rdi
mov    (%rdi),%r9
mov    -0x18(%rsp),%rdi
mov    (%rdi),%r10
mov    -0x20(%rsp),%rdi
mov    (%rdi),%r15
xchg   %ax,%ax
movslq (%rax),%rbp
movsd  (%r9,%rbp,8),%xmm0
movslq (%rcx),%r14
movslq (%rdx),%rdi
movsd  (%r15,%rdi,8),%xmm1
mulsd  (%r10,%r14,8),%xmm0
subsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rdi,8)
mov    0x0(%r13),%edi
add    %ebp,%edi
mov    %edi,(%rax)
mov    (%r11),%edi
add    %edi,(%rcx)
mov    (%r12),%edi
add    %edi,(%rdx)
mov    (%rsi),%edi
add    $0x1,%edi
mov    %edi,(%rsi)
mov    (%r8),%ebp
cmp    %ebp,%edi
jl     12d0 <OUT__1__6755__+0x1d0>
jmp    1250 <OUT__1__6755__+0x150>
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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