void FFT_7(int sofarRadix, int radix, int remainRadix, int groupOffset,
           double yRe[], double yIm[]) {
  int yIndx[7];
  int groupNo, blockNo, adr, i;
  double are0, aim0, aRe[7], aIm[7];
  double are16add, are61sub, aim16sub, aim16add, are25add, are52sub, aim25sub,
      aim25add;
  double are34add, are43sub, aim34sub, aim34add;
  double ax, ay;
  adr = groupOffset;
  for (groupNo = 0; groupNo < remainRadix; groupNo++) {
    for (blockNo = 0; blockNo < radix; blockNo++) {
      yIndx[blockNo] = adr;
      adr = adr + sofarRadix;
    }
    are0 = yRe[yIndx[0]];
    aim0 = yIm[yIndx[0]];
    i = 1;
    for (blockNo = 1; blockNo < radix; blockNo += 1) {
      aRe[blockNo] = yRe[yIndx[blockNo]];
      aIm[blockNo] = yIm[yIndx[blockNo]];
    }
    ax = aRe[1];
    ay = aRe[6];
    are16add = ax + ay;
    are61sub = ay - ax;
    ax = aIm[1];
    ay = aIm[6];
    aim16sub = ax - ay;
    aim16add = ax + ay;
    ax = aRe[2];
    ay = aRe[5];
    are25add = ax + ay;
    are52sub = ay - ax;
    ax = aIm[2];
    ay = aIm[5];
    aim25sub = ax - ay;
    aim25add = ax + ay;
    ax = aRe[3];
    ay = aRe[4];
    are34add = ax + ay;
    are43sub = ay - ax;
    ax = aIm[3];
    ay = aIm[4];
    aim34sub = ax - ay;
    aim34add = ax + ay;
    ax = 0.974927912181823607018131682993931217232785801 * aim16sub -
         0.781831482468029808708444526674057750232334519 * aim34sub -
         0.433883739117558120475768332848358754609990728 * aim25sub;
    ay = 0.623489801858733530525004884004239810632274731 * are34add -
         0.900968867902419126236102319507445051165919162 * are25add -
         0.222520933956314404288902564496794759466355569 * are16add + are0;
    yRe[yIndx[5]] = ay - ax;
    yRe[yIndx[2]] = ay + ax;
    ax = 0.974927912181823607018131682993931217232785801 * are61sub -
         0.781831482468029808708444526674057750232334519 * are43sub -
         0.433883739117558120475768332848358754609990728 * are52sub;
    ay = 0.623489801858733530525004884004239810632274731 * aim34add -
         0.900968867902419126236102319507445051165919162 * aim25add -
         0.222520933956314404288902564496794759466355569 * aim16add + aim0;
    yIm[yIndx[2]] = ax + ay;
    yIm[yIndx[5]] = ay - ax;
    ax = 0.781831482468029808708444526674057750232334519 * aim16sub +
         0.974927912181823607018131682993931217232785801 * aim25sub +
         0.433883739117558120475768332848358754609990728 * aim34sub;
    ay = 0.623489801858733530525004884004239810632274731 * are16add -
         0.222520933956314404288902564496794759466355569 * are25add -
         0.900968867902419126236102319507445051165919162 * are34add + are0;
    yRe[yIndx[6]] = ay - ax;
    yRe[yIndx[1]] = ay + ax;
    ax = 0.781831482468029808708444526674057750232334519 * are61sub +
         0.974927912181823607018131682993931217232785801 * are52sub +
         0.433883739117558120475768332848358754609990728 * are43sub;
    ay = 0.623489801858733530525004884004239810632274731 * aim16add -
         0.222520933956314404288902564496794759466355569 * aim25add -
         0.900968867902419126236102319507445051165919162 * aim34add + aim0;
    yIm[yIndx[1]] = ax + ay;
    yIm[yIndx[6]] = ay - ax;
    ax = 0.433883739117558120475768332848358754609990728 * aim16sub +
         0.974927912181823607018131682993931217232785801 * aim34sub -
         0.781831482468029808708444526674057750232334519 * aim25sub;
    ay = 0.623489801858733530525004884004239810632274731 * are25add -
         0.222520933956314404288902564496794759466355569 * are34add -
         0.900968867902419126236102319507445051165919162 * are16add + are0;
    yRe[yIndx[4]] = ay - ax;
    yRe[yIndx[3]] = ay + ax;
    ax = 0.433883739117558120475768332848358754609990728 * are61sub +
         0.974927912181823607018131682993931217232785801 * are43sub -
         0.781831482468029808708444526674057750232334519 * are52sub;
    ay = 0.623489801858733530525004884004239810632274731 * aim25add -
         0.222520933956314404288902564496794759466355569 * aim34add -
         0.900968867902419126236102319507445051165919162 * aim16add + aim0;
    yIm[yIndx[3]] = ax + ay;
    yIm[yIndx[4]] = ay - ax;
    yRe[yIndx[0]] = are0 + are16add + are25add + are34add;
    yIm[yIndx[0]] = aim0 + aim16add + aim25add + aim34add;
    groupOffset = groupOffset + sofarRadix * radix;
    adr = groupOffset;
  }
}


x86 assembly (clang, -O0):
<FFT_7>:
push   %rbp
mov    %rsp,%rbp
sub    $0xd0,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %edx,-0xc(%rbp)
mov    %ecx,-0x10(%rbp)
mov    %r8,-0x18(%rbp)
mov    %r9,-0x20(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0x4c(%rbp)
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0xc(%rbp),%eax
jge    19d7 <FFT_7+0x8d7>
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    116d <FFT_7+0x6d>
mov    -0x4c(%rbp),%ecx
movslq -0x48(%rbp),%rax
mov    %ecx,-0x40(%rbp,%rax,4)
mov    -0x4c(%rbp),%eax
add    -0x4(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    113f <FFT_7+0x3f>
mov    -0x18(%rbp),%rax
movslq -0x40(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x20(%rbp),%rax
movslq -0x40(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x60(%rbp)
movl   $0x1,-0x50(%rbp)
movl   $0x1,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    11f7 <FFT_7+0xf7>
mov    -0x18(%rbp),%rax
movslq -0x48(%rbp),%rcx
movslq -0x40(%rbp,%rcx,4),%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x48(%rbp),%rax
movsd  %xmm0,-0xa0(%rbp,%rax,8)
ff ff
mov    -0x20(%rbp),%rax
movslq -0x48(%rbp),%rcx
movslq -0x40(%rbp,%rcx,4),%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x48(%rbp),%rax
movsd  %xmm0,-0xe0(%rbp,%rax,8)
ff ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    119f <FFT_7+0x9f>
movsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
addsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
subsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
subsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
addsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
addsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
subsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0x150(%rbp)
movsd  -0x148(%rbp),%xmm0
ff
subsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
addsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
addsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
subsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
subsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
addsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0xf8(%rbp),%xmm1
ff
movsd  0xc52(%rip),%xmm0
mulsd  -0x138(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xc23(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x118(%rbp),%xmm0
ff
movsd  0xc2b(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x128(%rbp),%xmm1
ff
movsd  0xc03(%rip),%xmm0
mulsd  -0x108(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xba4(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xe8(%rbp),%xmm0
ff
movsd  0xbbc(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
subsd  -0x148(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x150(%rbp),%xmm0
ff
addsd  -0x148(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movslq -0x38(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xf0(%rbp),%xmm1
ff
movsd  0xb55(%rip),%xmm0
mulsd  -0x130(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xb26(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x110(%rbp),%xmm0
ff
movsd  0xb2e(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x140(%rbp),%xmm1
ff
movsd  0xb06(%rip),%xmm0
mulsd  -0x120(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xaa7(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x100(%rbp),%xmm0
ff
movsd  0xabf(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
addsd  -0x150(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movslq -0x38(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x150(%rbp),%xmm0
ff
subsd  -0x148(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xf8(%rbp),%xmm1
ff
movsd  0xa50(%rip),%xmm0
mulsd  -0x118(%rbp),%xmm0
ff
movsd  0xa48(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x138(%rbp),%xmm0
ff
movsd  0xa20(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xe8(%rbp),%xmm1
ff
movsd  0x9f0(%rip),%xmm0
mulsd  -0x108(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0x9c1(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x128(%rbp),%xmm0
ff
movsd  0x9a1(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
subsd  -0x148(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x150(%rbp),%xmm0
ff
addsd  -0x148(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xf0(%rbp),%xmm1
ff
movsd  0x96a(%rip),%xmm0
mulsd  -0x110(%rbp),%xmm0
ff
movsd  0x962(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x130(%rbp),%xmm0
ff
movsd  0x93a(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x100(%rbp),%xmm1
ff
movsd  0x90a(%rip),%xmm0
mulsd  -0x120(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0x8db(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x140(%rbp),%xmm0
ff
movsd  0x8bb(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
addsd  -0x150(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x150(%rbp),%xmm0
ff
subsd  -0x148(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xf8(%rbp),%xmm1
ff
movsd  0x884(%rip),%xmm0
mulsd  -0x138(%rbp),%xmm0
ff
movsd  0x86c(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x118(%rbp),%xmm0
ff
movsd  0x84c(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x108(%rbp),%xmm1
ff
movsd  0x824(%rip),%xmm0
mulsd  -0x128(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0x7f5(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xe8(%rbp),%xmm0
ff
movsd  0x7d5(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
subsd  -0x148(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movslq -0x30(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x150(%rbp),%xmm0
ff
addsd  -0x148(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xf0(%rbp),%xmm1
ff
movsd  0x79e(%rip),%xmm0
mulsd  -0x130(%rbp),%xmm0
ff
movsd  0x786(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x110(%rbp),%xmm0
ff
movsd  0x766(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x120(%rbp),%xmm1
ff
movsd  0x73e(%rip),%xmm0
mulsd  -0x140(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0x70f(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x100(%rbp),%xmm0
ff
movsd  0x6ef(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
addsd  -0x150(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x150(%rbp),%xmm0
ff
subsd  -0x148(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movslq -0x30(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
addsd  -0xe8(%rbp),%xmm0
ff
addsd  -0x108(%rbp),%xmm0
ff
addsd  -0x128(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movslq -0x40(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x60(%rbp),%xmm0
addsd  -0x100(%rbp),%xmm0
ff
addsd  -0x120(%rbp),%xmm0
ff
addsd  -0x140(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movslq -0x40(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x10(%rbp),%eax
mov    -0x4(%rbp),%ecx
imul   -0x8(%rbp),%ecx
add    %ecx,%eax
mov    %eax,-0x10(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    112c <FFT_7+0x2c>
add    $0xd0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<FFT_7>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x98,%rsp
test   %edx,%edx
jle    17a7 <FFT_7+0x6a7>
mov    %esi,%r10d
imul   %edi,%r10d
mov    %esi,%eax
mov    %eax,%r11d
and    $0xfffffff8,%r11d
lea    -0x8(%r11),%rbx
mov    %rbx,-0x18(%rsp)
shr    $0x3,%rbx
add    $0x1,%rbx
lea    -0x1(%rax),%r12
mov    %r11d,%ebp
imul   %edi,%ebp
mov    %rbp,-0x30(%rsp)
movd   %edi,%xmm0
pshufd $0x0,%xmm0,%xmm13
movdqa 0xea5(%rip),%xmm1
pmuludq %xmm13,%xmm1
pshufd $0xe8,%xmm1,%xmm1
movdqa 0xea3(%rip),%xmm2
pmuludq %xmm13,%xmm2
pshufd $0xe8,%xmm2,%xmm0
punpckldq %xmm1,%xmm0
movdqa %xmm0,0x80(%rsp)
pslld  $0x2,%xmm13
mov    %ebx,%r13d
and    $0x3,%r13d
and    $0xfffffffffffffffc,%rbx
mov    %rbx,-0x28(%rsp)
mov    %r13,-0x20(%rsp)
shl    $0x5,%r13
mov    %r12,%rbx
mov    %r12,-0x10(%rsp)
and    $0xfffffffffffffffe,%r12
neg    %r12
xor    %r15d,%r15d
jmp    15fc <FFT_7+0x4fc>
nopw   0x0(%rax,%rax,1)
movsd  (%r8,%r14,8),%xmm0
movsd  %xmm0,-0x50(%rsp)
movsd  0x70(%rsp),%xmm11
movsd  0x48(%rsp),%xmm2
movsd  0x50(%rsp),%xmm5
movapd %xmm2,%xmm4
addsd  %xmm11,%xmm4
subsd  %xmm2,%xmm11
movsd  0x30(%rsp),%xmm6
movsd  0x8(%rsp),%xmm14
movsd  0x10(%rsp),%xmm9
movapd %xmm14,%xmm2
subsd  %xmm6,%xmm2
addsd  %xmm6,%xmm14
movsd  0x68(%rsp),%xmm6
movapd %xmm5,%xmm0
addsd  %xmm6,%xmm0
movapd %xmm0,%xmm8
movsd  %xmm0,-0x38(%rsp)
subsd  %xmm5,%xmm6
movsd  0x28(%rsp),%xmm7
movapd %xmm9,%xmm5
subsd  %xmm7,%xmm5
addsd  %xmm7,%xmm9
movsd  %xmm9,-0x58(%rsp)
movsd  0x58(%rsp),%xmm7
movsd  0x60(%rsp),%xmm15
movapd %xmm7,%xmm0
addsd  %xmm15,%xmm0
movapd %xmm0,%xmm3
movsd  %xmm0,-0x48(%rsp)
subsd  %xmm7,%xmm15
movsd  0x18(%rsp),%xmm0
movsd  0x20(%rsp),%xmm7
movapd %xmm0,%xmm10
subsd  %xmm7,%xmm10
addsd  %xmm7,%xmm0
movapd %xmm0,%xmm12
movsd  %xmm0,-0x40(%rsp)
movapd %xmm10,%xmm7
movsd  0xd82(%rip),%xmm0
mulsd  %xmm0,%xmm7
movapd %xmm2,%xmm0
movsd  0xd7a(%rip),%xmm1
mulsd  %xmm1,%xmm0
addsd  %xmm7,%xmm0
movapd %xmm5,%xmm7
movsd  0xd6e(%rip),%xmm1
mulsd  %xmm1,%xmm7
addsd  %xmm0,%xmm7
movapd %xmm8,%xmm0
movsd  0xd61(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xd5d(%rip),%xmm1
mulsd  %xmm1,%xmm3
addsd  %xmm0,%xmm3
movapd %xmm4,%xmm1
movsd  0xd51(%rip),%xmm0
mulsd  %xmm0,%xmm1
addsd  %xmm3,%xmm1
movsd  -0x50(%rsp),%xmm8
addsd  %xmm8,%xmm1
movapd %xmm1,%xmm3
subsd  %xmm7,%xmm3
movslq -0x6c(%rsp),%rbx
movsd  (%r9,%r14,8),%xmm0
movsd  %xmm0,-0x8(%rsp)
movsd  %xmm3,(%r8,%rbx,8)
addsd  %xmm7,%xmm1
movslq -0x78(%rsp),%rbp
movsd  %xmm1,(%r8,%rbp,8)
movapd %xmm15,%xmm1
mulsd  0xcda(%rip),%xmm1
movapd %xmm11,%xmm3
movsd  0xcd5(%rip),%xmm7
mulsd  %xmm7,%xmm3
addsd  %xmm1,%xmm3
movapd %xmm6,%xmm1
mulsd  0xcc9(%rip),%xmm1
addsd  %xmm3,%xmm1
mulsd  0xcc4(%rip),%xmm9
movapd %xmm12,%xmm7
movsd  0xcbe(%rip),%xmm12
mulsd  %xmm12,%xmm7
addsd  %xmm9,%xmm7
movapd %xmm14,%xmm3
movsd  0xcae(%rip),%xmm9
mulsd  %xmm9,%xmm3
addsd  %xmm7,%xmm3
addsd  %xmm0,%xmm3
movapd %xmm1,%xmm7
addsd  %xmm3,%xmm7
movsd  %xmm7,(%r9,%rbp,8)
subsd  %xmm1,%xmm3
movsd  %xmm3,(%r9,%rbx,8)
movapd %xmm5,%xmm1
movsd  0xc5d(%rip),%xmm0
mulsd  %xmm0,%xmm1
movapd %xmm2,%xmm3
movsd  0xc75(%rip),%xmm7
mulsd  %xmm7,%xmm3
addsd  %xmm1,%xmm3
movapd %xmm10,%xmm1
movsd  0xc68(%rip),%xmm7
mulsd  %xmm7,%xmm1
addsd  %xmm3,%xmm1
movsd  -0x38(%rsp),%xmm3
mulsd  %xmm9,%xmm3
movapd %xmm4,%xmm7
mulsd  %xmm12,%xmm7
addsd  %xmm3,%xmm7
movsd  -0x48(%rsp),%xmm3
movsd  0xc19(%rip),%xmm12
mulsd  %xmm12,%xmm3
addsd  %xmm7,%xmm3
addsd  %xmm8,%xmm3
movapd %xmm3,%xmm7
subsd  %xmm1,%xmm7
movslq -0x68(%rsp),%rbx
movsd  %xmm7,(%r8,%rbx,8)
addsd  %xmm1,%xmm3
movslq -0x7c(%rsp),%rbp
movsd  %xmm3,(%r8,%rbp,8)
movapd %xmm6,%xmm1
mulsd  %xmm0,%xmm1
movapd %xmm11,%xmm3
mulsd  0xbec(%rip),%xmm3
addsd  %xmm1,%xmm3
movapd %xmm15,%xmm1
movsd  0xbe2(%rip),%xmm9
mulsd  %xmm9,%xmm1
addsd  %xmm3,%xmm1
movsd  -0x58(%rsp),%xmm3
mulsd  0xbbb(%rip),%xmm3
movapd %xmm14,%xmm7
mulsd  0xba6(%rip),%xmm7
addsd  %xmm3,%xmm7
movsd  -0x40(%rsp),%xmm3
mulsd  %xmm12,%xmm3
addsd  %xmm7,%xmm3
movsd  -0x8(%rsp),%xmm8
addsd  %xmm8,%xmm3
movapd %xmm1,%xmm7
addsd  %xmm3,%xmm7
movsd  %xmm7,(%r9,%rbp,8)
subsd  %xmm1,%xmm3
movsd  %xmm3,(%r9,%rbx,8)
mulsd  %xmm0,%xmm10
mulsd  %xmm9,%xmm2
addsd  %xmm10,%xmm2
movsd  0xb38(%rip),%xmm0
mulsd  %xmm0,%xmm5
addsd  %xmm2,%xmm5
movapd %xmm4,%xmm2
movsd  -0x50(%rsp),%xmm0
addsd  %xmm0,%xmm4
movsd  -0x38(%rsp),%xmm1
addsd  %xmm1,%xmm4
movsd  -0x48(%rsp),%xmm12
addsd  %xmm12,%xmm4
movsd  0xb2b(%rip),%xmm10
mulsd  %xmm10,%xmm12
movsd  0xb16(%rip),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm12,%xmm1
movsd  0xafd(%rip),%xmm7
mulsd  %xmm7,%xmm2
addsd  %xmm1,%xmm2
addsd  %xmm0,%xmm2
movapd %xmm2,%xmm1
subsd  %xmm5,%xmm1
movslq -0x70(%rsp),%rbx
movsd  %xmm1,(%r8,%rbx,8)
addsd  %xmm5,%xmm2
movslq -0x74(%rsp),%rbp
movsd  %xmm2,(%r8,%rbp,8)
mulsd  0xab6(%rip),%xmm15
mulsd  %xmm9,%xmm11
addsd  %xmm15,%xmm11
mulsd  0xa9c(%rip),%xmm6
addsd  %xmm11,%xmm6
movapd %xmm14,%xmm1
addsd  %xmm8,%xmm14
movsd  -0x58(%rsp),%xmm9
addsd  %xmm9,%xmm14
movsd  -0x40(%rsp),%xmm15
addsd  %xmm15,%xmm14
mulsd  %xmm10,%xmm15
mulsd  %xmm3,%xmm9
addsd  %xmm15,%xmm9
mulsd  %xmm7,%xmm1
addsd  %xmm9,%xmm1
addsd  %xmm8,%xmm1
movapd %xmm6,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%r9,%rbp,8)
subsd  %xmm6,%xmm1
movsd  %xmm1,(%r9,%rbx,8)
movsd  %xmm4,(%r8,%r14,8)
movsd  %xmm14,(%r9,%r14,8)
add    %r10d,%ecx
add    $0x1,%r15d
cmp    %edx,%r15d
je     17a7 <FFT_7+0x6a7>
test   %esi,%esi
jle    170f <FFT_7+0x60f>
cmp    $0x8,%esi
jae    1620 <FFT_7+0x520>
xor    %ebx,%ebx
mov    %ecx,%ebp
jmp    1700 <FFT_7+0x600>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movd   %ecx,%xmm1
pshufd $0x0,%xmm1,%xmm1
paddd  0x80(%rsp),%xmm1
cmpq   $0x18,-0x18(%rsp)
jae    163e <FFT_7+0x53e>
xor    %ebp,%ebp
jmp    16b2 <FFT_7+0x5b2>
mov    -0x28(%rsp),%rbx
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nop
movdqa %xmm1,-0x80(%rsp,%rbp,4)
paddd  %xmm13,%xmm1
movdqa %xmm1,-0x70(%rsp,%rbp,4)
paddd  %xmm13,%xmm1
movdqa %xmm1,-0x60(%rsp,%rbp,4)
paddd  %xmm13,%xmm1
movdqa %xmm1,-0x50(%rsp,%rbp,4)
paddd  %xmm13,%xmm1
movdqa %xmm1,-0x40(%rsp,%rbp,4)
paddd  %xmm13,%xmm1
movdqa %xmm1,-0x30(%rsp,%rbp,4)
paddd  %xmm13,%xmm1
movdqa %xmm1,-0x20(%rsp,%rbp,4)
paddd  %xmm13,%xmm1
movdqa %xmm1,-0x10(%rsp,%rbp,4)
add    $0x20,%rbp
paddd  %xmm13,%xmm1
add    $0xfffffffffffffffc,%rbx
jne    1650 <FFT_7+0x550>
cmpq   $0x0,-0x20(%rsp)
je     16ee <FFT_7+0x5ee>
lea    -0x70(%rsp),%rbx
lea    (%rbx,%rbp,4),%rbx
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nop
movdqa %xmm1,-0x10(%rbx,%rbp,1)
paddd  %xmm13,%xmm1
movdqa %xmm1,(%rbx,%rbp,1)
paddd  %xmm13,%xmm1
add    $0x20,%rbp
cmp    %rbp,%r13
jne    16d0 <FFT_7+0x5d0>
cmp    %rax,%r11
je     170f <FFT_7+0x60f>
mov    -0x30(%rsp),%rbx
lea    (%rcx,%rbx,1),%ebp
mov    %r11,%rbx
xchg   %ax,%ax
mov    %ebp,-0x80(%rsp,%rbx,4)
add    %edi,%ebp
add    $0x1,%rbx
cmp    %rbx,%rax
jne    1700 <FFT_7+0x600>
movslq -0x80(%rsp),%r14
cmp    $0x2,%esi
jl     11c0 <FFT_7+0xc0>
mov    $0x1,%ebx
je     177b <FFT_7+0x67b>
mov    $0x1,%ebx
nopl   0x0(%rax)
movslq -0x80(%rsp,%rbx,4),%rbp
movsd  (%r8,%rbp,8),%xmm1
movsd  %xmm1,0x40(%rsp,%rbx,8)
movsd  (%r9,%rbp,8),%xmm1
movsd  %xmm1,(%rsp,%rbx,8)
movslq -0x7c(%rsp,%rbx,4),%rbp
movsd  (%r8,%rbp,8),%xmm1
movsd  %xmm1,0x48(%rsp,%rbx,8)
movq   (%r9,%rbp,8),%xmm1
movq   %xmm1,0x8(%rsp,%rbx,8)
lea    (%r12,%rbx,1),%rbp
add    $0x2,%rbp
add    $0x2,%rbx
cmp    $0x1,%rbp
jne    1730 <FFT_7+0x630>
testb  $0x1,-0x10(%rsp)
je     11c0 <FFT_7+0xc0>
movslq -0x80(%rsp,%rbx,4),%rbp
movsd  (%r8,%rbp,8),%xmm1
movsd  %xmm1,0x40(%rsp,%rbx,8)
movq   (%r9,%rbp,8),%xmm1
movq   %xmm1,(%rsp,%rbx,8)
jmp    11c0 <FFT_7+0xc0>
add    $0x98,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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