void Solver(npatch, non0, coeff, diag, rhs, result) int npatch, non0;
double coeff[][8192], diag[][8192], rhs[][8192], result[][8192];
{
  int i, j, k, m;
  double tmp1;
  for (m = 0; m < 3; m++) {
    for (i = non0; i < npatch; i++) {
      coeff[i][i] = diag[m][i];
      result[m][i] = rhs[m][i];
      for (j = 0; j < i; j++) {
        coeff[i][j] = coeff[j][i];
      }
    }
    for (j = 0; j < non0; j++) {
      coeff[j][j] = 1.0 / diag[m][j];
      result[m][j] = rhs[m][j];
    }
    for (j = non0; j < npatch; j++) {
      for (k = non0; k < j; k++) {
        coeff[j][k] -= Ddot(k, &coeff[k][0], 1, &coeff[j][0], 1);
      }
      for (k = 0; k < j; k++) {
        tmp1 = coeff[j][k];
        coeff[j][k] = tmp1 * coeff[k][k];
        coeff[j][j] -= tmp1 * coeff[j][k];
      }
      coeff[j][j] = 1.0 / coeff[j][j];
    }
    for (k = non0; k < npatch; k++) {
      result[m][k] -= Ddot(k, &result[m][0], 1, &coeff[k][0], 1);
    }
    for (k = 0; k < npatch; k++) {
      result[m][k] *= coeff[k][k];
    }
    for (k = npatch - 2; k >= non0; k--) {
      result[m][k] -=
          Ddot(npatch - (k + 1), &result[m][k + 1], 1, &coeff[k + 1][k], 8192);
    }
    for (k = non0 - 1; k >= 0; k--) {
      result[m][k] -=
          Ddot(npatch - non0, &result[m][non0], 1, &coeff[non0][k], 8192);
    }
  }
}


x86 assembly (clang, -O0):
<Solver>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %rdx,-0x10(%rbp)
mov    %rcx,-0x18(%rbp)
mov    %r8,-0x20(%rbp)
mov    %r9,-0x28(%rbp)
movl   $0x0,-0x38(%rbp)
cmpl   $0x3,-0x38(%rbp)
jge    164a <Solver+0x53a>
mov    -0x8(%rbp),%eax
mov    %eax,-0x2c(%rbp)
mov    -0x2c(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    1215 <Solver+0x105>
mov    -0x18(%rbp),%rax
movslq -0x38(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x2c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x2c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x20(%rbp),%rax
movslq -0x38(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x2c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x28(%rbp),%rax
movslq -0x38(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x2c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movl   $0x0,-0x30(%rbp)
mov    -0x30(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1202 <Solver+0xf2>
mov    -0x10(%rbp),%rax
movslq -0x30(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x2c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x30(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    11b8 <Solver+0xa8>
jmp    1207 <Solver+0xf7>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1145 <Solver+0x35>
movl   $0x0,-0x30(%rbp)
mov    -0x30(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    129e <Solver+0x18e>
mov    -0x18(%rbp),%rax
movslq -0x38(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x30(%rbp),%rcx
movsd  0xdbd(%rip),%xmm0
divsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x30(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x30(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x20(%rbp),%rax
movslq -0x38(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x30(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x28(%rbp),%rax
movslq -0x38(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x30(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    121c <Solver+0x10c>
mov    -0x8(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    1438 <Solver+0x328>
mov    -0x8(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x34(%rbp),%eax
cmp    -0x30(%rbp),%eax
jge    1326 <Solver+0x216>
mov    -0x34(%rbp),%edi
mov    -0x10(%rbp),%rsi
movslq -0x34(%rbp),%rax
shl    $0x10,%rax
add    %rax,%rsi
mov    -0x10(%rbp),%rcx
movslq -0x30(%rbp),%rax
shl    $0x10,%rax
add    %rax,%rcx
mov    $0x1,%r8d
mov    %r8d,%edx
mov    $0x0,%al
call   1030 <Ddot@plt>
cvtsi2sd %eax,%xmm1
mov    -0x10(%rbp),%rax
movslq -0x30(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    12b6 <Solver+0x1a6>
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
cmp    -0x30(%rbp),%eax
jge    13f2 <Solver+0x2e2>
mov    -0x10(%rbp),%rax
movslq -0x30(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x40(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x34(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x30(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x34(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x30(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    -0x10(%rbp),%rax
movslq -0x30(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x30(%rbp),%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    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    132d <Solver+0x21d>
mov    -0x10(%rbp),%rax
movslq -0x30(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x30(%rbp),%rcx
movsd  0xbf3(%rip),%xmm0
divsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x30(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x30(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    12a4 <Solver+0x194>
mov    -0x8(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x34(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    14ae <Solver+0x39e>
mov    -0x34(%rbp),%edi
mov    -0x28(%rbp),%rsi
movslq -0x38(%rbp),%rax
shl    $0x10,%rax
add    %rax,%rsi
mov    -0x10(%rbp),%rcx
movslq -0x34(%rbp),%rax
shl    $0x10,%rax
add    %rax,%rcx
mov    $0x1,%r8d
mov    %r8d,%edx
mov    $0x0,%al
call   1030 <Ddot@plt>
cvtsi2sd %eax,%xmm1
mov    -0x28(%rbp),%rax
movslq -0x38(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    143e <Solver+0x32e>
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    1504 <Solver+0x3f4>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x28(%rbp),%rax
movslq -0x38(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x34(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    14b5 <Solver+0x3a5>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
mov    %eax,-0x34(%rbp)
mov    -0x34(%rbp),%eax
cmp    -0x8(%rbp),%eax
jl     15a5 <Solver+0x495>
mov    -0x4(%rbp),%edi
mov    -0x34(%rbp),%eax
add    $0x1,%eax
sub    %eax,%edi
mov    -0x28(%rbp),%rsi
movslq -0x38(%rbp),%rax
shl    $0x10,%rax
add    %rax,%rsi
mov    -0x34(%rbp),%eax
add    $0x1,%eax
cltq
shl    $0x3,%rax
add    %rax,%rsi
mov    -0x10(%rbp),%rcx
mov    -0x34(%rbp),%eax
add    $0x1,%eax
cltq
shl    $0x10,%rax
add    %rax,%rcx
movslq -0x34(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    $0x1,%edx
mov    $0x2000,%r8d
mov    $0x0,%al
call   1030 <Ddot@plt>
cvtsi2sd %eax,%xmm1
mov    -0x28(%rbp),%rax
movslq -0x38(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x34(%rbp)
jmp    150d <Solver+0x3fd>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x34(%rbp)
cmpl   $0x0,-0x34(%rbp)
jl     1637 <Solver+0x527>
mov    -0x4(%rbp),%edi
sub    -0x8(%rbp),%edi
mov    -0x28(%rbp),%rsi
movslq -0x38(%rbp),%rax
shl    $0x10,%rax
add    %rax,%rsi
movslq -0x8(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rsi
mov    -0x10(%rbp),%rcx
movslq -0x8(%rbp),%rax
shl    $0x10,%rax
add    %rax,%rcx
movslq -0x34(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    $0x1,%edx
mov    $0x2000,%r8d
mov    $0x0,%al
call   1030 <Ddot@plt>
cvtsi2sd %eax,%xmm1
mov    -0x28(%rbp),%rax
movslq -0x38(%rbp),%rcx
shl    $0x10,%rcx
add    %rcx,%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x34(%rbp)
jmp    15ae <Solver+0x49e>
jmp    163c <Solver+0x52c>
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1135 <Solver+0x25>
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<Solver>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x118,%rsp
mov    %rdx,%r13
mov    %edi,%r12d
sub    %esi,%r12d
mov    %rsi,%rax
mov    %rsi,0x8(%rsp)
movslq %esi,%rsi
movslq %edi,%rax
mov    %esi,%ebx
mov    %rax,0x108(%rsp)
mov    %eax,%edx
mov    %rdx,%rax
shl    $0x10,%rax
lea    (%rax,%rdx,8),%rax
add    %r13,%rax
add    $0xffffffffffff0000,%rax
mov    %rax,0x88(%rsp)
mov    %rbx,%rax
shl    $0x10,%rax
lea    (%rax,%rbx,8),%rax
add    %r13,%rax
add    $0xffffffffffff0000,%rax
mov    %rax,0x80(%rsp)
mov    %ebx,%eax
and    $0xfffffffe,%eax
mov    %rax,0x78(%rsp)
mov    %edx,%eax
and    $0xfffffffc,%eax
mov    %rax,0x70(%rsp)
mov    %rdx,%rax
neg    %rax
mov    %rax,0xc8(%rsp)
mov    %rsi,%rax
shl    $0x10,%rax
lea    (%rax,%r13,1),%rbp
add    $0x18,%rbp
mov    %rbp,0xc0(%rsp)
lea    (%rax,%r13,1),%r15
lea    (%rax,%rsi,8),%rax
add    %r13,%rax
mov    %rax,0xb8(%rsp)
mov    %rdx,0xe0(%rsp)
lea    0x0(,%rdx,8),%rax
and    $0xffffffffffffffe0,%rax
mov    %rax,0xd8(%rsp)
mov    %rdi,0x18(%rsp)
lea    -0x2(%rdi),%eax
mov    %eax,0x58(%rsp)
cltq
mov    %rax,%rdx
shl    $0x10,%rdx
lea    (%rdx,%rax,8),%rdx
add    %r13,%rdx
add    $0x10000,%rdx
mov    %rdx,0xb0(%rsp)
lea    0x1(%rax),%rdx
mov    %rdx,0xa8(%rsp)
lea    0x8(,%rax,8),%rax
mov    %rax,0xa0(%rsp)
movsd  0xddd(%rip),%xmm2
movapd 0xdc5(%rip),%xmm3
lea    0x30000(%r13,%rsi,8),%rax
mov    %rax,0x98(%rsp)
lea    0x0(%r13,%rsi,8),%rax
mov    %rax,0x90(%rsp)
mov    %rsi,0x48(%rsp)
lea    (%r9,%rsi,8),%rax
mov    %rax,0x60(%rsp)
mov    %rbx,0x30(%rsp)
lea    0x1(%rbx),%rax
mov    %rax,0xd0(%rsp)
mov    %r9,0xf8(%rsp)
mov    %r8,0xf0(%rsp)
mov    %rcx,0xe8(%rsp)
xor    %eax,%eax
mov    %r13,0x50(%rsp)
mov    %r12d,0x5c(%rsp)
mov    %r15,0x40(%rsp)
jmp    1308 <Solver+0x1f8>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    0x100(%rsp),%rax
add    $0x1,%rax
mov    0x20(%rsp),%rcx
add    $0x10000,%rcx
mov    0x28(%rsp),%r8
add    $0x10000,%r8
mov    0x10(%rsp),%r9
add    $0x10000,%r9
addq   $0x10000,0x60(%rsp)
cmp    $0x3,%rax
movsd  0xd1b(%rip),%xmm2
movapd 0xd03(%rip),%xmm3
mov    0x50(%rsp),%r13
je     1a07 <Solver+0x8f7>
mov    %rcx,0x20(%rsp)
mov    %r8,0x28(%rsp)
mov    %r9,0x10(%rsp)
mov    %rax,0x100(%rsp)
mov    %rax,%r9
shl    $0x10,%r9
mov    0xf8(%rsp),%rax
add    %r9,%rax
mov    %rax,0x38(%rsp)
mov    0xe8(%rsp),%rax
lea    (%rax,%r9,1),%r8
add    0xf0(%rsp),%r9
mov    0x18(%rsp),%rax
cmp    0x8(%rsp),%eax
jle    1490 <Solver+0x380>
xor    %r15d,%r15d
mov    0x90(%rsp),%r10
mov    0x40(%rsp),%r14
mov    0x8(%rsp),%rdx
mov    0xc0(%rsp),%rbx
mov    0x98(%rsp),%r12
mov    0x48(%rsp),%rax
jmp    13bf <Solver+0x2af>
cs nopw 0x0(%rax,%rax,1)
nop
add    $0x1,%rax
add    $0x1,%r15d
add    $0x8,%r12
add    $0x10000,%rbx
add    $0x1,%edx
add    $0x10000,%r14
add    $0x8,%r10
cmp    0x108(%rsp),%rax
je     1490 <Solver+0x380>
movsd  (%r8,%rax,8),%xmm0
mov    %rax,%rcx
shl    $0x10,%rcx
add    %r13,%rcx
movsd  %xmm0,(%rcx,%rax,8)
movsd  (%r9,%rax,8),%xmm0
mov    0x38(%rsp),%rcx
movsd  %xmm0,(%rcx,%rax,8)
test   %rax,%rax
jle    1390 <Solver+0x280>
mov    0x8(%rsp),%rcx
lea    (%r15,%rcx,1),%r11d
lea    -0x1(%r11),%rcx
cmp    $0x3,%rcx
jae    1400 <Solver+0x2f0>
xor    %esi,%esi
jmp    1453 <Solver+0x343>
mov    %edx,%ebp
and    $0xfffffffc,%ebp
mov    %r12,%rdi
xor    %esi,%esi
nopw   0x0(%rax,%rax,1)
movsd  -0x30000(%rdi),%xmm0
ff
movsd  %xmm0,-0x18(%rbx,%rsi,8)
movsd  -0x20000(%rdi),%xmm0
ff
movsd  %xmm0,-0x10(%rbx,%rsi,8)
movsd  -0x10000(%rdi),%xmm0
ff
movsd  %xmm0,-0x8(%rbx,%rsi,8)
movsd  (%rdi),%xmm0
movsd  %xmm0,(%rbx,%rsi,8)
add    $0x4,%rsi
add    $0x40000,%rdi
cmp    %rsi,%rbp
jne    1410 <Solver+0x300>
test   $0x3,%r11b
je     1390 <Solver+0x280>
mov    %edx,%edi
and    $0x3,%edi
lea    (%r14,%rsi,8),%rbp
shl    $0x10,%rsi
add    %r10,%rsi
xor    %ecx,%ecx
nop
movsd  (%rsi),%xmm0
movsd  %xmm0,0x0(%rbp,%rcx,8)
add    $0x1,%rcx
add    $0x10000,%rsi
cmp    %rcx,%rdi
jne    1470 <Solver+0x360>
jmp    1390 <Solver+0x280>
nop
cmpl   $0x0,0x8(%rsp)
mov    0x18(%rsp),%r12
mov    0x30(%rsp),%rdx
mov    0x40(%rsp),%r15
mov    0x10(%rsp),%rdi
mov    0x28(%rsp),%rbp
mov    0x20(%rsp),%rbx
jle    1618 <Solver+0x508>
cmpl   $0x1,0x8(%rsp)
jne    14d0 <Solver+0x3c0>
xor    %eax,%eax
jmp    15e0 <Solver+0x4d0>
nopw   0x0(%rax,%rax,1)
mov    0x38(%rsp),%rdi
lea    (%rdi,%rdx,8),%rsi
lea    (%r8,%rdx,8),%rcx
lea    (%r9,%rdx,8),%rbp
cmp    %r13,%rsi
seta   %r11b
mov    0x80(%rsp),%rbx
cmp    %rbx,%rdi
setb   %r14b
cmp    %r13,%rcx
seta   %al
cmp    %rbx,%r8
setb   %r12b
cmp    %r13,%rbp
seta   %dl
cmp    %rbx,%r9
setb   %r10b
cmp    %rcx,%rdi
setb   %bl
cmp    %rsi,%r8
setb   %r8b
cmp    %rbp,%rdi
setb   %cl
cmp    %rsi,%r9
setb   %sil
test   %r14b,%r11b
jne    15ad <Solver+0x49d>
and    %r12b,%al
jne    15ad <Solver+0x49d>
and    %r10b,%dl
jne    15ad <Solver+0x49d>
and    %r8b,%bl
mov    0x18(%rsp),%r12
jne    15ca <Solver+0x4ba>
mov    $0x0,%eax
and    %sil,%cl
mov    0x30(%rsp),%rdx
mov    0x10(%rsp),%rdi
mov    0x28(%rsp),%rbp
mov    0x20(%rsp),%rbx
jne    15e0 <Solver+0x4d0>
mov    %r13,%rax
xor    %ecx,%ecx
mov    0x78(%rsp),%rsi
movupd (%rbx,%rcx,8),%xmm0
movapd %xmm3,%xmm1
divpd  %xmm0,%xmm1
movlpd %xmm1,(%rax)
movhpd %xmm1,0x10008(%rax)
movupd 0x0(%rbp,%rcx,8),%xmm0
movupd %xmm0,(%rdi,%rcx,8)
add    $0x2,%rcx
add    $0x20010,%rax
cmp    %rcx,%rsi
jne    1570 <Solver+0x460>
mov    %rsi,%rax
cmp    %rdx,%rsi
jne    15e0 <Solver+0x4d0>
jmp    1618 <Solver+0x508>
xor    %eax,%eax
mov    0x30(%rsp),%rdx
mov    0x10(%rsp),%rdi
mov    0x28(%rsp),%rbp
mov    0x20(%rsp),%rbx
mov    0x18(%rsp),%r12
jmp    15e0 <Solver+0x4d0>
xor    %eax,%eax
mov    0x30(%rsp),%rdx
mov    0x10(%rsp),%rdi
mov    0x28(%rsp),%rbp
mov    0x20(%rsp),%rbx
mov    %rax,%rcx
shl    $0x10,%rcx
lea    (%rcx,%rax,8),%rcx
add    %r13,%rcx
xchg   %ax,%ax
movapd %xmm2,%xmm0
divsd  (%rbx,%rax,8),%xmm0
movsd  %xmm0,(%rcx)
movsd  0x0(%rbp,%rax,8),%xmm0
movsd  %xmm0,(%rdi,%rax,8)
add    $0x1,%rax
add    $0x10008,%rcx
cmp    %rax,%rdx
jne    15f0 <Solver+0x4e0>
cmp    0x8(%rsp),%r12d
jle    17d0 <Solver+0x6c0>
xor    %ebp,%ebp
mov    0xb8(%rsp),%r12
mov    0x48(%rsp),%rax
mov    %rax,%rbx
jmp    167f <Solver+0x56f>
nopw   0x0(%rax,%rax,1)
movsd  (%rcx),%xmm0
mov    0x40(%rsp),%r14
movsd  0x9bf(%rip),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%rax,%rbx,8)
add    $0x1,%rbx
add    $0x10000,%r12
add    $0x1,%rbp
add    $0x10000,%r15
cmp    0x18(%rsp),%ebx
mov    0x48(%rsp),%rax
je     1770 <Solver+0x660>
mov    %rbx,0x68(%rsp)
cmp    %rax,%rbx
mov    0x30(%rsp),%r14
jle    16f8 <Solver+0x5e8>
mov    0x68(%rsp),%rcx
shl    $0x10,%rcx
add    0x50(%rsp),%rcx
mov    %rcx,0x110(%rsp)
mov    0x40(%rsp),%rbx
xor    %r13d,%r13d
nopl   0x0(%rax)
lea    (%r14,%r13,1),%edi
mov    %rbx,%rsi
mov    $0x1,%edx
mov    0x110(%rsp),%rcx
mov    $0x1,%r8d
xor    %eax,%eax
call   1030 <Ddot@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  (%r12,%r13,8),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,(%r12,%r13,8)
add    $0x1,%r13
add    $0x10000,%rbx
cmp    %r13d,%ebp
jne    16b0 <Solver+0x5a0>
mov    0x68(%rsp),%rbx
mov    %rbx,%rax
shl    $0x10,%rax
mov    0x50(%rsp),%r13
add    %r13,%rax
lea    (%rax,%rbx,8),%rcx
test   %rbx,%rbx
jle    1640 <Solver+0x530>
mov    %ebx,%edx
mov    %r13,%rsi
xor    %edi,%edi
mov    0x40(%rsp),%r14
cs nopw 0x0(%rax,%rax,1)
nop
movsd  (%r15,%rdi,8),%xmm1
movsd  (%rsi),%xmm2
mulsd  %xmm1,%xmm2
movsd  %xmm2,(%r15,%rdi,8)
movsd  (%rcx),%xmm0
mulsd  %xmm1,%xmm2
subsd  %xmm2,%xmm0
movsd  %xmm0,(%rcx)
add    $0x1,%rdi
add    $0x10008,%rsi
cmp    %rdi,%rdx
jne    1730 <Solver+0x620>
jmp    1649 <Solver+0x539>
nopl   0x0(%rax)
mov    0x18(%rsp),%r12
cmp    0x8(%rsp),%r12d
mov    0x38(%rsp),%r15
jle    17d0 <Solver+0x6c0>
mov    0x60(%rsp),%rbx
mov    0x8(%rsp),%rax
mov    %eax,%ebp
nopl   (%rax)
mov    %ebp,%edi
mov    %r15,%rsi
mov    $0x1,%edx
mov    %r14,%rcx
mov    $0x1,%r8d
xor    %eax,%eax
call   1030 <Ddot@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  (%rbx),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,(%rbx)
add    $0x1,%ebp
add    $0x8,%rbx
add    $0x10000,%r14
cmp    %ebp,%r12d
jne    1790 <Solver+0x680>
test   %r12d,%r12d
mov    0xe0(%rsp),%rdx
mov    0xd8(%rsp),%rsi
mov    0x10(%rsp),%rdi
jle    1910 <Solver+0x800>
cmp    $0x4,%r12d
jb     1814 <Solver+0x704>
mov    0x38(%rsp),%rax
cmp    0x88(%rsp),%rax
jae    18a4 <Solver+0x794>
lea    (%rax,%rdx,8),%rax
cmp    %r13,%rax
jbe    18a4 <Solver+0x794>
xor    %ecx,%ecx
mov    %rcx,%rax
test   $0x1,%dl
je     1843 <Solver+0x733>
mov    %rcx,%rax
shl    $0x10,%rax
add    %r13,%rax
movsd  (%rax,%rcx,8),%xmm0
mov    0x38(%rsp),%rax
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    %rcx,%rax
or     $0x1,%rax
not    %rcx
cmp    0xc8(%rsp),%rcx
je     1910 <Solver+0x800>
mov    %rax,%rcx
shl    $0x10,%rcx
lea    (%rcx,%rax,8),%rcx
add    %r13,%rcx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movsd  (%rcx),%xmm0
mulsd  (%rdi,%rax,8),%xmm0
movsd  %xmm0,(%rdi,%rax,8)
movsd  0x10008(%rcx),%xmm0
mulsd  0x8(%rdi,%rax,8),%xmm0
movsd  %xmm0,0x8(%rdi,%rax,8)
add    $0x2,%rax
add    $0x20010,%rcx
cmp    %rax,%rdx
jne    1870 <Solver+0x760>
jmp    1910 <Solver+0x800>
xor    %eax,%eax
mov    %r13,%rcx
nopl   0x0(%rax)
movsd  (%rcx),%xmm0
movhpd 0x10008(%rcx),%xmm0
movsd  0x20010(%rcx),%xmm1
movhpd 0x30018(%rcx),%xmm1
movupd (%rdi,%rax,1),%xmm2
mulpd  %xmm0,%xmm2
movupd 0x10(%rdi,%rax,1),%xmm0
mulpd  %xmm1,%xmm0
movupd %xmm2,(%rdi,%rax,1)
movupd %xmm0,0x10(%rdi,%rax,1)
add    $0x40020,%rcx
add    $0x20,%rax
cmp    %rax,%rsi
jne    18b0 <Solver+0x7a0>
mov    0x70(%rsp),%rax
mov    %rax,%rcx
cmp    %rdx,%rax
jne    1816 <Solver+0x706>
nopl   0x0(%rax,%rax,1)
mov    0x58(%rsp),%eax
cmp    0x8(%rsp),%eax
mov    0x48(%rsp),%r15
jl     198d <Solver+0x87d>
mov    %rdi,%r13
mov    $0x1,%r12d
mov    0xa0(%rsp),%r14
mov    0xb0(%rsp),%rbp
mov    0xa8(%rsp),%rbx
lea    (%r14,%r13,1),%rsi
mov    %r12d,%edi
mov    $0x1,%edx
mov    %rbp,%rcx
mov    $0x2000,%r8d
xor    %eax,%eax
call   1030 <Ddot@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  -0x8(%r13,%rbx,8),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,-0x8(%r13,%rbx,8)
add    $0xffffffffffffffff,%rbx
add    $0xfffffffffffefff8,%rbp
add    $0x1,%r12d
add    $0xfffffffffffffff8,%r14
cmp    %r15,%rbx
jg     1940 <Solver+0x830>
cmpl   $0x0,0x8(%rsp)
mov    0x5c(%rsp),%r12d
mov    0x40(%rsp),%r15
mov    0x38(%rsp),%r13
jle    12b0 <Solver+0x1a0>
mov    0x48(%rsp),%rax
lea    0x0(,%rax,8),%r14
add    %r13,%r14
mov    0xd0(%rsp),%rbp
nop
lea    -0x2(%rbp),%ebx
lea    (%r15,%rbx,8),%rcx
mov    %r12d,%edi
mov    %r14,%rsi
mov    $0x1,%edx
mov    $0x2000,%r8d
xor    %eax,%eax
call   1030 <Ddot@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x0(%r13,%rbx,8),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x0(%r13,%rbx,8)
add    $0xffffffffffffffff,%rbp
cmp    $0x1,%rbp
jg     19c0 <Solver+0x8b0>
jmp    12b0 <Solver+0x1a0>
add    $0x118,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @Solver(i32 %0, i32 %1, [8192 x double]* %2, [8192 x double]* %3, [8192 x double]* %4, [8192 x double]* %5) {
%7 = alloca i32
%8 = alloca i32
%9 = alloca [8192 x double]*
%10 = alloca [8192 x double]*
%11 = alloca [8192 x double]*
%12 = alloca [8192 x double]*
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca double
store i32 %0, i32* %7
store i32 %1, i32* %8
store [8192 x double]* %2, [8192 x double]** %9
store [8192 x double]* %3, [8192 x double]** %10
store [8192 x double]* %4, [8192 x double]** %11
store [8192 x double]* %5, [8192 x double]** %12
store i32 0, i32* %16
br label %18
18: ; preds = %375, %6
%19 = load i32, i32* %16
%20 = icmp slt i32 %19, 3
br i1 %20, label %21, label %378
21: ; preds = %18
%22 = load i32, i32* %8
store i32 %22, i32* %13
br label %23
23: ; preds = %82, %21
%24 = load i32, i32* %13
%25 = load i32, i32* %7
%26 = icmp slt i32 %24, %25
br i1 %26, label %27, label %85
27: ; preds = %23
%28 = load [8192 x double]*, [8192 x double]** %10
%29 = load i32, i32* %16
%30 = sext i32 %29 to i64
%31 = getelementptr inbounds [8192 x double], [8192 x double]* %28, i64 %30
%32 = load i32, i32* %13
%33 = sext i32 %32 to i64
%34 = getelementptr inbounds [8192 x double], [8192 x double]* %31, i64 0, i64 %33
%35 = load double, double* %34
%36 = load [8192 x double]*, [8192 x double]** %9
%37 = load i32, i32* %13
%38 = sext i32 %37 to i64
%39 = getelementptr inbounds [8192 x double], [8192 x double]* %36, i64 %38
%40 = load i32, i32* %13
%41 = sext i32 %40 to i64
%42 = getelementptr inbounds [8192 x double], [8192 x double]* %39, i64 0, i64 %41
store double %35, double* %42
%43 = load [8192 x double]*, [8192 x double]** %11
%44 = load i32, i32* %16
%45 = sext i32 %44 to i64
%46 = getelementptr inbounds [8192 x double], [8192 x double]* %43, i64 %45
%47 = load i32, i32* %13
%48 = sext i32 %47 to i64
%49 = getelementptr inbounds [8192 x double], [8192 x double]* %46, i64 0, i64 %48
%50 = load double, double* %49
%51 = load [8192 x double]*, [8192 x double]** %12
%52 = load i32, i32* %16
%53 = sext i32 %52 to i64
%54 = getelementptr inbounds [8192 x double], [8192 x double]* %51, i64 %53
%55 = load i32, i32* %13
%56 = sext i32 %55 to i64
%57 = getelementptr inbounds [8192 x double], [8192 x double]* %54, i64 0, i64 %56
store double %50, double* %57
store i32 0, i32* %14
br label %58
58: ; preds = %78, %27
%59 = load i32, i32* %14
%60 = load i32, i32* %13
%61 = icmp slt i32 %59, %60
br i1 %61, label %62, label %81
62: ; preds = %58
%63 = load [8192 x double]*, [8192 x double]** %9
%64 = load i32, i32* %14
%65 = sext i32 %64 to i64
%66 = getelementptr inbounds [8192 x double], [8192 x double]* %63, i64 %65
%67 = load i32, i32* %13
%68 = sext i32 %67 to i64
%69 = getelementptr inbounds [8192 x double], [8192 x double]* %66, i64 0, i64 %68
%70 = load double, double* %69
%71 = load [8192 x double]*, [8192 x double]** %9
%72 = load i32, i32* %13
%73 = sext i32 %72 to i64
%74 = getelementptr inbounds [8192 x double], [8192 x double]* %71, i64 %73
%75 = load i32, i32* %14
%76 = sext i32 %75 to i64
%77 = getelementptr inbounds [8192 x double], [8192 x double]* %74, i64 0, i64 %76
store double %70, double* %77
br label %78
78: ; preds = %62
%79 = load i32, i32* %14
%80 = add nsw i32 %79, 1
store i32 %80, i32* %14
br label %58
81: ; preds = %58
br label %82
82: ; preds = %81
%83 = load i32, i32* %13
%84 = add nsw i32 %83, 1
store i32 %84, i32* %13
br label %23
85: ; preds = %23
store i32 0, i32* %14
br label %86
86: ; preds = %122, %85
%87 = load i32, i32* %14
%88 = load i32, i32* %8
%89 = icmp slt i32 %87, %88
br i1 %89, label %90, label %125
90: ; preds = %86
%91 = load [8192 x double]*, [8192 x double]** %10
%92 = load i32, i32* %16
%93 = sext i32 %92 to i64
%94 = getelementptr inbounds [8192 x double], [8192 x double]* %91, i64 %93
%95 = load i32, i32* %14
%96 = sext i32 %95 to i64
%97 = getelementptr inbounds [8192 x double], [8192 x double]* %94, i64 0, i64 %96
%98 = load double, double* %97
%99 = fdiv double 1.000000e+00, %98
%100 = load [8192 x double]*, [8192 x double]** %9
%101 = load i32, i32* %14
%102 = sext i32 %101 to i64
%103 = getelementptr inbounds [8192 x double], [8192 x double]* %100, i64 %102
%104 = load i32, i32* %14
%105 = sext i32 %104 to i64
%106 = getelementptr inbounds [8192 x double], [8192 x double]* %103, i64 0, i64 %105
store double %99, double* %106
%107 = load [8192 x double]*, [8192 x double]** %11
%108 = load i32, i32* %16
%109 = sext i32 %108 to i64
%110 = getelementptr inbounds [8192 x double], [8192 x double]* %107, i64 %109
%111 = load i32, i32* %14
%112 = sext i32 %111 to i64
%113 = getelementptr inbounds [8192 x double], [8192 x double]* %110, i64 0, i64 %112
%114 = load double, double* %113
%115 = load [8192 x double]*, [8192 x double]** %12
%116 = load i32, i32* %16
%117 = sext i32 %116 to i64
%118 = getelementptr inbounds [8192 x double], [8192 x double]* %115, i64 %117
%119 = load i32, i32* %14
%120 = sext i32 %119 to i64
%121 = getelementptr inbounds [8192 x double], [8192 x double]* %118, i64 0, i64 %120
store double %114, double* %121
br label %122
122: ; preds = %90
%123 = load i32, i32* %14
%124 = add nsw i32 %123, 1
store i32 %124, i32* %14
br label %86
125: ; preds = %86
%126 = load i32, i32* %8
store i32 %126, i32* %14
br label %127
127: ; preds = %233, %125
%128 = load i32, i32* %14
%129 = load i32, i32* %7
%130 = icmp slt i32 %128, %129
br i1 %130, label %131, label %236
131: ; preds = %127
%132 = load i32, i32* %8
store i32 %132, i32* %15
br label %133
133: ; preds = %160, %131
%134 = load i32, i32* %15
%135 = load i32, i32* %14
%136 = icmp slt i32 %134, %135
br i1 %136, label %137, label %163
137: ; preds = %133
%138 = load i32, i32* %15
%139 = load [8192 x double]*, [8192 x double]** %9
%140 = load i32, i32* %15
%141 = sext i32 %140 to i64
%142 = getelementptr inbounds [8192 x double], [8192 x double]* %139, i64 %141
%143 = getelementptr inbounds [8192 x double], [8192 x double]* %142, i64 0, i64 0
%144 = load [8192 x double]*, [8192 x double]** %9
%145 = load i32, i32* %14
%146 = sext i32 %145 to i64
%147 = getelementptr inbounds [8192 x double], [8192 x double]* %144, i64 %146
%148 = getelementptr inbounds [8192 x double], [8192 x double]* %147, i64 0, i64 0
%149 = call i32 (i32, double*, i32, double*, i32, ...) bitcast (i32 (...)* @Ddot to i32 (i32, double*, i32, double*, i32, ...)*)(i32 %138, double* %143, i32 1, double* %148, i32 1)
%150 = sitofp i32 %149 to double
%151 = load [8192 x double]*, [8192 x double]** %9
%152 = load i32, i32* %14
%153 = sext i32 %152 to i64
%154 = getelementptr inbounds [8192 x double], [8192 x double]* %151, i64 %153
%155 = load i32, i32* %15
%156 = sext i32 %155 to i64
%157 = getelementptr inbounds [8192 x double], [8192 x double]* %154, i64 0, i64 %156
%158 = load double, double* %157
%159 = fsub double %158, %150
store double %159, double* %157
br label %160
160: ; preds = %137
%161 = load i32, i32* %15
%162 = add nsw i32 %161, 1
store i32 %162, i32* %15
br label %133
163: ; preds = %133
store i32 0, i32* %15
br label %164
164: ; preds = %213, %163
%165 = load i32, i32* %15
%166 = load i32, i32* %14
%167 = icmp slt i32 %165, %166
br i1 %167, label %168, label %216
168: ; preds = %164
%169 = load [8192 x double]*, [8192 x double]** %9
%170 = load i32, i32* %14
%171 = sext i32 %170 to i64
%172 = getelementptr inbounds [8192 x double], [8192 x double]* %169, i64 %171
%173 = load i32, i32* %15
%174 = sext i32 %173 to i64
%175 = getelementptr inbounds [8192 x double], [8192 x double]* %172, i64 0, i64 %174
%176 = load double, double* %175
store double %176, double* %17
%177 = load double, double* %17
%178 = load [8192 x double]*, [8192 x double]** %9
%179 = load i32, i32* %15
%180 = sext i32 %179 to i64
%181 = getelementptr inbounds [8192 x double], [8192 x double]* %178, i64 %180
%182 = load i32, i32* %15
%183 = sext i32 %182 to i64
%184 = getelementptr inbounds [8192 x double], [8192 x double]* %181, i64 0, i64 %183
%185 = load double, double* %184
%186 = fmul double %177, %185
%187 = load [8192 x double]*, [8192 x double]** %9
%188 = load i32, i32* %14
%189 = sext i32 %188 to i64
%190 = getelementptr inbounds [8192 x double], [8192 x double]* %187, i64 %189
%191 = load i32, i32* %15
%192 = sext i32 %191 to i64
%193 = getelementptr inbounds [8192 x double], [8192 x double]* %190, i64 0, i64 %192
store double %186, double* %193
%194 = load double, double* %17
%195 = load [8192 x double]*, [8192 x double]** %9
%196 = load i32, i32* %14
%197 = sext i32 %196 to i64
%198 = getelementptr inbounds [8192 x double], [8192 x double]* %195, i64 %197
%199 = load i32, i32* %15
%200 = sext i32 %199 to i64
%201 = getelementptr inbounds [8192 x double], [8192 x double]* %198, i64 0, i64 %200
%202 = load double, double* %201
%203 = load [8192 x double]*, [8192 x double]** %9
%204 = load i32, i32* %14
%205 = sext i32 %204 to i64
%206 = getelementptr inbounds [8192 x double], [8192 x double]* %203, i64 %205
%207 = load i32, i32* %14
%208 = sext i32 %207 to i64
%209 = getelementptr inbounds [8192 x double], [8192 x double]* %206, i64 0, i64 %208
%210 = load double, double* %209
%211 = fneg double %194
%212 = call double @llvm.fmuladd.f64(double %211, double %202, double %210)
store double %212, double* %209
br label %213
213: ; preds = %168
%214 = load i32, i32* %15
%215 = add nsw i32 %214, 1
store i32 %215, i32* %15
br label %164
216: ; preds = %164
%217 = load [8192 x double]*, [8192 x double]** %9
%218 = load i32, i32* %14
%219 = sext i32 %218 to i64
%220 = getelementptr inbounds [8192 x double], [8192 x double]* %217, i64 %219
%221 = load i32, i32* %14
%222 = sext i32 %221 to i64
%223 = getelementptr inbounds [8192 x double], [8192 x double]* %220, i64 0, i64 %222
%224 = load double, double* %223
%225 = fdiv double 1.000000e+00, %224
%226 = load [8192 x double]*, [8192 x double]** %9
%227 = load i32, i32* %14
%228 = sext i32 %227 to i64
%229 = getelementptr inbounds [8192 x double], [8192 x double]* %226, i64 %228
%230 = load i32, i32* %14
%231 = sext i32 %230 to i64
%232 = getelementptr inbounds [8192 x double], [8192 x double]* %229, i64 0, i64 %231
store double %225, double* %232
br label %233
233: ; preds = %216
%234 = load i32, i32* %14
%235 = add nsw i32 %234, 1
store i32 %235, i32* %14
br label %127
236: ; preds = %127
%237 = load i32, i32* %8
store i32 %237, i32* %15
br label %238
238: ; preds = %265, %236
%239 = load i32, i32* %15
%240 = load i32, i32* %7
%241 = icmp slt i32 %239, %240
br i1 %241, label %242, label %268
242: ; preds = %238
%243 = load i32, i32* %15
%244 = load [8192 x double]*, [8192 x double]** %12
%245 = load i32, i32* %16
%246 = sext i32 %245 to i64
%247 = getelementptr inbounds [8192 x double], [8192 x double]* %244, i64 %246
%248 = getelementptr inbounds [8192 x double], [8192 x double]* %247, i64 0, i64 0
%249 = load [8192 x double]*, [8192 x double]** %9
%250 = load i32, i32* %15
%251 = sext i32 %250 to i64
%252 = getelementptr inbounds [8192 x double], [8192 x double]* %249, i64 %251
%253 = getelementptr inbounds [8192 x double], [8192 x double]* %252, i64 0, i64 0
%254 = call i32 (i32, double*, i32, double*, i32, ...) bitcast (i32 (...)* @Ddot to i32 (i32, double*, i32, double*, i32, ...)*)(i32 %243, double* %248, i32 1, double* %253, i32 1)
%255 = sitofp i32 %254 to double
%256 = load [8192 x double]*, [8192 x double]** %12
%257 = load i32, i32* %16
%258 = sext i32 %257 to i64
%259 = getelementptr inbounds [8192 x double], [8192 x double]* %256, i64 %258
%260 = load i32, i32* %15
%261 = sext i32 %260 to i64
%262 = getelementptr inbounds [8192 x double], [8192 x double]* %259, i64 0, i64 %261
%263 = load double, double* %262
%264 = fsub double %263, %255
store double %264, double* %262
br label %265
265: ; preds = %242
%266 = load i32, i32* %15
%267 = add nsw i32 %266, 1
store i32 %267, i32* %15
br label %238
268: ; preds = %238
store i32 0, i32* %15
br label %269
269: ; preds = %291, %268
%270 = load i32, i32* %15
%271 = load i32, i32* %7
%272 = icmp slt i32 %270, %271
br i1 %272, label %273, label %294
273: ; preds = %269
%274 = load [8192 x double]*, [8192 x double]** %9
%275 = load i32, i32* %15
%276 = sext i32 %275 to i64
%277 = getelementptr inbounds [8192 x double], [8192 x double]* %274, i64 %276
%278 = load i32, i32* %15
%279 = sext i32 %278 to i64
%280 = getelementptr inbounds [8192 x double], [8192 x double]* %277, i64 0, i64 %279
%281 = load double, double* %280
%282 = load [8192 x double]*, [8192 x double]** %12
%283 = load i32, i32* %16
%284 = sext i32 %283 to i64
%285 = getelementptr inbounds [8192 x double], [8192 x double]* %282, i64 %284
%286 = load i32, i32* %15
%287 = sext i32 %286 to i64
%288 = getelementptr inbounds [8192 x double], [8192 x double]* %285, i64 0, i64 %287
%289 = load double, double* %288
%290 = fmul double %289, %281
store double %290, double* %288
br label %291
291: ; preds = %273
%292 = load i32, i32* %15
%293 = add nsw i32 %292, 1
store i32 %293, i32* %15
br label %269
294: ; preds = %269
%295 = load i32, i32* %7
%296 = sub nsw i32 %295, 2
store i32 %296, i32* %15
br label %297
297: ; preds = %333, %294
%298 = load i32, i32* %15
%299 = load i32, i32* %8
%300 = icmp sge i32 %298, %299
br i1 %300, label %301, label %336
301: ; preds = %297
%302 = load i32, i32* %7
%303 = load i32, i32* %15
%304 = add nsw i32 %303, 1
%305 = sub nsw i32 %302, %304
%306 = load [8192 x double]*, [8192 x double]** %12
%307 = load i32, i32* %16
%308 = sext i32 %307 to i64
%309 = getelementptr inbounds [8192 x double], [8192 x double]* %306, i64 %308
%310 = load i32, i32* %15
%311 = add nsw i32 %310, 1
%312 = sext i32 %311 to i64
%313 = getelementptr inbounds [8192 x double], [8192 x double]* %309, i64 0, i64 %312
%314 = load [8192 x double]*, [8192 x double]** %9
%315 = load i32, i32* %15
%316 = add nsw i32 %315, 1
%317 = sext i32 %316 to i64
%318 = getelementptr inbounds [8192 x double], [8192 x double]* %314, i64 %317
%319 = load i32, i32* %15
%320 = sext i32 %319 to i64
%321 = getelementptr inbounds [8192 x double], [8192 x double]* %318, i64 0, i64 %320
%322 = call i32 (i32, double*, i32, double*, i32, ...) bitcast (i32 (...)* @Ddot to i32 (i32, double*, i32, double*, i32, ...)*)(i32 %305, double* %313, i32 1, double* %321, i32 8192)
%323 = sitofp i32 %322 to double
%324 = load [8192 x double]*, [8192 x double]** %12
%325 = load i32, i32* %16
%326 = sext i32 %325 to i64
%327 = getelementptr inbounds [8192 x double], [8192 x double]* %324, i64 %326
%328 = load i32, i32* %15
%329 = sext i32 %328 to i64
%330 = getelementptr inbounds [8192 x double], [8192 x double]* %327, i64 0, i64 %329
%331 = load double, double* %330
%332 = fsub double %331, %323
store double %332, double* %330
br label %333
333: ; preds = %301
%334 = load i32, i32* %15
%335 = add nsw i32 %334, -1
store i32 %335, i32* %15
br label %297
336: ; preds = %297
%337 = load i32, i32* %8
%338 = sub nsw i32 %337, 1
store i32 %338, i32* %15
br label %339
339: ; preds = %371, %336
%340 = load i32, i32* %15
%341 = icmp sge i32 %340, 0
br i1 %341, label %342, label %374
342: ; preds = %339
%343 = load i32, i32* %7
%344 = load i32, i32* %8
%345 = sub nsw i32 %343, %344
%346 = load [8192 x double]*, [8192 x double]** %12
%347 = load i32, i32* %16
%348 = sext i32 %347 to i64
%349 = getelementptr inbounds [8192 x double], [8192 x double]* %346, i64 %348
%350 = load i32, i32* %8
%351 = sext i32 %350 to i64
%352 = getelementptr inbounds [8192 x double], [8192 x double]* %349, i64 0, i64 %351
%353 = load [8192 x double]*, [8192 x double]** %9
%354 = load i32, i32* %8
%355 = sext i32 %354 to i64
%356 = getelementptr inbounds [8192 x double], [8192 x double]* %353, i64 %355
%357 = load i32, i32* %15
%358 = sext i32 %357 to i64
%359 = getelementptr inbounds [8192 x double], [8192 x double]* %356, i64 0, i64 %358
%360 = call i32 (i32, double*, i32, double*, i32, ...) bitcast (i32 (...)* @Ddot to i32 (i32, double*, i32, double*, i32, ...)*)(i32 %345, double* %352, i32 1, double* %359, i32 8192)
%361 = sitofp i32 %360 to double
%362 = load [8192 x double]*, [8192 x double]** %12
%363 = load i32, i32* %16
%364 = sext i32 %363 to i64
%365 = getelementptr inbounds [8192 x double], [8192 x double]* %362, i64 %364
%366 = load i32, i32* %15
%367 = sext i32 %366 to i64
%368 = getelementptr inbounds [8192 x double], [8192 x double]* %365, i64 0, i64 %367
%369 = load double, double* %368
%370 = fsub double %369, %361
store double %370, double* %368
br label %371
371: ; preds = %342
%372 = load i32, i32* %15
%373 = add nsw i32 %372, -1
store i32 %373, i32* %15
br label %339
374: ; preds = %339
br label %375
375: ; preds = %374
%376 = load i32, i32* %16
%377 = add nsw i32 %376, 1
store i32 %377, i32* %16
br label %18
378: ; preds = %18
ret void
}

LLVM IR (-O2):
define void @Solver(i32 %0, i32 %1, [8192 x double]* %2, [8192 x double]* nocapture %3, [8192 x double]* nocapture %4, [8192 x double]* %5) {
%7 = icmp sgt i32 %0, %1
%8 = icmp sgt i32 %1, 0
%9 = icmp sgt i32 %0, 0
%10 = add i32 %0, -2
%11 = icmp slt i32 %10, %1
%12 = sub nsw i32 %0, %1
%13 = sext i32 %1 to i64
%14 = sext i32 %10 to i64
%15 = sext i32 %0 to i64
%16 = zext i32 %1 to i64
%17 = zext i32 %0 to i64
%18 = mul nuw nsw i64 %17, 8193
%19 = getelementptr [8192 x double], [8192 x double]* %2, i64 -1, i64 %18
%20 = mul nuw nsw i64 %16, 8193
%21 = getelementptr [8192 x double], [8192 x double]* %2, i64 -1, i64 %20
%22 = icmp eq i32 %1, 1
%23 = and i64 %16, 4294967294
%24 = icmp eq i64 %23, %16
%25 = icmp ult i32 %0, 4
%26 = and i64 %17, 4294967292
%27 = icmp eq i64 %26, %17
%28 = and i64 %17, 1
%29 = icmp eq i64 %28, 0
%30 = sub nsw i64 0, %17
br label %31
31: ; preds = %6, %307
%32 = phi i64 [ 0, %6 ], [ %308, %307 ]
%33 = getelementptr [8192 x double], [8192 x double]* %5, i64 %32, i64 0
%34 = getelementptr [8192 x double], [8192 x double]* %5, i64 %32, i64 %16
%35 = getelementptr [8192 x double], [8192 x double]* %3, i64 %32, i64 0
%36 = getelementptr [8192 x double], [8192 x double]* %3, i64 %32, i64 %16
%37 = getelementptr [8192 x double], [8192 x double]* %4, i64 %32, i64 0
%38 = getelementptr [8192 x double], [8192 x double]* %4, i64 %32, i64 %16
%39 = getelementptr [8192 x double], [8192 x double]* %5, i64 %32, i64 0
%40 = getelementptr [8192 x double], [8192 x double]* %5, i64 %32, i64 %17
br i1 %7, label %87, label %41
41: ; preds = %138, %31
br i1 %8, label %42, label %142
42: ; preds = %41
br i1 %22, label %85, label %43
43: ; preds = %42
%44 = bitcast double* %34 to [8192 x double]*
%45 = icmp ugt [8192 x double]* %44, %2
%46 = icmp ult double* %33, %21
%47 = and i1 %45, %46
%48 = bitcast double* %36 to [8192 x double]*
%49 = icmp ugt [8192 x double]* %48, %2
%50 = icmp ult double* %35, %21
%51 = and i1 %49, %50
%52 = or i1 %47, %51
%53 = bitcast double* %38 to [8192 x double]*
%54 = icmp ugt [8192 x double]* %53, %2
%55 = icmp ult double* %37, %21
%56 = and i1 %54, %55
%57 = or i1 %52, %56
%58 = icmp ult double* %33, %36
%59 = icmp ult double* %35, %34
%60 = and i1 %58, %59
%61 = or i1 %57, %60
%62 = icmp ult double* %33, %38
%63 = icmp ult double* %37, %34
%64 = and i1 %62, %63
%65 = or i1 %61, %64
br i1 %65, label %85, label %66
66: ; preds = %43, %66
%67 = phi i64 [ %82, %66 ], [ 0, %43 ]
%68 = or i64 %67, 1
%69 = getelementptr inbounds [8192 x double], [8192 x double]* %3, i64 %32, i64 %67
%70 = bitcast double* %69 to <2 x double>*
%71 = load <2 x double>, <2 x double>* %70
%72 = fdiv <2 x double> <double 1.000000e+00, double 1.000000e+00>, %71
%73 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %67, i64 %67
%74 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %68, i64 %68
%75 = extractelement <2 x double> %72, i64 0
store double %75, double* %73
%76 = extractelement <2 x double> %72, i64 1
store double %76, double* %74
%77 = getelementptr inbounds [8192 x double], [8192 x double]* %4, i64 %32, i64 %67
%78 = bitcast double* %77 to <2 x double>*
%79 = load <2 x double>, <2 x double>* %78
%80 = getelementptr inbounds [8192 x double], [8192 x double]* %5, i64 %32, i64 %67
%81 = bitcast double* %80 to <2 x double>*
store <2 x double> %79, <2 x double>* %81
%82 = add nuw i64 %67, 2
%83 = icmp eq i64 %82, %23
br i1 %83, label %84, label %66
84: ; preds = %66
br i1 %24, label %142, label %85
85: ; preds = %43, %42, %84
%86 = phi i64 [ 0, %43 ], [ 0, %42 ], [ %23, %84 ]
br label %143
87: ; preds = %31, %138
%88 = phi i32 [ %141, %138 ], [ 0, %31 ]
%89 = phi i64 [ %139, %138 ], [ %13, %31 ]
%90 = add i32 %88, %1
%91 = zext i32 %90 to i64
%92 = getelementptr inbounds [8192 x double], [8192 x double]* %3, i64 %32, i64 %89
%93 = load double, double* %92
%94 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %89, i64 %89
store double %93, double* %94
%95 = getelementptr inbounds [8192 x double], [8192 x double]* %4, i64 %32, i64 %89
%96 = load double, double* %95
%97 = getelementptr inbounds [8192 x double], [8192 x double]* %5, i64 %32, i64 %89
store double %96, double* %97
%98 = icmp sgt i64 %89, 0
br i1 %98, label %99, label %138
99: ; preds = %87
%100 = add nsw i64 %91, -1
%101 = and i64 %91, 3
%102 = icmp ult i64 %100, 3
br i1 %102, label %126, label %103
103: ; preds = %99
%104 = and i64 %91, 4294967292
br label %105
105: ; preds = %105, %103
%106 = phi i64 [ 0, %103 ], [ %123, %105 ]
%107 = phi i64 [ 0, %103 ], [ %124, %105 ]
%108 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %106, i64 %89
%109 = load double, double* %108
%110 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %89, i64 %106
store double %109, double* %110
%111 = or i64 %106, 1
%112 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %111, i64 %89
%113 = load double, double* %112
%114 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %89, i64 %111
store double %113, double* %114
%115 = or i64 %106, 2
%116 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %115, i64 %89
%117 = load double, double* %116
%118 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %89, i64 %115
store double %117, double* %118
%119 = or i64 %106, 3
%120 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %119, i64 %89
%121 = load double, double* %120
%122 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %89, i64 %119
store double %121, double* %122
%123 = add nuw nsw i64 %106, 4
%124 = add i64 %107, 4
%125 = icmp eq i64 %124, %104
br i1 %125, label %126, label %105
126: ; preds = %105, %99
%127 = phi i64 [ 0, %99 ], [ %123, %105 ]
%128 = icmp eq i64 %101, 0
br i1 %128, label %138, label %129
129: ; preds = %126, %129
%130 = phi i64 [ %135, %129 ], [ %127, %126 ]
%131 = phi i64 [ %136, %129 ], [ 0, %126 ]
%132 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %130, i64 %89
%133 = load double, double* %132
%134 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %89, i64 %130
store double %133, double* %134
%135 = add nuw nsw i64 %130, 1
%136 = add i64 %131, 1
%137 = icmp eq i64 %136, %101
br i1 %137, label %138, label %129
138: ; preds = %126, %129, %87
%139 = add nsw i64 %89, 1
%140 = icmp eq i64 %139, %15
%141 = add i32 %88, 1
br i1 %140, label %41, label %87
142: ; preds = %143, %84, %41
br i1 %7, label %157, label %201
143: ; preds = %85, %143
%144 = phi i64 [ %152, %143 ], [ %86, %85 ]
%145 = getelementptr inbounds [8192 x double], [8192 x double]* %3, i64 %32, i64 %144
%146 = load double, double* %145
%147 = fdiv double 1.000000e+00, %146
%148 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %144, i64 %144
store double %147, double* %148
%149 = getelementptr inbounds [8192 x double], [8192 x double]* %4, i64 %32, i64 %144
%150 = load double, double* %149
%151 = getelementptr inbounds [8192 x double], [8192 x double]* %5, i64 %32, i64 %144
store double %150, double* %151
%152 = add nuw nsw i64 %144, 1
%153 = icmp eq i64 %152, %16
br i1 %153, label %142, label %143
154: ; preds = %194
br i1 %7, label %155, label %201
155: ; preds = %154
%156 = getelementptr inbounds [8192 x double], [8192 x double]* %5, i64 %32, i64 0
br label %251
157: ; preds = %142, %194
%158 = phi i64 [ %198, %194 ], [ %13, %142 ]
%159 = icmp sgt i64 %158, %13
br i1 %159, label %160, label %163
160: ; preds = %157
%161 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %158, i64 0
%162 = trunc i64 %158 to i32
br label %170
163: ; preds = %170, %157
%164 = icmp sgt i64 %158, 0
%165 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %158, i64 %158
br i1 %164, label %168, label %166
166: ; preds = %163
%167 = load double, double* %165
br label %194
168: ; preds = %163
%169 = and i64 %158, 4294967295
br label %182
170: ; preds = %160, %170
%171 = phi i64 [ %13, %160 ], [ %179, %170 ]
%172 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %171, i64 0
%173 = trunc i64 %171 to i32
%174 = tail call i32 (i32, double*, i32, double*, i32, ...) bitcast (i32 (...)* @Ddot to i32 (i32, double*, i32, double*, i32, ...)*)(i32 %173, double* %172, i32 1, double* %161, i32 1)
%175 = sitofp i32 %174 to double
%176 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %158, i64 %171
%177 = load double, double* %176
%178 = fsub double %177, %175
store double %178, double* %176
%179 = add nsw i64 %171, 1
%180 = trunc i64 %179 to i32
%181 = icmp eq i32 %180, %162
br i1 %181, label %163, label %170
182: ; preds = %168, %182
%183 = phi i64 [ 0, %168 ], [ %192, %182 ]
%184 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %158, i64 %183
%185 = load double, double* %184
%186 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %183, i64 %183
%187 = load double, double* %186
%188 = fmul double %185, %187
store double %188, double* %184
%189 = load double, double* %165
%190 = fneg double %185
%191 = tail call double @llvm.fmuladd.f64(double %190, double %188, double %189)
store double %191, double* %165
%192 = add nuw nsw i64 %183, 1
%193 = icmp eq i64 %192, %169
br i1 %193, label %194, label %182
194: ; preds = %182, %166
%195 = phi double [ %167, %166 ], [ %191, %182 ]
%196 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %158, i64 %158
%197 = fdiv double 1.000000e+00, %195
store double %197, double* %196
%198 = add nsw i64 %158, 1
%199 = trunc i64 %198 to i32
%200 = icmp eq i32 %199, %0
br i1 %200, label %154, label %157
201: ; preds = %251, %142, %154
br i1 %9, label %202, label %278
202: ; preds = %201
br i1 %25, label %238, label %203
203: ; preds = %202
%204 = icmp ult double* %39, %19
%205 = bitcast double* %40 to [8192 x double]*
%206 = icmp ugt [8192 x double]* %205, %2
%207 = and i1 %204, %206
br i1 %207, label %238, label %208
208: ; preds = %203, %208
%209 = phi i64 [ %235, %208 ], [ 0, %203 ]
%210 = or i64 %209, 1
%211 = or i64 %209, 2
%212 = or i64 %209, 3
%213 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %209, i64 %209
%214 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %210, i64 %210
%215 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %211, i64 %211
%216 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %212, i64 %212
%217 = load double, double* %213
%218 = load double, double* %214
%219 = insertelement <2 x double> poison, double %217, i64 0
%220 = insertelement <2 x double> %219, double %218, i64 1
%221 = load double, double* %215
%222 = load double, double* %216
%223 = insertelement <2 x double> poison, double %221, i64 0
%224 = insertelement <2 x double> %223, double %222, i64 1
%225 = getelementptr inbounds [8192 x double], [8192 x double]* %5, i64 %32, i64 %209
%226 = bitcast double* %225 to <2 x double>*
%227 = load <2 x double>, <2 x double>* %226
%228 = getelementptr inbounds double, double* %225, i64 2
%229 = bitcast double* %228 to <2 x double>*
%230 = load <2 x double>, <2 x double>* %229
%231 = fmul <2 x double> %220, %227
%232 = fmul <2 x double> %224, %230
%233 = bitcast double* %225 to <2 x double>*
store <2 x double> %231, <2 x double>* %233
%234 = bitcast double* %228 to <2 x double>*
store <2 x double> %232, <2 x double>* %234
%235 = add nuw i64 %209, 4
%236 = icmp eq i64 %235, %26
br i1 %236, label %237, label %208
237: ; preds = %208
br i1 %27, label %278, label %238
238: ; preds = %203, %202, %237
%239 = phi i64 [ 0, %203 ], [ 0, %202 ], [ %26, %237 ]
%240 = xor i64 %239, -1
br i1 %29, label %248, label %241
241: ; preds = %238
%242 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %239, i64 %239
%243 = load double, double* %242
%244 = getelementptr inbounds [8192 x double], [8192 x double]* %5, i64 %32, i64 %239
%245 = load double, double* %244
%246 = fmul double %243, %245
store double %246, double* %244
%247 = or i64 %239, 1
br label %248
248: ; preds = %241, %238
%249 = phi i64 [ %239, %238 ], [ %247, %241 ]
%250 = icmp eq i64 %240, %30
br i1 %250, label %278, label %263
251: ; preds = %155, %251
%252 = phi i64 [ %13, %155 ], [ %260, %251 ]
%253 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %252, i64 0
%254 = trunc i64 %252 to i32
%255 = tail call i32 (i32, double*, i32, double*, i32, ...) bitcast (i32 (...)* @Ddot to i32 (i32, double*, i32, double*, i32, ...)*)(i32 %254, double* %156, i32 1, double* %253, i32 1)
%256 = sitofp i32 %255 to double
%257 = getelementptr inbounds [8192 x double], [8192 x double]* %5, i64 %32, i64 %252
%258 = load double, double* %257
%259 = fsub double %258, %256
store double %259, double* %257
%260 = add nsw i64 %252, 1
%261 = trunc i64 %260 to i32
%262 = icmp eq i32 %261, %0
br i1 %262, label %201, label %251
263: ; preds = %248, %263
%264 = phi i64 [ %276, %263 ], [ %249, %248 ]
%265 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %264, i64 %264
%266 = load double, double* %265
%267 = getelementptr inbounds [8192 x double], [8192 x double]* %5, i64 %32, i64 %264
%268 = load double, double* %267
%269 = fmul double %266, %268
store double %269, double* %267
%270 = add nuw nsw i64 %264, 1
%271 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %270, i64 %270
%272 = load double, double* %271
%273 = getelementptr inbounds [8192 x double], [8192 x double]* %5, i64 %32, i64 %270
%274 = load double, double* %273
%275 = fmul double %272, %274
store double %275, double* %273
%276 = add nuw nsw i64 %264, 2
%277 = icmp eq i64 %276, %17
br i1 %277, label %278, label %263
278: ; preds = %248, %263, %237, %201
br i1 %11, label %279, label %282
279: ; preds = %282, %278
br i1 %8, label %280, label %307
280: ; preds = %279
%281 = getelementptr inbounds [8192 x double], [8192 x double]* %5, i64 %32, i64 %13
br label %296
282: ; preds = %278, %282
%283 = phi i64 [ %294, %282 ], [ %14, %278 ]
%284 = add nsw i64 %283, 1
%285 = getelementptr inbounds [8192 x double], [8192 x double]* %5, i64 %32, i64 %284
%286 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %284, i64 %283
%287 = trunc i64 %284 to i32
%288 = sub i32 %0, %287
%289 = tail call i32 (i32, double*, i32, double*, i32, ...) bitcast (i32 (...)* @Ddot to i32 (i32, double*, i32, double*, i32, ...)*)(i32 %288, double* %285, i32 1, double* %286, i32 8192)
%290 = sitofp i32 %289 to double
%291 = getelementptr inbounds [8192 x double], [8192 x double]* %5, i64 %32, i64 %283
%292 = load double, double* %291
%293 = fsub double %292, %290
store double %293, double* %291
%294 = add nsw i64 %283, -1
%295 = icmp sgt i64 %283, %13
br i1 %295, label %282, label %279
296: ; preds = %280, %296
%297 = phi i64 [ %16, %280 ], [ %298, %296 ]
%298 = add nsw i64 %297, -1
%299 = and i64 %298, 4294967295
%300 = getelementptr inbounds [8192 x double], [8192 x double]* %2, i64 %13, i64 %299
%301 = tail call i32 (i32, double*, i32, double*, i32, ...) bitcast (i32 (...)* @Ddot to i32 (i32, double*, i32, double*, i32, ...)*)(i32 %12, double* %281, i32 1, double* %300, i32 8192)
%302 = sitofp i32 %301 to double
%303 = getelementptr inbounds [8192 x double], [8192 x double]* %5, i64 %32, i64 %299
%304 = load double, double* %303
%305 = fsub double %304, %302
store double %305, double* %303
%306 = icmp sgt i64 %297, 1
br i1 %306, label %296, label %307
307: ; preds = %296, %279
%308 = add nuw nsw i64 %32, 1
%309 = icmp eq i64 %308, 3
br i1 %309, label %310, label %31
310: ; preds = %307
ret void
}