// File: /workspace/github_c_makefile_star2_O1/pavel-demin[P]ft8d-c/pffft.c
// Function: radb2_ps
static NEVER_INLINE(void) radb2_ps(int ido, int l1, const v4sf *cc, v4sf *ch, const float *wa1) {
  static const float minus_two=-2;
  int i, k, l1ido = l1*ido;
  v4sf a,b,c,d, tr2, ti2;
  for (k=0; k < l1ido; k += ido) {
    a = cc[2*k]; b = cc[2*(k+ido) - 1];
    ch[k] = VADD(a, b);
    ch[k + l1ido] =VSUB(a, b);
  }
  if (ido < 2) return;
  if (ido != 2) {
    for (k = 0; k < l1ido; k += ido) {
      for (i = 2; i < ido; i += 2) {
        a = cc[i-1 + 2*k]; b = cc[2*(k + ido) - i - 1];
        c = cc[i+0 + 2*k]; d = cc[2*(k + ido) - i + 0];
        ch[i-1 + k] = VADD(a, b);
        tr2 = VSUB(a, b);
        ch[i+0 + k] = VSUB(c, d);
        ti2 = VADD(c, d);
        VCPLXMUL(tr2, ti2, LD_PS1(wa1[i - 2]), LD_PS1(wa1[i - 1]));
        ch[i-1 + k + l1ido] = tr2;
        ch[i+0 + k + l1ido] = ti2;
      }
    }
    if (ido % 2 == 1) return;
  }
  for (k = 0; k < l1ido; k += ido) {
    a = cc[2*k + ido-1]; b = cc[2*k + ido];
    ch[k + ido-1] = VADD(a,a);
    ch[k + ido-1 + l1ido] = SVMUL(minus_two, b);
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movl %esi, %eax
imull %edi, %eax
testl %eax, %eax
jle 0x6259
movslq %edi, %r9
movl %eax, %r10d
movq %r10, %r11
shlq $0x4, %r11
addq %rcx, %r11
movq %r9, %rbx
shlq $0x4, %rbx
movq %r9, %r14
shlq $0x5, %r14
addq %rdx, %r14
addq $-0x10, %r14
xorl %r15d, %r15d
xorl %r12d, %r12d
movaps (%rdx,%r15,2), %xmm0
addq %r9, %r12
movaps (%r14,%r15,2), %xmm1
movaps %xmm0, %xmm2
addps %xmm1, %xmm2
movaps %xmm2, (%rcx,%r15)
subps %xmm1, %xmm0
movaps %xmm0, (%r11,%r15)
addq %rbx, %r15
cmpq %r10, %r12
jl 0x6231
cmpl $0x2, %edi
jl 0x63c7
jne 0x6271
testl %eax, %eax
jg 0x636f
jmp 0x63c7
testl %eax, %eax
jle 0x635c
movl %edi, %r9d
movl %eax, %r10d
movq %r9, %r11
shlq $0x5, %r11
movq %r11, -0x10(%rsp)
movq %r10, -0x8(%rsp)
shlq $0x4, %r10
leaq (%rcx,%r10), %rbx
addq $0x20, %rbx
movq %r9, %r14
shlq $0x4, %r14
leaq 0x20(%rcx), %r15
leaq -0x8(,%r9,8), %r10
movq %r10, -0x18(%rsp)
xorl %r13d, %r13d
movq %rdx, %rbp
movl $0x2, %r10d
movq -0x18(%rsp), %r12
xorl %r11d, %r11d
movaps 0x10(%rbp,%r11,4), %xmm0
movaps 0x20(%rbp,%r11,4), %xmm1
movaps -0x10(%rbp,%r12,4), %xmm2
movaps (%rbp,%r12,4), %xmm3
movaps %xmm0, %xmm4
addps %xmm2, %xmm4
movaps %xmm4, -0x10(%r15,%r11,4)
subps %xmm2, %xmm0
movaps %xmm1, %xmm2
subps %xmm3, %xmm2
movaps %xmm2, (%r15,%r11,4)
addps %xmm3, %xmm1
movss (%r8,%r11), %xmm2
movss 0x4(%r8,%r11), %xmm3
shufps $0x0, %xmm3, %xmm3      # xmm3 = xmm3[0,0,0,0]
movaps %xmm0, %xmm4
mulps %xmm3, %xmm4
shufps $0x0, %xmm2, %xmm2      # xmm2 = xmm2[0,0,0,0]
mulps %xmm2, %xmm0
mulps %xmm1, %xmm3
subps %xmm3, %xmm0
mulps %xmm1, %xmm2
addps %xmm4, %xmm2
movaps %xmm0, -0x10(%rbx,%r11,4)
movaps %xmm2, (%rbx,%r11,4)
addq $0x2, %r10
addq $0x8, %r11
addq $-0x8, %r12
cmpq %r9, %r10
jb 0x62c8
addq %r9, %r13
addq -0x10(%rsp), %rbp
addq %r14, %rbx
addq %r14, %r15
cmpq -0x8(%rsp), %r13
jb 0x62ba
testb $0x1, %dil
sete %r8b
testl %eax, %eax
setg %r9b
testb %r9b, %r8b
je 0x63c7
movl %edi, %r8d
movq %r8, %r9
shlq $0x4, %r9
addq %r9, %rdx
shlq $0x5, %r8
incl %esi
imull %edi, %esi
decl %esi
leal -0x1(%rdi), %r9d
xorl %r10d, %r10d
movaps 0x1e6b(%rip), %xmm0     # 0x8200
movaps -0x10(%rdx), %xmm1
movaps (%rdx), %xmm2
addps %xmm1, %xmm1
leal (%r9,%r10), %r11d
shlq $0x4, %r11
movaps %xmm1, (%rcx,%r11)
mulps %xmm0, %xmm2
leal (%rsi,%r10), %r11d
shlq $0x4, %r11
movaps %xmm2, (%rcx,%r11)
addq %r8, %rdx
addl %edi, %r10d
cmpl %r10d, %eax
jg 0x6395
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop