// File: /workspace/github_c_makefile_star2_O3/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 $0x58, %rsp
movss %xmm0, 0x4(%rsp)
cmpl $0x3, %edi
jl 0x1d69
testl %esi, %esi
jle 0x1d5a
movss 0x673a(%rip), %xmm1     # 0x80cc
movss 0x4(%rsp), %xmm2
mulss %xmm2, %xmm1
movss 0x672c(%rip), %xmm0     # 0x80d0
mulss %xmm2, %xmm0
movl %esi, (%rsp)
movl (%rsp), %eax
imull %edi, %eax
leal (%rdi,%rdi,2), %ebp
leal -0x1(%rdi), %r10d
movq %r10, 0x28(%rsp)
leal (%rax,%rax), %ebx
movslq %ebp, %rsi
imull (%rsp), %ebp
leal (,%rax,4), %r14d
leal (,%rdi,4), %r10d
movq %r10, 0x8(%rsp)
shufps $0x0, %xmm1, %xmm1      # xmm1 = xmm1[0,0,0,0]
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
leal (%rdi,%rdi,4), %r11d
movl %edi, %r10d
addl %edi, %edi
cltq
movslq %ebx, %rbx
movslq %ebp, %r12
movslq %r14d, %r14
shlq $0x4, %r14
leaq (%r14,%rcx), %r15
addq $0x10, %r15
shlq $0x4, %r10
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, %rsi
leaq (%rsi,%rdx), %rbx
addq $0x10, %rbx
shlq $0x4, %r11
movq %r11, 0x18(%rsp)
shlq $0x4, %rdi
addq %rdx, %rdi
addq $0x10, %rdi
movq 0x8(%rsp), %rax
shlq $0x4, %rax
leaq (%rax,%rdx), %rsi
addq $0x10, %rsi
movq %r10, 0x10(%rsp)
leaq (%r10,%rdx), %r14
addq $0x10, %r14
xorl %r11d, %r11d
movaps 0x66ec(%rip), %xmm13    # 0x8160
movaps 0x66f5(%rip), %xmm2     # 0x8170
movaps %xmm0, 0x40(%rsp)
movaps %xmm1, 0x30(%rsp)
movq %rdx, 0x8(%rsp)
movq %r11, 0x20(%rsp)
xorl %eax, %eax
xorl %edx, %edx
movaps -0x10(%r14,%rax,4), %xmm14
movaps (%r14,%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(%rbx,%rax,4), %xmm7
movaps (%rbx,%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
movq 0x8(%rsp), %r10
addps (%r10,%rax,4), %xmm3
subps %xmm7, %xmm11
movaps %xmm3, (%rcx,%rax,4)
movaps %xmm12, %xmm3
addps %xmm4, %xmm3
addps 0x10(%r10,%rax,4), %xmm3
movaps %xmm3, 0x10(%rcx,%rax,4)
movaps %xmm14, %xmm7
mulps %xmm13, %xmm7
movaps %xmm8, %xmm3
mulps %xmm2, %xmm3
subps %xmm3, %xmm7
movaps (%r10,%rax,4), %xmm3
movaps 0x10(%r10,%rax,4), %xmm15
addps %xmm3, %xmm7
movaps %xmm13, %xmm2
movaps %xmm12, %xmm13
mulps %xmm2, %xmm13
movaps %xmm4, %xmm6
mulps 0x6628(%rip), %xmm6     # 0x8170
subps %xmm6, %xmm13
addps %xmm15, %xmm13
mulps 0x6618(%rip), %xmm14    # 0x8170
mulps %xmm2, %xmm8
subps %xmm14, %xmm8
addps %xmm3, %xmm8
mulps 0x6604(%rip), %xmm12    # 0x8170
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(%r8,%rax), %xmm3
movss 0x4(%rsp), %xmm0
mulss %xmm0, %xmm3
movss 0x4(%r9,%rax), %xmm15
movq 0x90(%rsp), %r10
movss 0x4(%r10,%rax), %xmm13
movq 0x98(%rsp), %r11
movss 0x4(%r11,%rax), %xmm10
shufps $0x0, %xmm3, %xmm3      # xmm3 = xmm3[0,0,0,0]
movaps %xmm7, %xmm6
mulps %xmm3, %xmm6
movss (%r8,%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
movss (%r9,%rax), %xmm6
movss (%r10,%rax), %xmm3
movss (%r11,%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 0x64b9(%rip), %xmm2     # 0x8170
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 0x30(%rsp), %xmm1
movaps 0x40(%rsp), %xmm0
movaps %xmm8, -0x10(%r15,%rax,4)
movaps %xmm12, (%r15,%rax,4)
addq $0x2, %rdx
addq $0x8, %rax
cmpq 0x28(%rsp), %rdx
jb 0x1a93
movq 0x20(%rsp), %r11
incl %r11d
movq 0x10(%rsp), %r10
addq %r10, %r15
addq %r10, %r12
addq %r10, %r13
addq %r10, %rbp
movq 0x18(%rsp), %rax
addq %rax, %rbx
addq %rax, %rdi
addq %rax, %rsi
addq %rax, %r14
addq %r10, %rcx
movq 0x8(%rsp), %rdx
addq %rax, %rdx
cmpl (%rsp), %r11d
jne 0x1a85
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x6931(%rip), %rdi      # 0x86a1
leaq 0x64d2(%rip), %rsi      # 0x8249
leaq 0x692b(%rip), %rcx      # 0x86a9
movl $0x1a9, %edx            # imm = 0x1A9
callq 0x1090