[FFmpeg-devel] [PATCH v4] mdct15: add assembly optimizations for the 15-point FFT

James Almer jamrial at gmail.com
Sat Jun 24 01:15:26 EEST 2017


On 6/23/2017 7:11 PM, Michael Niedermayer wrote:
> On Fri, Jun 23, 2017 at 10:35:43PM +0200, Paul B Mahol wrote:
>> On 6/23/17, Michael Niedermayer <michael at niedermayer.cc> wrote:
>>> On Fri, Jun 23, 2017 at 02:51:37AM +0100, Rostislav Pehlivanov wrote:
>>>> c:    1802 decicycles in fft15,16774635 runs,   2581 skips
>>>> avx:   865 decicycles in fft15,16776378 runs,    838 skips
>>>>
>>>> Signed-off-by: Rostislav Pehlivanov <atomnuker at gmail.com>
>>>> ---
>>>>  libavcodec/mdct15.c          | 182
>>>> +++++++++++++++++++++----------------------
>>>>  libavcodec/mdct15.h          |  26 +++----
>>>>  libavcodec/x86/Makefile      |   2 +
>>>>  libavcodec/x86/mdct15.asm    | 137 ++++++++++++++++++++++++++++++++
>>>>  libavcodec/x86/mdct15_init.c |  95 ++++++++++++++++++++++
>>>>  5 files changed, 333 insertions(+), 109 deletions(-)
>>>>  create mode 100644 libavcodec/x86/mdct15.asm
>>>>  create mode 100644 libavcodec/x86/mdct15_init.c
>>>
>>>
>>> seems to fail to build here:
>>>
>>> libavcodec/x86/mdct15.asm:116: error: invalid combination of opcode and
>>> operands
>>> libavcodec/x86/mdct15.asm:117: error: invalid combination of opcode and
>>> operands
>>> libavcodec/x86/mdct15.asm:118: error: invalid combination of opcode and
>>> operands
>>> make: *** [libavcodec/x86/mdct15.o] Error 1
>>>
>>> X86ASM=nasm
>>>
>>> nasm -v
>>> NASM version 2.10.09 compiled on Dec 29 2013
>>
>> Please update your software sometimes, its healthy.
> 
> Actually, its the opposit for ffmpeg in that case.
> 
> Most developers probably use the latests nasm.
> If i update mine too, we would not test with older as frequently
> -> code breaking with older nasm would get in -> git would be more
> often broken on user systems, ...
> 
> its not hard for me to update it at all, i just think its better if
> someone (who doesnt need latest) keeps testing with a old one

I have to agree with this. Your old nasm in conjunction with a recent
enough yasm in netbsd revealed that the fallback meant for old nasm
wasn't really working as intended.

In any case, people writing x86 assembly should at the very least try to
assemble with newest available and oldest supported nasm and yasm before
submitting.


More information about the ffmpeg-devel mailing list