diff options
Diffstat (limited to 'ffmpeg/libavutil/x86/float_dsp.asm')
| -rw-r--r-- | ffmpeg/libavutil/x86/float_dsp.asm | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/ffmpeg/libavutil/x86/float_dsp.asm b/ffmpeg/libavutil/x86/float_dsp.asm index 004e6cf..49d4876 100644 --- a/ffmpeg/libavutil/x86/float_dsp.asm +++ b/ffmpeg/libavutil/x86/float_dsp.asm @@ -263,3 +263,28 @@ cglobal scalarproduct_float, 3,3,2, v1, v2, offset %endif RET +;----------------------------------------------------------------------------- +; void ff_butterflies_float(float *src0, float *src1, int len); +;----------------------------------------------------------------------------- +INIT_XMM sse +cglobal butterflies_float, 3,3,3, src0, src1, len +%if ARCH_X86_64 + movsxd lenq, lend +%endif + test lenq, lenq + jz .end + shl lenq, 2 + add src0q, lenq + add src1q, lenq + neg lenq +.loop: + mova m0, [src0q + lenq] + mova m1, [src1q + lenq] + subps m2, m0, m1 + addps m0, m0, m1 + mova [src1q + lenq], m2 + mova [src0q + lenq], m0 + add lenq, mmsize + jl .loop +.end: + REP_RET |
