vmul.f32 d5, d17, d3
vsub.f32 d4, d6, d4
vadd.f32 d5, d5, d7
- uxtah r8, r1, r6, ror #16
- uxtah r6, r1, r6
+ uxth r8, r6, ror #16
+ uxth r6, r6
+ add r8, r1, r8, lsl #3
+ add r6, r1, r6, lsl #3
beq 1f
vld2.32 {d16-d17},[r7,:128],r12
vld2.32 {d0-d1}, [r2,:128]!
subs lr, lr, #16
vsub.f32 d6, d6, d7 @ -R*c-I*s
vadd.f32 d7, d4, d5 @ -R*s+I*c
- uxtah r10, r1, r6, ror #16
- uxtah r6, r1, r6
+ uxth r10, r6, ror #16
+ uxth r6, r6
+ add r10, r1, r10, lsl #3
+ add r6, r1, r6, lsl #3
beq 1f
vld2.32 {d16,d18},[r9,:128],r12 @ x,x in4d1,in4d0
vld2.32 {d17,d19},[r8,:128],r12 @ x,x in3d1,in3d0
subs lr, lr, #16
vsub.f32 d6, d7, d6 @ I*s-R*c
vadd.f32 d7, d4, d5 @ R*s-I*c
- uxtah r10, r1, r6, ror #16
- uxtah r6, r1, r6
+ uxth r10, r6, ror #16
+ uxth r6, r6
+ add r10, r1, r10, lsl #3
+ add r6, r1, r6, lsl #3
beq 1f
vld2.32 {d16,d18},[r9,:128],r12 @ x,x in2d1,in2d0
vld2.32 {d17,d19},[r8,:128],r12 @ x,x in1d1,in1d0
float alpha, c1, s1, s2;
int split_radix = 1;
int av_unused has_vectors;
- int revtab_shift = 0;
if (nbits < 2 || nbits > 16)
goto fail;
s->imdct_calc = ff_imdct_calc_neon;
s->imdct_half = ff_imdct_half_neon;
s->mdct_calc = ff_mdct_calc_neon;
- revtab_shift = 3;
#endif
if (split_radix) {
tab[m/2-i] = tab[i];
}
for(i=0; i<n; i++)
- s->revtab[-split_radix_permutation(i, n, s->inverse) & (n-1)] =
- i << revtab_shift;
+ s->revtab[-split_radix_permutation(i, n, s->inverse) & (n-1)] = i;
s->tmp_buf = av_malloc(n * sizeof(FFTComplex));
} else {
int np, nblocks, np2, l;