// File: /workspace/github_c_makefile_star2_O0/pavel-demin[P]ft8d-c/pffft.c
// Function: passf3_ps
static NEVER_INLINE(void) passf3_ps(int ido, int l1, const v4sf *cc, v4sf *ch,
                                    const float *wa1, const float *wa2, float fsign) {
  static const float taur = -0.5f;
  float taui = 0.866025403784439f*fsign;
  int i, k;
  v4sf tr2, ti2, cr2, ci2, cr3, ci3, dr2, di2, dr3, di3;
  int l1ido = l1*ido;
  float wr1, wi1, wr2, wi2;
  assert(ido > 2);
  for (k=0; k< l1ido; k += ido, cc+= 3*ido, ch +=ido) {
    for (i=0; i<ido-1; i+=2) {
      tr2 = VADD(cc[i+ido], cc[i+2*ido]);
      cr2 = VADD(cc[i], SVMUL(taur,tr2));
      ch[i]    = VADD(cc[i], tr2);
      ti2 = VADD(cc[i+ido+1], cc[i+2*ido+1]);
      ci2 = VADD(cc[i    +1], SVMUL(taur,ti2));
      ch[i+1]  = VADD(cc[i+1], ti2);
      cr3 = SVMUL(taui, VSUB(cc[i+ido], cc[i+2*ido]));
      ci3 = SVMUL(taui, VSUB(cc[i+ido+1], cc[i+2*ido+1]));
      dr2 = VSUB(cr2, ci3);
      dr3 = VADD(cr2, ci3);
      di2 = VADD(ci2, cr3);
      di3 = VSUB(ci2, cr3);
      wr1=wa1[i]; wi1=fsign*wa1[i+1]; wr2=wa2[i]; wi2=fsign*wa2[i+1];
      VCPLXMUL(dr2, di2, LD_PS1(wr1), LD_PS1(wi1));
      ch[i+l1ido] = dr2;
      ch[i+l1ido + 1] = di2;
      VCPLXMUL(dr3, di3, LD_PS1(wr2), LD_PS1(wi2));
      ch[i+2*l1ido] = dr3;
      ch[i+2*l1ido+1] = di3;
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x620, %rsp            # imm = 0x620
movl %edi, -0x504(%rbp)
movl %esi, -0x508(%rbp)
movq %rdx, -0x510(%rbp)
movq %rcx, -0x518(%rbp)
movq %r8, -0x520(%rbp)
movq %r9, -0x528(%rbp)
movss %xmm0, -0x52c(%rbp)
movss 0x12909(%rip), %xmm0    # 0x1806c
mulss -0x52c(%rbp), %xmm0
movss %xmm0, -0x530(%rbp)
movl -0x508(%rbp), %eax
imull -0x504(%rbp), %eax
movl %eax, -0x5e4(%rbp)
cmpl $0x2, -0x504(%rbp)
jle 0x5791
jmp 0x57b0
leaq 0x13234(%rip), %rdi     # 0x189cc
leaq 0x12a3f(%rip), %rsi     # 0x181de
movl $0x136, %edx            # imm = 0x136
leaq 0x1329b(%rip), %rcx     # 0x18a46
callq 0x1090
movl $0x0, -0x538(%rbp)
movl -0x538(%rbp), %eax
cmpl -0x5e4(%rbp), %eax
jge 0x6138
movl $0x0, -0x534(%rbp)
movl -0x534(%rbp), %eax
movl -0x504(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x60e2
movq -0x510(%rbp), %rax
movl -0x534(%rbp), %esi
movl -0x504(%rbp), %ecx
movl %esi, %edx
addl %ecx, %edx
movslq %edx, %rdx
shlq $0x4, %rdx
movaps (%rax,%rdx), %xmm1
movl %ecx, %edx
movl %esi, %ecx
leal (%rcx,%rdx,2), %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
movaps (%rax,%rcx), %xmm0
movaps %xmm1, -0x3d0(%rbp)
movaps %xmm0, -0x3e0(%rbp)
movaps -0x3d0(%rbp), %xmm0
movaps -0x3e0(%rbp), %xmm1
addps %xmm1, %xmm0
movaps %xmm0, -0x550(%rbp)
movq -0x510(%rbp), %rax
movslq -0x534(%rbp), %rcx
shlq $0x4, %rcx
movaps (%rax,%rcx), %xmm1
movl $0xbf000000, -0xc4(%rbp) # imm = 0xBF000000
movss -0xc4(%rbp), %xmm0
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
movaps %xmm0, -0xe0(%rbp)
movaps -0xe0(%rbp), %xmm2
movaps -0x550(%rbp), %xmm0
movaps %xmm2, -0x250(%rbp)
movaps %xmm0, -0x260(%rbp)
movaps -0x250(%rbp), %xmm0
movaps -0x260(%rbp), %xmm2
mulps %xmm2, %xmm0
movaps %xmm1, -0x3f0(%rbp)
movaps %xmm0, -0x400(%rbp)
movaps -0x3f0(%rbp), %xmm0
movaps -0x400(%rbp), %xmm1
addps %xmm1, %xmm0
movaps %xmm0, -0x570(%rbp)
movq -0x510(%rbp), %rax
movslq -0x534(%rbp), %rcx
shlq $0x4, %rcx
movaps (%rax,%rcx), %xmm1
movaps -0x550(%rbp), %xmm0
movaps %xmm1, -0x410(%rbp)
movaps %xmm0, -0x420(%rbp)
movaps -0x410(%rbp), %xmm0
movaps -0x420(%rbp), %xmm1
addps %xmm1, %xmm0
movq -0x518(%rbp), %rax
movslq -0x534(%rbp), %rcx
shlq $0x4, %rcx
movaps %xmm0, (%rax,%rcx)
movq -0x510(%rbp), %rcx
movl -0x534(%rbp), %esi
movl -0x504(%rbp), %eax
movl %esi, %edx
addl %eax, %edx
movslq %edx, %rdx
shlq $0x4, %rdx
movaps 0x10(%rdx,%rcx), %xmm1
movl %eax, %edx
movl %esi, %eax
leal (%rax,%rdx,2), %eax
cltq
shlq $0x4, %rax
movaps 0x10(%rax,%rcx), %xmm0
movaps %xmm1, -0x430(%rbp)
movaps %xmm0, -0x440(%rbp)
movaps -0x430(%rbp), %xmm0
movaps -0x440(%rbp), %xmm1
addps %xmm1, %xmm0
movaps %xmm0, -0x560(%rbp)
movq -0x510(%rbp), %rcx
movslq -0x534(%rbp), %rax
shlq $0x4, %rax
movaps 0x10(%rax,%rcx), %xmm1
movl $0xbf000000, -0xe4(%rbp) # imm = 0xBF000000
movss -0xe4(%rbp), %xmm0
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
movaps %xmm0, -0x100(%rbp)
movaps -0x100(%rbp), %xmm2
movaps -0x560(%rbp), %xmm0
movaps %xmm2, -0x270(%rbp)
movaps %xmm0, -0x280(%rbp)
movaps -0x270(%rbp), %xmm0
movaps -0x280(%rbp), %xmm2
mulps %xmm2, %xmm0
movaps %xmm1, -0x450(%rbp)
movaps %xmm0, -0x460(%rbp)
movaps -0x450(%rbp), %xmm0
movaps -0x460(%rbp), %xmm1
addps %xmm1, %xmm0
movaps %xmm0, -0x580(%rbp)
movq -0x510(%rbp), %rcx
movslq -0x534(%rbp), %rax
shlq $0x4, %rax
movaps 0x10(%rax,%rcx), %xmm1
movaps -0x560(%rbp), %xmm0
movaps %xmm1, -0x470(%rbp)
movaps %xmm0, -0x480(%rbp)
movaps -0x470(%rbp), %xmm0
movaps -0x480(%rbp), %xmm1
addps %xmm1, %xmm0
movq -0x518(%rbp), %rcx
movslq -0x534(%rbp), %rax
shlq $0x4, %rax
movaps %xmm0, 0x10(%rax,%rcx)
movss -0x530(%rbp), %xmm0
movss %xmm0, -0x104(%rbp)
movss -0x104(%rbp), %xmm0
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
movaps %xmm0, -0x120(%rbp)
movaps -0x120(%rbp), %xmm1
movq -0x510(%rbp), %rax
movl -0x534(%rbp), %esi
movl -0x504(%rbp), %ecx
movl %esi, %edx
addl %ecx, %edx
movslq %edx, %rdx
shlq $0x4, %rdx
movaps (%rax,%rdx), %xmm2
movl %ecx, %edx
movl %esi, %ecx
leal (%rcx,%rdx,2), %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
movaps (%rax,%rcx), %xmm0
movaps %xmm2, -0x10(%rbp)
movaps %xmm0, -0x20(%rbp)
movaps -0x10(%rbp), %xmm0
movaps -0x20(%rbp), %xmm2
subps %xmm2, %xmm0
movaps %xmm1, -0x290(%rbp)
movaps %xmm0, -0x2a0(%rbp)
movaps -0x290(%rbp), %xmm0
movaps -0x2a0(%rbp), %xmm1
mulps %xmm1, %xmm0
movaps %xmm0, -0x590(%rbp)
movss -0x530(%rbp), %xmm0
movss %xmm0, -0x124(%rbp)
movss -0x124(%rbp), %xmm0
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
movaps %xmm0, -0x140(%rbp)
movaps -0x140(%rbp), %xmm1
movq -0x510(%rbp), %rcx
movl -0x534(%rbp), %esi
movl -0x504(%rbp), %eax
movl %esi, %edx
addl %eax, %edx
movslq %edx, %rdx
shlq $0x4, %rdx
movaps 0x10(%rdx,%rcx), %xmm2
movl %eax, %edx
movl %esi, %eax
leal (%rax,%rdx,2), %eax
cltq
shlq $0x4, %rax
movaps 0x10(%rax,%rcx), %xmm0
movaps %xmm2, -0x30(%rbp)
movaps %xmm0, -0x40(%rbp)
movaps -0x30(%rbp), %xmm0
movaps -0x40(%rbp), %xmm2
subps %xmm2, %xmm0
movaps %xmm1, -0x2b0(%rbp)
movaps %xmm0, -0x2c0(%rbp)
movaps -0x2b0(%rbp), %xmm0
movaps -0x2c0(%rbp), %xmm1
mulps %xmm1, %xmm0
movaps %xmm0, -0x5a0(%rbp)
movaps -0x570(%rbp), %xmm1
movaps -0x5a0(%rbp), %xmm0
movaps %xmm1, -0x50(%rbp)
movaps %xmm0, -0x60(%rbp)
movaps -0x50(%rbp), %xmm0
movaps -0x60(%rbp), %xmm1
subps %xmm1, %xmm0
movaps %xmm0, -0x5b0(%rbp)
movaps -0x570(%rbp), %xmm1
movaps -0x5a0(%rbp), %xmm0
movaps %xmm1, -0x490(%rbp)
movaps %xmm0, -0x4a0(%rbp)
movaps -0x490(%rbp), %xmm0
movaps -0x4a0(%rbp), %xmm1
addps %xmm1, %xmm0
movaps %xmm0, -0x5d0(%rbp)
movaps -0x580(%rbp), %xmm1
movaps -0x590(%rbp), %xmm0
movaps %xmm1, -0x4b0(%rbp)
movaps %xmm0, -0x4c0(%rbp)
movaps -0x4b0(%rbp), %xmm0
movaps -0x4c0(%rbp), %xmm1
addps %xmm1, %xmm0
movaps %xmm0, -0x5c0(%rbp)
movaps -0x580(%rbp), %xmm1
movaps -0x590(%rbp), %xmm0
movaps %xmm1, -0x70(%rbp)
movaps %xmm0, -0x80(%rbp)
movaps -0x70(%rbp), %xmm0
movaps -0x80(%rbp), %xmm1
subps %xmm1, %xmm0
movaps %xmm0, -0x5e0(%rbp)
movq -0x520(%rbp), %rax
movslq -0x534(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
movss %xmm0, -0x5e8(%rbp)
movss -0x52c(%rbp), %xmm0
movq -0x520(%rbp), %rax
movslq -0x534(%rbp), %rcx
movss 0x4(%rax,%rcx,4), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, -0x5ec(%rbp)
movq -0x528(%rbp), %rax
movslq -0x534(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
movss %xmm0, -0x5f0(%rbp)
movss -0x52c(%rbp), %xmm0
movq -0x528(%rbp), %rax
movslq -0x534(%rbp), %rcx
movss 0x4(%rax,%rcx,4), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, -0x5f4(%rbp)
movaps -0x5b0(%rbp), %xmm1
movss -0x5ec(%rbp), %xmm0
movss %xmm0, -0x144(%rbp)
movss -0x144(%rbp), %xmm0
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
movaps %xmm0, -0x160(%rbp)
movaps -0x160(%rbp), %xmm0
movaps %xmm1, -0x2d0(%rbp)
movaps %xmm0, -0x2e0(%rbp)
movaps -0x2d0(%rbp), %xmm0
movaps -0x2e0(%rbp), %xmm1
mulps %xmm1, %xmm0
movaps %xmm0, -0x610(%rbp)
movaps -0x5b0(%rbp), %xmm1
movss -0x5e8(%rbp), %xmm0
movss %xmm0, -0x164(%rbp)
movss -0x164(%rbp), %xmm0
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
movaps %xmm0, -0x180(%rbp)
movaps -0x180(%rbp), %xmm0
movaps %xmm1, -0x2f0(%rbp)
movaps %xmm0, -0x300(%rbp)
movaps -0x2f0(%rbp), %xmm0
movaps -0x300(%rbp), %xmm1
mulps %xmm1, %xmm0
movaps %xmm0, -0x5b0(%rbp)
movaps -0x5b0(%rbp), %xmm1
movaps -0x5c0(%rbp), %xmm2
movss -0x5ec(%rbp), %xmm0
movss %xmm0, -0x184(%rbp)
movss -0x184(%rbp), %xmm0
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
movaps %xmm0, -0x1a0(%rbp)
movaps -0x1a0(%rbp), %xmm0
movaps %xmm2, -0x310(%rbp)
movaps %xmm0, -0x320(%rbp)
movaps -0x310(%rbp), %xmm0
movaps -0x320(%rbp), %xmm2
mulps %xmm2, %xmm0
movaps %xmm1, -0x90(%rbp)
movaps %xmm0, -0xa0(%rbp)
movaps -0x90(%rbp), %xmm0
movaps -0xa0(%rbp), %xmm1
subps %xmm1, %xmm0
movaps %xmm0, -0x5b0(%rbp)
movaps -0x5c0(%rbp), %xmm1
movss -0x5e8(%rbp), %xmm0
movss %xmm0, -0x1a4(%rbp)
movss -0x1a4(%rbp), %xmm0
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
movaps %xmm0, -0x1c0(%rbp)
movaps -0x1c0(%rbp), %xmm0
movaps %xmm1, -0x330(%rbp)
movaps %xmm0, -0x340(%rbp)
movaps -0x330(%rbp), %xmm0
movaps -0x340(%rbp), %xmm1
mulps %xmm1, %xmm0
movaps %xmm0, -0x5c0(%rbp)
movaps -0x5c0(%rbp), %xmm1
movaps -0x610(%rbp), %xmm0
movaps %xmm1, -0x4d0(%rbp)
movaps %xmm0, -0x4e0(%rbp)
movaps -0x4d0(%rbp), %xmm0
movaps -0x4e0(%rbp), %xmm1
addps %xmm1, %xmm0
movaps %xmm0, -0x5c0(%rbp)
movaps -0x5b0(%rbp), %xmm0
movq -0x518(%rbp), %rax
movl -0x534(%rbp), %ecx
movl -0x5e4(%rbp), %edx
addl %edx, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
movaps %xmm0, (%rax,%rcx)
movaps -0x5c0(%rbp), %xmm0
movq -0x518(%rbp), %rcx
movl -0x534(%rbp), %eax
movl -0x5e4(%rbp), %edx
addl %edx, %eax
cltq
shlq $0x4, %rax
movaps %xmm0, 0x10(%rax,%rcx)
movaps -0x5d0(%rbp), %xmm1
movss -0x5f4(%rbp), %xmm0
movss %xmm0, -0x1c4(%rbp)
movss -0x1c4(%rbp), %xmm0
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
movaps %xmm0, -0x1e0(%rbp)
movaps -0x1e0(%rbp), %xmm0
movaps %xmm1, -0x350(%rbp)
movaps %xmm0, -0x360(%rbp)
movaps -0x350(%rbp), %xmm0
movaps -0x360(%rbp), %xmm1
mulps %xmm1, %xmm0
movaps %xmm0, -0x620(%rbp)
movaps -0x5d0(%rbp), %xmm1
movss -0x5f0(%rbp), %xmm0
movss %xmm0, -0x1e4(%rbp)
movss -0x1e4(%rbp), %xmm0
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
movaps %xmm0, -0x200(%rbp)
movaps -0x200(%rbp), %xmm0
movaps %xmm1, -0x370(%rbp)
movaps %xmm0, -0x380(%rbp)
movaps -0x370(%rbp), %xmm0
movaps -0x380(%rbp), %xmm1
mulps %xmm1, %xmm0
movaps %xmm0, -0x5d0(%rbp)
movaps -0x5d0(%rbp), %xmm1
movaps -0x5e0(%rbp), %xmm2
movss -0x5f4(%rbp), %xmm0
movss %xmm0, -0x204(%rbp)
movss -0x204(%rbp), %xmm0
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
movaps %xmm0, -0x220(%rbp)
movaps -0x220(%rbp), %xmm0
movaps %xmm2, -0x390(%rbp)
movaps %xmm0, -0x3a0(%rbp)
movaps -0x390(%rbp), %xmm0
movaps -0x3a0(%rbp), %xmm2
mulps %xmm2, %xmm0
movaps %xmm1, -0xb0(%rbp)
movaps %xmm0, -0xc0(%rbp)
movaps -0xb0(%rbp), %xmm0
movaps -0xc0(%rbp), %xmm1
subps %xmm1, %xmm0
movaps %xmm0, -0x5d0(%rbp)
movaps -0x5e0(%rbp), %xmm1
movss -0x5f0(%rbp), %xmm0
movss %xmm0, -0x230(%rbp)
movaps -0x230(%rbp), %xmm0
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
movaps %xmm0, -0x240(%rbp)
movaps -0x240(%rbp), %xmm0
movaps %xmm1, -0x3b0(%rbp)
movaps %xmm0, -0x3c0(%rbp)
movaps -0x3b0(%rbp), %xmm0
mulps -0x3c0(%rbp), %xmm0
movaps %xmm0, -0x5e0(%rbp)
movaps -0x5e0(%rbp), %xmm1
movaps -0x620(%rbp), %xmm0
movaps %xmm1, -0x4f0(%rbp)
movaps %xmm0, -0x500(%rbp)
movaps -0x4f0(%rbp), %xmm0
addps -0x500(%rbp), %xmm0
movaps %xmm0, -0x5e0(%rbp)
movaps -0x5d0(%rbp), %xmm0
movq -0x518(%rbp), %rax
movl -0x534(%rbp), %ecx
movl -0x5e4(%rbp), %edx
shll %edx
addl %edx, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movaps %xmm0, (%rax)
movaps -0x5e0(%rbp), %xmm0
movq -0x518(%rbp), %rax
movl -0x534(%rbp), %ecx
movl -0x5e4(%rbp), %edx
shll %edx
addl %edx, %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movaps %xmm0, (%rax)
movl -0x534(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x534(%rbp)
jmp 0x57d6
jmp 0x60e4
movl -0x504(%rbp), %eax
addl -0x538(%rbp), %eax
movl %eax, -0x538(%rbp)
imull $0x3, -0x504(%rbp), %ecx
movq -0x510(%rbp), %rax
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x510(%rbp)
movl -0x504(%rbp), %ecx
movq -0x518(%rbp), %rax
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x518(%rbp)
jmp 0x57ba
addq $0x620, %rsp            # imm = 0x620
popq %rbp
retq
nopw %cs:(%rax,%rax)