Hi Niklas On Fri, Jun 13, 2025 at 06:37:50PM +0200, Niklas Haas wrote: > From: Niklas Haas > > Processes two channels in parallel, using 128-bit XMM registers. > > In theory, we could go up to YMM registers to process 4 channels, but this is > not a gain except for relatively high channel counts (e.g. 7.1), and also > complicates the sample load/store operations considerably. > > I decided to only add an AVX variant, since the C code is not substantially > slower enough to justify a separate function just for ancient CPUs. > --- > libavfilter/f_ebur128.c | 15 ++-- > libavfilter/f_ebur128.h | 16 ++++ > libavfilter/x86/Makefile | 2 + > libavfilter/x86/f_ebur128.asm | 142 +++++++++++++++++++++++++++++++ > libavfilter/x86/f_ebur128_init.c | 35 ++++++++ > 5 files changed, 205 insertions(+), 5 deletions(-) > create mode 100644 libavfilter/x86/f_ebur128.asm > create mode 100644 libavfilter/x86/f_ebur128_init.c breaks x86-32 src/libavfilter/x86/f_ebur128.asm:116: error: symbol `m8' undefined src/libavfilter/x86/f_ebur128.asm:118: error: symbol `m9' undefined src/libavfilter/x86/f_ebur128.asm:119: error: symbol `m10' undefined src/libavfilter/x86/f_ebur128.asm:120: error: symbol `m11' undefined src/libavfilter/x86/f_ebur128.asm:121: error: symbol `m12' undefined src/libavfilter/x86/f_ebur128.asm:122: error: symbol `m13' undefined src/libavfilter/x86/f_ebur128.asm:124: error: symbol `r7q' undefined src/libavfilter/x86/f_ebur128.asm:125: error: symbol `r8q' undefined src/libavfilter/x86/f_ebur128.asm:132: error: symbol `r7q' undefined src/libavfilter/x86/f_ebur128.asm:91: ... from macro `filter_channels' defined here src/libavfilter/x86/f_ebur128.asm:57: ... from macro `FILTER' defined here src//libavutil/x86/x86inc.asm:1654: ... from macro `movsd' defined here src//libavutil/x86/x86inc.asm:1501: ... from macro `RUN_AVX_INSTR' defined here src/libavfilter/x86/f_ebur128.asm:132: error: symbol `r7q' undefined src/libavfilter/x86/f_ebur128.asm:91: ... from macro `filter_channels' defined here src/libavfilter/x86/f_ebur128.asm:58: ... from macro `FILTER' defined here src//libavutil/x86/x86inc.asm:1654: ... from macro `movsd' defined here src//libavutil/x86/x86inc.asm:1501: ... from macro `RUN_AVX_INSTR' defined here src/libavfilter/x86/f_ebur128.asm:132: error: symbol `r7q' undefined ... [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Concerning the gods, I have no means of knowing whether they exist or not or of what sort they may be, because of the obscurity of the subject, and the brevity of human life -- Protagoras