// File: /workspace/github_c_makefile_star2_O1/pavel-demin[P]ft8d-c/pffft.c
// Function: passf5_ps
static NEVER_INLINE(void) passf5_ps(int ido, int l1, const v4sf *cc, v4sf *ch,
                                    const float *wa1, const float *wa2,
                                    const float *wa3, const float *wa4, float fsign) {
  static const float tr11 = .309016994374947f;
  const float ti11 = .951056516295154f*fsign;
  static const float tr12 = -.809016994374947f;
  const float ti12 = .587785252292473f*fsign;

  /* Local variables */
  int i, k;
  v4sf ci2, ci3, ci4, ci5, di3, di4, di5, di2, cr2, cr3, cr5, cr4, ti2, ti3,
    ti4, ti5, dr3, dr4, dr5, dr2, tr2, tr3, tr4, tr5;

  float wr1, wi1, wr2, wi2, wr3, wi3, wr4, wi4;

#define cc_ref(a_1,a_2) cc[(a_2-1)*ido + a_1 + 1]
#define ch_ref(a_1,a_3) ch[(a_3-1)*l1*ido + a_1 + 1]

  assert(ido > 2);
  for (k = 0; k < l1; ++k, cc += 5*ido, ch += ido) {
    for (i = 0; i < ido-1; i += 2) {
      ti5 = VSUB(cc_ref(i  , 2), cc_ref(i  , 5));
      ti2 = VADD(cc_ref(i  , 2), cc_ref(i  , 5));
      ti4 = VSUB(cc_ref(i  , 3), cc_ref(i  , 4));
      ti3 = VADD(cc_ref(i  , 3), cc_ref(i  , 4));
      tr5 = VSUB(cc_ref(i-1, 2), cc_ref(i-1, 5));
      tr2 = VADD(cc_ref(i-1, 2), cc_ref(i-1, 5));
      tr4 = VSUB(cc_ref(i-1, 3), cc_ref(i-1, 4));
      tr3 = VADD(cc_ref(i-1, 3), cc_ref(i-1, 4));
      ch_ref(i-1, 1) = VADD(cc_ref(i-1, 1), VADD(tr2, tr3));
      ch_ref(i  , 1) = VADD(cc_ref(i  , 1), VADD(ti2, ti3));
      cr2 = VADD(cc_ref(i-1, 1), VADD(SVMUL(tr11, tr2),SVMUL(tr12, tr3)));
      ci2 = VADD(cc_ref(i  , 1), VADD(SVMUL(tr11, ti2),SVMUL(tr12, ti3)));
      cr3 = VADD(cc_ref(i-1, 1), VADD(SVMUL(tr12, tr2),SVMUL(tr11, tr3)));
      ci3 = VADD(cc_ref(i  , 1), VADD(SVMUL(tr12, ti2),SVMUL(tr11, ti3)));
      cr5 = VADD(SVMUL(ti11, tr5), SVMUL(ti12, tr4));
      ci5 = VADD(SVMUL(ti11, ti5), SVMUL(ti12, ti4));
      cr4 = VSUB(SVMUL(ti12, tr5), SVMUL(ti11, tr4));
      ci4 = VSUB(SVMUL(ti12, ti5), SVMUL(ti11, ti4));
      dr3 = VSUB(cr3, ci4);
      dr4 = VADD(cr3, ci4);
      di3 = VADD(ci3, cr4);
      di4 = VSUB(ci3, cr4);
      dr5 = VADD(cr2, ci5);
      dr2 = VSUB(cr2, ci5);
      di5 = VSUB(ci2, cr5);
      di2 = VADD(ci2, cr5);
      wr1=wa1[i]; wi1=fsign*wa1[i+1]; wr2=wa2[i]; wi2=fsign*wa2[i+1];
      wr3=wa3[i]; wi3=fsign*wa3[i+1]; wr4=wa4[i]; wi4=fsign*wa4[i+1];
      VCPLXMUL(dr2, di2, LD_PS1(wr1), LD_PS1(wi1));
      ch_ref(i - 1, 2) = dr2;
      ch_ref(i, 2)     = di2;
      VCPLXMUL(dr3, di3, LD_PS1(wr2), LD_PS1(wi2));
      ch_ref(i - 1, 3) = dr3;
      ch_ref(i, 3)     = di3;
      VCPLXMUL(dr4, di4, LD_PS1(wr3), LD_PS1(wi3));
      ch_ref(i - 1, 4) = dr4;
      ch_ref(i, 4)     = di4;
      VCPLXMUL(dr5, di5, LD_PS1(wr4), LD_PS1(wi4));
      ch_ref(i - 1, 5) = dr5;
      ch_ref(i, 5)     = di5;
    }
  }
#undef ch_ref
#undef cc_ref
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movss %xmm0, 0xc(%rsp)
movq %r8, 0x38(%rsp)
cmpl $0x3, %edi
jl 0x1dcc
testl %esi, %esi
jle 0x1dbd
movss 0x6780(%rip), %xmm1     # 0x8134
movss 0xc(%rsp), %xmm0
mulss %xmm0, %xmm1
movss 0x6772(%rip), %xmm2     # 0x8138
mulss %xmm0, %xmm2
movl %esi, %eax
imull %edi, %eax
leal (%rdi,%rdi,2), %r11d
leal -0x1(%rdi), %r13d
leal (%rax,%rax), %ebx
movl %r11d, %ebp
imull %esi, %ebp
movq %r9, 0x10(%rsp)
leal (,%rax,4), %r15d
movl %esi, 0x1c(%rsp)
leal (,%rdi,4), %r10d
shufps $0x0, %xmm1, %xmm1      # xmm1 = xmm1[0,0,0,0]
shufps $0x0, %xmm2, %xmm2      # xmm2 = xmm2[0,0,0,0]
movaps %xmm2, %xmm0
leal (%rdi,%rdi,4), %esi
movl %edi, %r14d
addl %edi, %edi
movslq %ebx, %rbx
movslq %ebp, %r12
movslq %r15d, %r15
movslq %r13d, %r13
movq %r13, 0x48(%rsp)
shlq $0x4, %r15
leaq (%r15,%rcx), %r9
addq $0x10, %r9
movq 0x10(%rsp), %r15
shlq $0x4, %r14
shlq $0x4, %r12
addq %rcx, %r12
addq $0x10, %r12
shlq $0x4, %rbx
leaq (%rbx,%rcx), %r13
addq $0x10, %r13
shlq $0x4, %rax
leaq (%rax,%rcx), %rbp
addq $0x10, %rbp
shlq $0x4, %r11
addq %rdx, %r11
addq $0x10, %r11
shlq $0x4, %rsi
movq %rsi, 0x30(%rsp)
shlq $0x4, %rdi
addq %rdx, %rdi
addq $0x10, %rdi
shlq $0x4, %r10
leaq (%r10,%rdx), %rsi
addq $0x10, %rsi
movq %r14, 0x28(%rsp)
leaq (%r14,%rdx), %rbx
addq $0x10, %rbx
xorl %r14d, %r14d
movaps 0x66b8(%rip), %xmm13    # 0x8150
movaps 0x66c1(%rip), %xmm2     # 0x8160
movaps %xmm0, 0x60(%rsp)
movaps %xmm1, 0x50(%rsp)
movq %rcx, 0x20(%rsp)
movq %r14, 0x40(%rsp)
xorl %eax, %eax
xorl %r10d, %r10d
movq 0x38(%rsp), %rcx
movaps -0x10(%rbx,%rax,4), %xmm14
movaps (%rbx,%rax,4), %xmm12
movaps -0x10(%rsi,%rax,4), %xmm3
movaps (%rsi,%rax,4), %xmm6
movaps %xmm12, %xmm5
subps %xmm6, %xmm5
addps %xmm6, %xmm12
movaps -0x10(%rdi,%rax,4), %xmm8
movaps (%rdi,%rax,4), %xmm4
movaps -0x10(%r11,%rax,4), %xmm7
movaps (%r11,%rax,4), %xmm9
movaps %xmm4, %xmm10
subps %xmm9, %xmm10
addps %xmm9, %xmm4
movaps %xmm14, %xmm9
subps %xmm3, %xmm9
addps %xmm3, %xmm14
movaps %xmm8, %xmm11
addps %xmm7, %xmm8
movaps %xmm14, %xmm3
addps %xmm8, %xmm3
addps (%rdx,%rax,4), %xmm3
subps %xmm7, %xmm11
movq 0x20(%rsp), %r8
movaps %xmm3, (%r8,%rax,4)
movaps %xmm12, %xmm3
addps %xmm4, %xmm3
addps 0x10(%rdx,%rax,4), %xmm3
movaps %xmm3, 0x10(%r8,%rax,4)
movaps %xmm14, %xmm7
mulps %xmm13, %xmm7
movaps %xmm8, %xmm3
mulps %xmm2, %xmm3
subps %xmm3, %xmm7
movaps (%rdx,%rax,4), %xmm3
movaps 0x10(%rdx,%rax,4), %xmm15
addps %xmm3, %xmm7
movaps %xmm13, %xmm2
movaps %xmm12, %xmm13
mulps %xmm2, %xmm13
movaps %xmm4, %xmm6
mulps 0x65ee(%rip), %xmm6     # 0x8160
subps %xmm6, %xmm13
addps %xmm15, %xmm13
mulps 0x65de(%rip), %xmm14    # 0x8160
mulps %xmm2, %xmm8
subps %xmm14, %xmm8
addps %xmm3, %xmm8
mulps 0x65ca(%rip), %xmm12    # 0x8160
mulps %xmm2, %xmm4
subps %xmm12, %xmm4
addps %xmm15, %xmm4
movaps %xmm1, %xmm3
mulps %xmm9, %xmm3
movaps %xmm0, %xmm12
mulps %xmm11, %xmm12
addps %xmm3, %xmm12
movaps %xmm1, %xmm3
mulps %xmm5, %xmm3
movaps %xmm0, %xmm6
mulps %xmm10, %xmm6
addps %xmm3, %xmm6
mulps %xmm0, %xmm9
mulps %xmm1, %xmm11
subps %xmm11, %xmm9
mulps %xmm0, %xmm5
mulps %xmm1, %xmm10
subps %xmm10, %xmm5
movaps %xmm8, %xmm11
subps %xmm5, %xmm11
addps %xmm8, %xmm5
movaps %xmm9, %xmm14
addps %xmm4, %xmm14
subps %xmm9, %xmm4
movaps %xmm6, %xmm8
addps %xmm7, %xmm8
subps %xmm6, %xmm7
movaps %xmm13, %xmm9
subps %xmm12, %xmm9
addps %xmm13, %xmm12
movss 0x4(%rcx,%rax), %xmm3
movss 0xc(%rsp), %xmm0
mulss %xmm0, %xmm3
movss 0x4(%r15,%rax), %xmm15
movq 0xb0(%rsp), %r15
movss 0x4(%r15,%rax), %xmm13
movq 0xb8(%rsp), %r14
movss 0x4(%r14,%rax), %xmm10
shufps $0x0, %xmm3, %xmm3      # xmm3 = xmm3[0,0,0,0]
movaps %xmm7, %xmm6
mulps %xmm3, %xmm6
movss (%rcx,%rax), %xmm1
shufps $0x0, %xmm1, %xmm1      # xmm1 = xmm1[0,0,0,0]
mulps %xmm1, %xmm7
mulps %xmm12, %xmm3
subps %xmm3, %xmm7
mulps %xmm12, %xmm1
addps %xmm6, %xmm1
movq %rbx, %r8
movq %rsi, %rbx
movq %rdi, %rsi
movq %r11, %rdi
movq %rbp, %r11
movq %r13, %rbp
movq %r12, %r13
movq %r9, %r12
movq 0x10(%rsp), %r9
movss (%r9,%rax), %xmm6
movq %r12, %r9
movq %r13, %r12
movq %rbp, %r13
movq %r11, %rbp
movq %rdi, %r11
movq %rsi, %rdi
movq %rbx, %rsi
movq %r8, %rbx
movss (%r15,%rax), %xmm3
movq 0x10(%rsp), %r15
movss (%r14,%rax), %xmm12
movaps %xmm7, -0x10(%rbp,%rax,4)
mulss %xmm0, %xmm15
movaps %xmm1, (%rbp,%rax,4)
shufps $0x0, %xmm15, %xmm15    # xmm15 = xmm15[0,0,0,0]
movaps %xmm11, %xmm1
mulps %xmm15, %xmm1
shufps $0x0, %xmm6, %xmm6      # xmm6 = xmm6[0,0,0,0]
mulps %xmm6, %xmm11
mulps %xmm14, %xmm15
subps %xmm15, %xmm11
mulps %xmm14, %xmm6
addps %xmm1, %xmm6
movaps %xmm11, -0x10(%r13,%rax,4)
mulss %xmm0, %xmm13
movaps %xmm6, (%r13,%rax,4)
shufps $0x0, %xmm13, %xmm13    # xmm13 = xmm13[0,0,0,0]
movaps %xmm5, %xmm1
mulps %xmm13, %xmm1
shufps $0x0, %xmm3, %xmm3      # xmm3 = xmm3[0,0,0,0]
mulps %xmm3, %xmm5
mulps %xmm4, %xmm13
subps %xmm13, %xmm5
movaps %xmm2, %xmm13
movaps 0x6447(%rip), %xmm2     # 0x8160
mulps %xmm4, %xmm3
addps %xmm1, %xmm3
movaps %xmm5, -0x10(%r12,%rax,4)
mulss %xmm0, %xmm10
movaps %xmm3, (%r12,%rax,4)
shufps $0x0, %xmm10, %xmm10    # xmm10 = xmm10[0,0,0,0]
movaps %xmm8, %xmm1
mulps %xmm10, %xmm1
shufps $0x0, %xmm12, %xmm12    # xmm12 = xmm12[0,0,0,0]
mulps %xmm12, %xmm8
mulps %xmm9, %xmm10
subps %xmm10, %xmm8
mulps %xmm9, %xmm12
addps %xmm1, %xmm12
movaps 0x50(%rsp), %xmm1
movaps 0x60(%rsp), %xmm0
movaps %xmm8, -0x10(%r9,%rax,4)
movaps %xmm12, (%r9,%rax,4)
addq $0x2, %r10
addq $0x8, %rax
cmpq 0x48(%rsp), %r10
jl 0x1abd
movq 0x40(%rsp), %r14
incl %r14d
movq 0x28(%rsp), %r10
addq %r10, %r9
addq %r10, %r12
addq %r10, %r13
addq %r10, %rbp
movq 0x30(%rsp), %rax
addq %rax, %r11
addq %rax, %rdi
addq %rax, %rsi
addq %rax, %rbx
movq 0x20(%rsp), %rcx
addq %r10, %rcx
addq %rax, %rdx
cmpl 0x1c(%rsp), %r14d
jne 0x1aa9
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x68ae(%rip), %rdi      # 0x8681
leaq 0x644f(%rip), %rsi      # 0x8229
leaq 0x68a8(%rip), %rcx      # 0x8689
movl $0x1a9, %edx            # imm = 0x1A9
callq 0x1090