[FFmpeg-devel] [PATCH] lpc: rewrite lpc_compute_autocorr in external asm

Michael Niedermayer michael at niedermayer.cc
Sun May 26 01:12:23 EEST 2024


On Sat, May 25, 2024 at 10:57:21PM +0200, Lynne via ffmpeg-devel wrote:
> The inline asm function had issues running under checkasm.
> So I came to finish what I started, and wrote the last part
> of LPC computation in assembly.
> 
> autocorr_10_c: 135525.8
> autocorr_10_sse2: 50729.8
> autocorr_10_fma3: 19007.8
> autocorr_30_c: 390100.8
> autocorr_30_sse2: 142478.8
> autocorr_30_fma3: 50559.8
> autocorr_32_c: 407058.3
> autocorr_32_sse2: 151633.3
> autocorr_32_fma3: 50517.3
> ---
>  libavcodec/x86/lpc.asm    | 91 +++++++++++++++++++++++++++++++++++++++
>  libavcodec/x86/lpc_init.c | 87 ++++---------------------------------
>  2 files changed, 100 insertions(+), 78 deletions(-)

breaks build on x86-32

src/libavcodec/x86/lpc.asm:352: error: symbol `m8' undefined
src/libavcodec/x86/lpc.asm:275: ... from macro `COMPUTE_AUTOCORR_FN' defined here
src//libavutil/x86/x86inc.asm:1636: ... from macro `movaps' defined here
src//libavutil/x86/x86inc.asm:1501: ... from macro `RUN_AVX_INSTR' defined here
src/libavcodec/x86/lpc.asm:352: error: symbol `m8' undefined
src/libavcodec/x86/lpc.asm:300: ... from macro `COMPUTE_AUTOCORR_FN' defined here
src//libavutil/x86/x86inc.asm:1535: ... from macro `addpd' defined here
src//libavutil/x86/x86inc.asm:1501: ... from macro `RUN_AVX_INSTR' defined here
src/libavcodec/x86/lpc.asm:352: error: symbol `m8' undefined
src/libavcodec/x86/lpc.asm:307: ... from macro `COMPUTE_AUTOCORR_FN' defined here
src//libavutil/x86/x86inc.asm:1659: ... from macro `movups' defined here
src//libavutil/x86/x86inc.asm:1501: ... from macro `RUN_AVX_INSTR' defined here
src/libavcodec/x86/lpc.asm:354: error: symbol `m8' undefined
src/libavcodec/x86/lpc.asm:275: ... from macro `COMPUTE_AUTOCORR_FN' defined here
src//libavutil/x86/x86inc.asm:1636: ... from macro `movaps' defined here
src//libavutil/x86/x86inc.asm:1501: ... from macro `RUN_AVX_INSTR' defined here
src/libavcodec/x86/lpc.asm:354: error: symbol `m8' undefined
src/libavcodec/x86/lpc.asm:297: ... from macro `COMPUTE_AUTOCORR_FN' defined here
src//libavutil/x86/x86inc.asm:1937: ... from macro `fmaddpd' defined here
src/libavcodec/x86/lpc.asm:354: error: symbol `m8' undefined
src/libavcodec/x86/lpc.asm:307: ... from macro `COMPUTE_AUTOCORR_FN' defined here
src//libavutil/x86/x86inc.asm:1659: ... from macro `movups' defined here
src//libavutil/x86/x86inc.asm:1501: ... from macro `RUN_AVX_INSTR' defined here
make: *** [src/ffbuild/common.mak:103: libavcodec/x86/lpc.o] Error 1
make: *** Waiting for unfinished jobs....

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No great genius has ever existed without some touch of madness. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20240526/5e940639/attachment.sig>


More information about the ffmpeg-devel mailing list