diff options
author | Lynne <dev@lynne.ee> | 2022-09-19 04:14:52 +0200 |
---|---|---|
committer | Lynne <dev@lynne.ee> | 2022-09-19 06:01:06 +0200 |
commit | 4ba68639cabfc56ffe62d4e776a8af040e551ff3 (patch) | |
tree | 2962213b91df07fe36d864dda2ba84983d66173b /libavutil/x86/tx_float.asm | |
parent | 892548e6a1a514fc23c5bb42e549b1a0bb604b6a (diff) | |
download | ffmpeg-4ba68639cabfc56ffe62d4e776a8af040e551ff3.tar.gz |
x86/tx_float: add asm call versions of the 2pt and 4pt transforms
Verified to be working.
Diffstat (limited to 'libavutil/x86/tx_float.asm')
-rw-r--r-- | libavutil/x86/tx_float.asm | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/libavutil/x86/tx_float.asm b/libavutil/x86/tx_float.asm index b644db49be..b3a85a7cb9 100644 --- a/libavutil/x86/tx_float.asm +++ b/libavutil/x86/tx_float.asm @@ -682,15 +682,27 @@ SECTION .text %endmacro INIT_XMM sse3 +cglobal fft2_asm_float, 0, 0, 0, ctx, out, in, stride + movaps m0, [inq] + FFT2 m0, m1 + movaps [outq], m0 + add inq, mmsize*1 + add outq, mmsize*1 + ret + cglobal fft2_float, 4, 4, 2, ctx, out, in, stride movaps m0, [inq] FFT2 m0, m1 movaps [outq], m0 RET -%macro FFT4 2 +%macro FFT4_FN 3 INIT_XMM sse2 +%if %3 +cglobal fft4_ %+ %1 %+ _asm_float, 0, 0, 0, ctx, out, in, stride +%else cglobal fft4_ %+ %1 %+ _float, 4, 4, 3, ctx, out, in, stride +%endif movaps m0, [inq + 0*mmsize] movaps m1, [inq + 1*mmsize] @@ -708,11 +720,19 @@ cglobal fft4_ %+ %1 %+ _float, 4, 4, 3, ctx, out, in, stride movaps [outq + 0*mmsize], m2 movaps [outq + 1*mmsize], m0 +%if %3 + add inq, mmsize*2 + add outq, mmsize*2 + ret +%else RET +%endif %endmacro -FFT4 fwd, 0 -FFT4 inv, 1 +FFT4_FN fwd, 0, 0 +FFT4_FN fwd, 0, 1 +FFT4_FN inv, 1, 0 +FFT4_FN inv, 1, 1 %macro FFT8_SSE_FN 1 INIT_XMM sse3 |