#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ DCCFD_RAPx(double *, double *, double *, double *, int *,
                              double *, double *, double *, double *, int *,
                              int, int, double, int, int);
void DCCFD_RAPxy(double *EEh, double *CRh, double *CCh, double *CVh, int *IBh,
                 double *EEH, double *CRH, double *CCH, double *CVH, int *IBH,
                 int l, int m, int l0, int m0, double wz, int k) {
  int j, j0;
  int jl, j0l, j0l0;
  if (m0 == m) {
    for (j0 = 0, j0l = 0, j0l0 = 0; j0 < m0 - 1; j0++, j0l += l, j0l0 += l0)
      DCCFD_RAPx(EEh + j0l, CRh + j0l, CCh + j0l, CVh + j0l, IBh + j0l,
                 EEH + j0l0, CRH + j0l0, CCH + j0l0, CVH + j0l0, IBH + j0l0, l,
                 l0, wz, 1, k);
    DCCFD_RAPx(EEh + j0l, CRh + j0l, CCh + j0l, CVh + j0l, IBh + j0l,
               EEH + j0l0, CRH + j0l0, CCH + j0l0, CVH + j0l0, IBH + j0l0, l,
               l0, wz, 0, k);
    return;
  }
  for (j0 = 0, j0l = 0, j0l0 = 0; j0 < m0 - 1; j0++, j0l += l, j0l0 += l0) {
    j = j0 + j0;
    jl = j0l + j0l;
    DCCFD_RAPx(EEh + jl, CRh + jl, CCh + jl, CVh + jl, IBh + jl, EEH + j0l0,
               CRH + j0l0, CCH + j0l0, CVH + j0l0, IBH + j0l0, l, l0, 0.5, 0,
               k);
    DCCFD_RAPx(EEh + jl + l, CRh + jl + l, CCh + jl + l, CVh + jl + l,
               IBh + jl + l, EEH + j0l0, CRH + j0l0, CCH + j0l0, CVH + j0l0,
               IBH + j0l0, l, l0, 0.5, 1, k);
  }
  j0 = m0 - 1;
  j0l0 = j0 * l0;
  j0l = j0 * l;
  j = j0 + j0;
  jl = j0l + j0l;
  if (j < m - 1) {
    DCCFD_RAPx(EEh + jl, CRh + jl, CCh + jl, CVh + jl, IBh + jl, EEH + j0l0,
               CRH + j0l0, CCH + j0l0, CVH + j0l0, IBH + j0l0, l, l0, 0.5, 0,
               k);
    DCCFD_RAPx(EEh + jl + l, CRh + jl + l, CCh + jl + l, CVh + jl + l,
               IBh + jl + l, EEH + j0l0, CRH + j0l0, CCH + j0l0, CVH + j0l0,
               IBH + j0l0, l, l0, 0.5, 0, k);
  } else
    DCCFD_RAPx(EEh + jl, CRh + jl, CCh + jl, CVh + jl, IBh + jl, EEH + j0l0,
               CRH + j0l0, CCH + j0l0, CVH + j0l0, IBH + j0l0, l, l0, wz, 0, k);
  return;
}


x86 assembly (clang, -O0):
<DCCFD_RAPxy>:
push   %rbp
mov    %rsp,%rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x98,%rsp
mov    0x50(%rbp),%eax
mov    0x48(%rbp),%eax
mov    0x40(%rbp),%eax
mov    0x38(%rbp),%eax
mov    0x30(%rbp),%eax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x30(%rbp)
mov    %rsi,-0x38(%rbp)
mov    %rdx,-0x40(%rbp)
mov    %rcx,-0x48(%rbp)
mov    %r8,-0x50(%rbp)
mov    %r9,-0x58(%rbp)
movsd  %xmm0,-0x60(%rbp)
mov    0x48(%rbp),%eax
cmp    0x38(%rbp),%eax
jne    1362 <DCCFD_RAPxy+0x252>
movl   $0x0,-0x68(%rbp)
movl   $0x0,-0x70(%rbp)
movl   $0x0,-0x74(%rbp)
mov    -0x68(%rbp),%eax
mov    0x48(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    1286 <DCCFD_RAPxy+0x176>
mov    -0x30(%rbp),%rdi
movslq -0x70(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdi
mov    -0x38(%rbp),%rsi
movslq -0x70(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rsi
mov    -0x40(%rbp),%rdx
movslq -0x70(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdx
mov    -0x48(%rbp),%rcx
movslq -0x70(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    -0x50(%rbp),%r8
movslq -0x70(%rbp),%rax
shl    $0x2,%rax
add    %rax,%r8
mov    -0x58(%rbp),%r9
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r9
mov    0x10(%rbp),%r12
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r12
mov    0x18(%rbp),%r15
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r15
mov    0x20(%rbp),%r14
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r14
mov    0x28(%rbp),%rbx
movslq -0x74(%rbp),%rax
shl    $0x2,%rax
add    %rax,%rbx
mov    0x30(%rbp),%r11d
mov    0x40(%rbp),%r10d
movsd  -0x60(%rbp),%xmm0
mov    0x50(%rbp),%eax
mov    %r12,(%rsp)
mov    %r15,0x8(%rsp)
mov    %r14,0x10(%rsp)
mov    %rbx,0x18(%rsp)
mov    %r11d,0x20(%rsp)
mov    %r10d,0x28(%rsp)
movl   $0x1,0x30(%rsp)
mov    %eax,0x38(%rsp)
call   1030 <DCCFD_RAPx@plt>
mov    -0x68(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x68(%rbp)
mov    0x30(%rbp),%eax
add    -0x70(%rbp),%eax
mov    %eax,-0x70(%rbp)
mov    0x40(%rbp),%eax
add    -0x74(%rbp),%eax
mov    %eax,-0x74(%rbp)
jmp    1181 <DCCFD_RAPxy+0x71>
mov    -0x30(%rbp),%rdi
movslq -0x70(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdi
mov    -0x38(%rbp),%rsi
movslq -0x70(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rsi
mov    -0x40(%rbp),%rdx
movslq -0x70(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdx
mov    -0x48(%rbp),%rcx
movslq -0x70(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    -0x50(%rbp),%r8
movslq -0x70(%rbp),%rax
shl    $0x2,%rax
add    %rax,%r8
mov    -0x58(%rbp),%r9
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r9
mov    0x10(%rbp),%r12
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r12
mov    0x18(%rbp),%r15
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r15
mov    0x20(%rbp),%r14
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r14
mov    0x28(%rbp),%rbx
movslq -0x74(%rbp),%rax
shl    $0x2,%rax
add    %rax,%rbx
mov    0x30(%rbp),%r11d
mov    0x40(%rbp),%r10d
movsd  -0x60(%rbp),%xmm0
mov    0x50(%rbp),%eax
xor    %r13d,%r13d
mov    %r12,(%rsp)
mov    %r15,0x8(%rsp)
mov    %r14,0x10(%rsp)
mov    %rbx,0x18(%rsp)
mov    %r11d,0x20(%rsp)
mov    %r10d,0x28(%rsp)
movl   $0x0,0x30(%rsp)
mov    %eax,0x38(%rsp)
call   1030 <DCCFD_RAPx@plt>
jmp    18ae <DCCFD_RAPxy+0x79e>
movl   $0x0,-0x68(%rbp)
movl   $0x0,-0x70(%rbp)
movl   $0x0,-0x74(%rbp)
mov    -0x68(%rbp),%eax
mov    0x48(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    15a2 <DCCFD_RAPxy+0x492>
mov    -0x68(%rbp),%eax
add    -0x68(%rbp),%eax
mov    %eax,-0x64(%rbp)
mov    -0x70(%rbp),%eax
add    -0x70(%rbp),%eax
mov    %eax,-0x6c(%rbp)
mov    -0x30(%rbp),%rdi
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdi
mov    -0x38(%rbp),%rsi
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rsi
mov    -0x40(%rbp),%rdx
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdx
mov    -0x48(%rbp),%rcx
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    -0x50(%rbp),%r8
movslq -0x6c(%rbp),%rax
shl    $0x2,%rax
add    %rax,%r8
mov    -0x58(%rbp),%r9
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r9
mov    0x10(%rbp),%r12
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r12
mov    0x18(%rbp),%r15
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r15
mov    0x20(%rbp),%r14
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r14
mov    0x28(%rbp),%rbx
movslq -0x74(%rbp),%rax
shl    $0x2,%rax
add    %rax,%rbx
mov    0x30(%rbp),%r11d
mov    0x40(%rbp),%r10d
mov    0x50(%rbp),%eax
movsd  0xbbd(%rip),%xmm0
xor    %r13d,%r13d
mov    %r12,(%rsp)
mov    %r15,0x8(%rsp)
mov    %r14,0x10(%rsp)
mov    %rbx,0x18(%rsp)
mov    %r11d,0x20(%rsp)
mov    %r10d,0x28(%rsp)
movl   $0x0,0x30(%rsp)
mov    %eax,0x38(%rsp)
call   1030 <DCCFD_RAPx@plt>
mov    -0x30(%rbp),%rdi
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdi
movslq 0x30(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdi
mov    -0x38(%rbp),%rsi
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rsi
movslq 0x30(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rsi
mov    -0x40(%rbp),%rdx
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdx
movslq 0x30(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdx
mov    -0x48(%rbp),%rcx
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
movslq 0x30(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    -0x50(%rbp),%r8
movslq -0x6c(%rbp),%rax
shl    $0x2,%rax
add    %rax,%r8
movslq 0x30(%rbp),%rax
shl    $0x2,%rax
add    %rax,%r8
mov    -0x58(%rbp),%r9
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r9
mov    0x10(%rbp),%r12
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r12
mov    0x18(%rbp),%r15
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r15
mov    0x20(%rbp),%r14
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r14
mov    0x28(%rbp),%rbx
movslq -0x74(%rbp),%rax
shl    $0x2,%rax
add    %rax,%rbx
mov    0x30(%rbp),%r11d
mov    0x40(%rbp),%r10d
mov    0x50(%rbp),%eax
movsd  0xaac(%rip),%xmm0
mov    %r12,(%rsp)
mov    %r15,0x8(%rsp)
mov    %r14,0x10(%rsp)
mov    %rbx,0x18(%rsp)
mov    %r11d,0x20(%rsp)
mov    %r10d,0x28(%rsp)
movl   $0x1,0x30(%rsp)
mov    %eax,0x38(%rsp)
call   1030 <DCCFD_RAPx@plt>
mov    -0x68(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x68(%rbp)
mov    0x30(%rbp),%eax
add    -0x70(%rbp),%eax
mov    %eax,-0x70(%rbp)
mov    0x40(%rbp),%eax
add    -0x74(%rbp),%eax
mov    %eax,-0x74(%rbp)
jmp    1377 <DCCFD_RAPxy+0x267>
mov    0x48(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x68(%rbp)
mov    -0x68(%rbp),%eax
imul   0x40(%rbp),%eax
mov    %eax,-0x74(%rbp)
mov    -0x68(%rbp),%eax
imul   0x30(%rbp),%eax
mov    %eax,-0x70(%rbp)
mov    -0x68(%rbp),%eax
add    -0x68(%rbp),%eax
mov    %eax,-0x64(%rbp)
mov    -0x70(%rbp),%eax
add    -0x70(%rbp),%eax
mov    %eax,-0x6c(%rbp)
mov    -0x64(%rbp),%eax
mov    0x38(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    17d2 <DCCFD_RAPxy+0x6c2>
mov    -0x30(%rbp),%rdi
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdi
mov    -0x38(%rbp),%rsi
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rsi
mov    -0x40(%rbp),%rdx
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdx
mov    -0x48(%rbp),%rcx
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    -0x50(%rbp),%r8
movslq -0x6c(%rbp),%rax
shl    $0x2,%rax
add    %rax,%r8
mov    -0x58(%rbp),%r9
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r9
mov    0x10(%rbp),%r12
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r12
mov    0x18(%rbp),%r15
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r15
mov    0x20(%rbp),%r14
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r14
mov    0x28(%rbp),%rbx
movslq -0x74(%rbp),%rax
shl    $0x2,%rax
add    %rax,%rbx
mov    0x30(%rbp),%r11d
mov    0x40(%rbp),%r10d
mov    0x50(%rbp),%eax
movsd  0x975(%rip),%xmm0
xor    %r13d,%r13d
mov    %r12,(%rsp)
mov    %r15,0x8(%rsp)
mov    %r14,0x10(%rsp)
mov    %rbx,0x18(%rsp)
mov    %r11d,0x20(%rsp)
mov    %r10d,0x28(%rsp)
movl   $0x0,0x30(%rsp)
mov    %eax,0x38(%rsp)
call   1030 <DCCFD_RAPx@plt>
mov    -0x30(%rbp),%rdi
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdi
movslq 0x30(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdi
mov    -0x38(%rbp),%rsi
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rsi
movslq 0x30(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rsi
mov    -0x40(%rbp),%rdx
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdx
movslq 0x30(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdx
mov    -0x48(%rbp),%rcx
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
movslq 0x30(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    -0x50(%rbp),%r8
movslq -0x6c(%rbp),%rax
shl    $0x2,%rax
add    %rax,%r8
movslq 0x30(%rbp),%rax
shl    $0x2,%rax
add    %rax,%r8
mov    -0x58(%rbp),%r9
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r9
mov    0x10(%rbp),%r12
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r12
mov    0x18(%rbp),%r15
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r15
mov    0x20(%rbp),%r14
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r14
mov    0x28(%rbp),%rbx
movslq -0x74(%rbp),%rax
shl    $0x2,%rax
add    %rax,%rbx
mov    0x30(%rbp),%r11d
mov    0x40(%rbp),%r10d
mov    0x50(%rbp),%eax
movsd  0x864(%rip),%xmm0
xor    %r13d,%r13d
mov    %r12,(%rsp)
mov    %r15,0x8(%rsp)
mov    %r14,0x10(%rsp)
mov    %rbx,0x18(%rsp)
mov    %r11d,0x20(%rsp)
mov    %r10d,0x28(%rsp)
movl   $0x0,0x30(%rsp)
mov    %eax,0x38(%rsp)
call   1030 <DCCFD_RAPx@plt>
jmp    18a9 <DCCFD_RAPxy+0x799>
mov    -0x30(%rbp),%rdi
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdi
mov    -0x38(%rbp),%rsi
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rsi
mov    -0x40(%rbp),%rdx
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rdx
mov    -0x48(%rbp),%rcx
movslq -0x6c(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    -0x50(%rbp),%r8
movslq -0x6c(%rbp),%rax
shl    $0x2,%rax
add    %rax,%r8
mov    -0x58(%rbp),%r9
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r9
mov    0x10(%rbp),%r12
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r12
mov    0x18(%rbp),%r15
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r15
mov    0x20(%rbp),%r14
movslq -0x74(%rbp),%rax
shl    $0x3,%rax
add    %rax,%r14
mov    0x28(%rbp),%rbx
movslq -0x74(%rbp),%rax
shl    $0x2,%rax
add    %rax,%rbx
mov    0x30(%rbp),%r11d
mov    0x40(%rbp),%r10d
movsd  -0x60(%rbp),%xmm0
mov    0x50(%rbp),%eax
xor    %r13d,%r13d
mov    %r12,(%rsp)
mov    %r15,0x8(%rsp)
mov    %r14,0x10(%rsp)
mov    %rbx,0x18(%rsp)
mov    %r11d,0x20(%rsp)
mov    %r10d,0x28(%rsp)
movl   $0x0,0x30(%rsp)
mov    %eax,0x38(%rsp)
call   1030 <DCCFD_RAPx@plt>
jmp    18ae <DCCFD_RAPxy+0x79e>
add    $0x98,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

x86 assembly (clang, -O2):
<DCCFD_RAPxy>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x98,%rsp
mov    0x110(%rsp),%r14d
mov    0x108(%rsp),%ebx
mov    0x100(%rsp),%r15d
mov    0xf0(%rsp),%r12d
mov    0xe8(%rsp),%r13
mov    0xe0(%rsp),%r10
mov    0xd8(%rsp),%r11
mov    0xd0(%rsp),%rax
lea    -0x1(%rbx),%ebp
cmp    0xf8(%rsp),%ebx
mov    %r8,0x80(%rsp)
mov    %rcx,0x8(%rsp)
mov    %rdx,0x20(%rsp)
jne    132e <DCCFD_RAPxy+0x21e>
cmp    $0x2,%ebx
jl     161f <DCCFD_RAPxy+0x50f>
movslq %r15d,%rax
movslq %r12d,%rcx
lea    0x0(,%rcx,8),%rdx
mov    %rdx,0x50(%rsp)
lea    0x0(,%rcx,4),%rdx
mov    %rdx,0x48(%rsp)
shl    $0x20,%rcx
mov    %rcx,0x58(%rsp)
lea    0x0(,%rax,8),%rcx
mov    %rcx,0x40(%rsp)
lea    0x0(,%rax,4),%rcx
mov    %rcx,0x28(%rsp)
shl    $0x20,%rax
mov    %rax,0x60(%rsp)
xor    %eax,%eax
mov    %rax,0x30(%rsp)
xor    %r15d,%r15d
xor    %r14d,%r14d
mov    %r8,%rbx
xor    %r12d,%r12d
movsd  %xmm0,0x38(%rsp)
mov    %r9,(%rsp)
mov    %rsi,0x70(%rsp)
mov    %rdi,0x68(%rsp)
xchg   %ax,%ax
mov    %ebp,0x10(%rsp)
mov    0x60(%rsp),%rax
add    %rax,0x30(%rsp)
add    0x58(%rsp),%r14
add    %r12,%rdi
lea    (%rsi,%r12,1),%rsi
mov    0x20(%rsp),%rax
lea    (%rax,%r12,1),%rdx
mov    0x8(%rsp),%rax
lea    (%rax,%r12,1),%rcx
mov    (%rsp),%rax
lea    (%rax,%r15,1),%r9
mov    0xd0(%rsp),%rax
lea    (%rax,%r15,1),%rax
mov    %rax,0x18(%rsp)
mov    0xd8(%rsp),%rax
lea    (%rax,%r15,1),%r11
mov    0xe0(%rsp),%rax
lea    (%rax,%r15,1),%rax
mov    %rbx,%r8
movsd  0x38(%rsp),%xmm0
mov    0x110(%rsp),%ebp
push   %rbp
push   $0x1
mov    0x110(%rsp),%ebp
push   %rbp
mov    0x108(%rsp),%r10d
push   %r10
push   %r13
push   %rax
push   %r11
push   0x50(%rsp)
call   1030 <DCCFD_RAPx@plt>
mov    0x50(%rsp),%ebp
mov    0xa8(%rsp),%rdi
mov    0xb0(%rsp),%rsi
mov    0x110(%rsp),%rax
mov    0x60(%rsp),%rdx
mov    0x118(%rsp),%r11
mov    0x48(%rsp),%rcx
mov    0x40(%rsp),%r9
movsd  0x78(%rsp),%xmm0
add    $0x40,%rsp
add    0x50(%rsp),%r12
add    0x48(%rsp),%rbx
add    0x40(%rsp),%r15
add    0x28(%rsp),%r13
add    $0xffffffff,%ebp
jne    1200 <DCCFD_RAPxy+0xf0>
mov    %r14,%rbx
sar    $0x20,%rbx
mov    0x30(%rsp),%r14
sar    $0x20,%r14
mov    0xf0(%rsp),%r12d
mov    0x100(%rsp),%r15d
mov    0x110(%rsp),%ebp
mov    0xe8(%rsp),%r13
mov    0x80(%rsp),%r8
mov    0xe0(%rsp),%r10
jmp    1627 <DCCFD_RAPxy+0x517>
mov    %ebp,0x10(%rsp)
mov    %r9,(%rsp)
movsd  %xmm0,0x38(%rsp)
movslq %r12d,%rax
mov    %rax,0x28(%rsp)
cmp    $0x2,%ebx
jl     14f0 <DCCFD_RAPxy+0x3e0>
mov    %r14,%r10
mov    0x100(%rsp),%eax
movslq %eax,%rbp
mov    0xf0(%rsp),%eax
add    %eax,%eax
mov    %eax,0x7c(%rsp)
lea    0x0(,%rbp,8),%rax
mov    %rax,0x88(%rsp)
shl    $0x2,%rbp
mov    %rbp,0x90(%rsp)
xor    %ebx,%ebx
mov    0x10(%rsp),%eax
mov    0xe8(%rsp),%r11
mov    0xe0(%rsp),%r12
mov    0xd8(%rsp),%r13
mov    0xd0(%rsp),%r15
mov    (%rsp),%r14
mov    %rsi,0x70(%rsp)
mov    %rdi,0x68(%rsp)
nopw   0x0(%rax,%rax,1)
mov    %r11,0x18(%rsp)
mov    %eax,0x30(%rsp)
movslq %ebx,%rbx
lea    (%rdi,%rbx,8),%rdi
mov    %rdi,0x48(%rsp)
lea    (%rsi,%rbx,8),%rsi
mov    %rsi,0x60(%rsp)
lea    (%rdx,%rbx,8),%rdx
mov    %rdx,0x58(%rsp)
lea    (%rcx,%rbx,8),%rcx
mov    %rcx,0x50(%rsp)
lea    (%r8,%rbx,4),%r8
mov    %r8,0x40(%rsp)
mov    %r14,%r9
movsd  0xbfc(%rip),%xmm0
push   %r10
push   $0x0
mov    0x110(%rsp),%eax
push   %rax
mov    0x108(%rsp),%eax
push   %rax
push   %r11
push   %r12
push   %r13
push   %r15
call   1030 <DCCFD_RAPx@plt>
add    $0x40,%rsp
mov    0x28(%rsp),%rax
mov    0x48(%rsp),%rcx
lea    (%rcx,%rax,8),%rdi
mov    0x60(%rsp),%rcx
lea    (%rcx,%rax,8),%rsi
mov    0x58(%rsp),%rcx
lea    (%rcx,%rax,8),%rdx
mov    0x50(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    0x40(%rsp),%rbp
lea    0x0(%rbp,%rax,4),%r8
mov    %r14,%r9
movsd  0xb99(%rip),%xmm0
mov    0x110(%rsp),%eax
push   %rax
push   $0x1
mov    0x110(%rsp),%eax
push   %rax
mov    0x108(%rsp),%eax
push   %rax
push   0x38(%rsp)
push   %r12
push   %r13
push   %r15
call   1030 <DCCFD_RAPx@plt>
mov    0x58(%rsp),%r11
mov    0x150(%rsp),%r10d
mov    0xa8(%rsp),%rdi
mov    0xb0(%rsp),%rsi
mov    0x60(%rsp),%rdx
mov    0x48(%rsp),%rcx
mov    0xc0(%rsp),%r8
add    $0x40,%rsp
add    0x7c(%rsp),%ebx
mov    0x88(%rsp),%rax
add    %rax,%r14
add    %rax,%r15
add    %rax,%r13
add    %rax,%r12
mov    0x30(%rsp),%eax
add    0x90(%rsp),%r11
add    $0xffffffff,%eax
jne    13c0 <DCCFD_RAPxy+0x2b0>
mov    0xf0(%rsp),%eax
mov    0x10(%rsp),%ebp
imul   %ebp,%eax
add    %eax,%eax
cltq
lea    (%rdi,%rax,8),%rbx
lea    (%rsi,%rax,8),%r14
lea    (%rdx,%rax,8),%r12
lea    (%rcx,%rax,8),%r13
lea    (%r8,%rax,4),%r15
mov    %ebp,%eax
mov    0x100(%rsp),%ecx
imul   %ecx,%eax
cltq
mov    (%rsp),%rcx
lea    (%rcx,%rax,8),%r9
mov    0xd0(%rsp),%rcx
lea    (%rcx,%rax,8),%r11
mov    0xd8(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x20(%rsp)
mov    0xe0(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,0x8(%rsp)
mov    0xe8(%rsp),%rcx
lea    (%rcx,%rax,4),%r10
add    %ebp,%ebp
mov    0xf8(%rsp),%eax
add    $0xffffffff,%eax
cmp    %eax,%ebp
jge    165f <DCCFD_RAPxy+0x54f>
movsd  0xa7e(%rip),%xmm0
mov    %rbx,%rdi
mov    %r14,%rsi
mov    %r12,%rdx
mov    %r13,%rcx
mov    %r15,%r8
mov    %r9,(%rsp)
mov    0x110(%rsp),%eax
push   %rax
push   $0x0
mov    0x110(%rsp),%eax
push   %rax
mov    0x108(%rsp),%eax
push   %rax
mov    %r10,0x38(%rsp)
push   %r10
push   0x30(%rsp)
mov    0x50(%rsp),%rbp
push   %rbp
push   %r11
mov    %r11,0x50(%rsp)
call   1030 <DCCFD_RAPx@plt>
add    $0x40,%rsp
mov    0x28(%rsp),%rax
lea    (%rbx,%rax,8),%rdi
lea    (%r14,%rax,8),%rsi
lea    (%r12,%rax,8),%rdx
lea    0x0(%r13,%rax,8),%rcx
lea    (%r15,%rax,4),%r8
mov    (%rsp),%r9
movsd  0xa0a(%rip),%xmm0
mov    0x110(%rsp),%eax
push   %rax
push   $0x0
mov    0x110(%rsp),%eax
push   %rax
mov    0x108(%rsp),%eax
push   %rax
push   0x38(%rsp)
push   0x30(%rsp)
push   %rbp
push   0x48(%rsp)
jmp    169a <DCCFD_RAPxy+0x58a>
xor    %ebx,%ebx
mov    %r14,%rbp
xor    %r14d,%r14d
lea    (%rdi,%rbx,8),%rdi
lea    (%rsi,%rbx,8),%rsi
lea    (%rdx,%rbx,8),%rdx
lea    (%rcx,%rbx,8),%rcx
lea    (%r8,%rbx,4),%r8
lea    (%r9,%r14,8),%r9
lea    (%rax,%r14,8),%rbx
lea    (%r11,%r14,8),%r11
lea    (%r10,%r14,8),%r10
lea    0x0(%r13,%r14,4),%rax
push   %rbp
push   $0x0
push   %r15
push   %r12
push   %rax
push   %r10
push   %r11
push   %rbx
jmp    169a <DCCFD_RAPxy+0x58a>
mov    %rbx,%rdi
mov    %r14,%rsi
mov    %r12,%rdx
mov    %r13,%rcx
mov    %r15,%r8
movsd  0x38(%rsp),%xmm0
mov    0x110(%rsp),%eax
push   %rax
push   $0x0
mov    0x110(%rsp),%eax
push   %rax
mov    0x108(%rsp),%eax
push   %rax
push   %r10
push   0x30(%rsp)
push   0x50(%rsp)
push   %r11
call   1030 <DCCFD_RAPx@plt>
add    $0xd8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
define void @DCCFD_RAPxy(double* %0, double* %1, double* %2, double* %3, i32* %4, double* %5, double* %6, double* %7, double* %8, i32* %9, i32 %10, i32 %11, i32 %12, i32 %13, double %14, i32 %15) {
%17 = icmp eq i32 %13, %11
%18 = add i32 %13, -1
%19 = icmp sgt i32 %13, 1
br i1 %17, label %24, label %20
20: ; preds = %16
br i1 %19, label %21, label %94
21: ; preds = %20
%22 = sext i32 %10 to i64
%23 = sext i32 %12 to i64
br label %66
24: ; preds = %16
br i1 %19, label %25, label %52
25: ; preds = %24
%26 = sext i32 %12 to i64
%27 = sext i32 %10 to i64
br label %28
28: ; preds = %25, %28
%29 = phi i64 [ 0, %25 ], [ %44, %28 ]
%30 = phi i64 [ 0, %25 ], [ %45, %28 ]
%31 = phi i32 [ 0, %25 ], [ %43, %28 ]
%32 = getelementptr inbounds double, double* %0, i64 %29
%33 = getelementptr inbounds double, double* %1, i64 %29
%34 = getelementptr inbounds double, double* %2, i64 %29
%35 = getelementptr inbounds double, double* %3, i64 %29
%36 = getelementptr inbounds i32, i32* %4, i64 %29
%37 = getelementptr inbounds double, double* %5, i64 %30
%38 = getelementptr inbounds double, double* %6, i64 %30
%39 = getelementptr inbounds double, double* %7, i64 %30
%40 = getelementptr inbounds double, double* %8, i64 %30
%41 = getelementptr inbounds i32, i32* %9, i64 %30
%42 = tail call i32 @DCCFD_RAPx(double* %32, double* %33, double* %34, double* %35, i32* %36, double* %37, double* %38, double* %39, double* %40, i32* %41, i32 %10, i32 %12, double %14, i32 1, i32 %15)
%43 = add nuw nsw i32 %31, 1
%44 = add nsw i64 %29, %27
%45 = add nsw i64 %30, %26
%46 = icmp eq i32 %43, %18
br i1 %46, label %47, label %28
47: ; preds = %28
%48 = shl i64 %44, 32
%49 = ashr exact i64 %48, 32
%50 = shl i64 %45, 32
%51 = ashr exact i64 %50, 32
br label %52
52: ; preds = %47, %24
%53 = phi i64 [ 0, %24 ], [ %49, %47 ]
%54 = phi i64 [ 0, %24 ], [ %51, %47 ]
%55 = getelementptr inbounds double, double* %0, i64 %53
%56 = getelementptr inbounds double, double* %1, i64 %53
%57 = getelementptr inbounds double, double* %2, i64 %53
%58 = getelementptr inbounds double, double* %3, i64 %53
%59 = getelementptr inbounds i32, i32* %4, i64 %53
%60 = getelementptr inbounds double, double* %5, i64 %54
%61 = getelementptr inbounds double, double* %6, i64 %54
%62 = getelementptr inbounds double, double* %7, i64 %54
%63 = getelementptr inbounds double, double* %8, i64 %54
%64 = getelementptr inbounds i32, i32* %9, i64 %54
%65 = tail call i32 @DCCFD_RAPx(double* %55, double* %56, double* %57, double* %58, i32* %59, double* %60, double* %61, double* %62, double* %63, i32* %64, i32 %10, i32 %12, double %14, i32 0, i32 %15)
br label %124
66: ; preds = %21, %66
%67 = phi i64 [ 0, %21 ], [ %91, %66 ]
%68 = phi i64 [ 0, %21 ], [ %92, %66 ]
%69 = phi i32 [ 0, %21 ], [ %90, %66 ]
%70 = trunc i64 %67 to i32
%71 = shl nsw i32 %70, 1
%72 = sext i32 %71 to i64
%73 = getelementptr inbounds double, double* %0, i64 %72
%74 = getelementptr inbounds double, double* %1, i64 %72
%75 = getelementptr inbounds double, double* %2, i64 %72
%76 = getelementptr inbounds double, double* %3, i64 %72
%77 = getelementptr inbounds i32, i32* %4, i64 %72
%78 = getelementptr inbounds double, double* %5, i64 %68
%79 = getelementptr inbounds double, double* %6, i64 %68
%80 = getelementptr inbounds double, double* %7, i64 %68
%81 = getelementptr inbounds double, double* %8, i64 %68
%82 = getelementptr inbounds i32, i32* %9, i64 %68
%83 = tail call i32 @DCCFD_RAPx(double* %73, double* %74, double* %75, double* %76, i32* %77, double* %78, double* %79, double* %80, double* %81, i32* %82, i32 %10, i32 %12, double 5.000000e-01, i32 0, i32 %15)
%84 = getelementptr inbounds double, double* %73, i64 %22
%85 = getelementptr inbounds double, double* %74, i64 %22
%86 = getelementptr inbounds double, double* %75, i64 %22
%87 = getelementptr inbounds double, double* %76, i64 %22
%88 = getelementptr inbounds i32, i32* %77, i64 %22
%89 = tail call i32 @DCCFD_RAPx(double* %84, double* %85, double* %86, double* %87, i32* %88, double* %78, double* %79, double* %80, double* %81, i32* %82, i32 %10, i32 %12, double 5.000000e-01, i32 1, i32 %15)
%90 = add nuw nsw i32 %69, 1
%91 = add nsw i64 %67, %22
%92 = add nsw i64 %68, %23
%93 = icmp eq i32 %90, %18
br i1 %93, label %94, label %66
94: ; preds = %66, %20
%95 = mul nsw i32 %18, %12
%96 = shl nsw i32 %18, 1
%97 = shl i32 %10, 1
%98 = mul i32 %97, %18
%99 = add nsw i32 %11, -1
%100 = icmp slt i32 %96, %99
%101 = sext i32 %98 to i64
%102 = getelementptr inbounds double, double* %0, i64 %101
%103 = getelementptr inbounds double, double* %1, i64 %101
%104 = getelementptr inbounds double, double* %2, i64 %101
%105 = getelementptr inbounds double, double* %3, i64 %101
%106 = getelementptr inbounds i32, i32* %4, i64 %101
%107 = sext i32 %95 to i64
%108 = getelementptr inbounds double, double* %5, i64 %107
%109 = getelementptr inbounds double, double* %6, i64 %107
%110 = getelementptr inbounds double, double* %7, i64 %107
%111 = getelementptr inbounds double, double* %8, i64 %107
%112 = getelementptr inbounds i32, i32* %9, i64 %107
br i1 %100, label %113, label %122
113: ; preds = %94
%114 = tail call i32 @DCCFD_RAPx(double* %102, double* %103, double* %104, double* %105, i32* %106, double* %108, double* %109, double* %110, double* %111, i32* %112, i32 %10, i32 %12, double 5.000000e-01, i32 0, i32 %15)
%115 = sext i32 %10 to i64
%116 = getelementptr inbounds double, double* %102, i64 %115
%117 = getelementptr inbounds double, double* %103, i64 %115
%118 = getelementptr inbounds double, double* %104, i64 %115
%119 = getelementptr inbounds double, double* %105, i64 %115
%120 = getelementptr inbounds i32, i32* %106, i64 %115
%121 = tail call i32 @DCCFD_RAPx(double* %116, double* %117, double* %118, double* %119, i32* %120, double* %108, double* %109, double* %110, double* %111, i32* %112, i32 %10, i32 %12, double 5.000000e-01, i32 0, i32 %15)
br label %124
122: ; preds = %94
%123 = tail call i32 @DCCFD_RAPx(double* %102, double* %103, double* %104, double* %105, i32* %106, double* %108, double* %109, double* %110, double* %111, i32* %112, i32 %10, i32 %12, double %14, i32 0, i32 %15)
br label %124
124: ; preds = %113, %122, %52
ret void
}