mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-28 20:53:54 +02:00
a05f22eaf3
x64 always has MMX, MMXEXT, SSE and SSE2 and this means
that some functions for MMX, MMXEXT, SSE and 3dnow are always
overridden by other functions (unless one e.g. explicitly
disables SSE2). So given that the only systems that
benefit from these functions are truely ancient 32bit x86s
they are removed.
Moreover, some of the removed code was buggy/not bitexact
and lead to failures involving the f32le and f32be versions of
gray, gbrp and gbrap on x86-32 when SSE2 was not disabled.
See e.g.
https://fate.ffmpeg.org/report.cgi?time=20220609221253&slot=x86_32-debian-kfreebsd-gcc-4.4-cpuflags-mmx
Notice that yuv2yuvX_mmx is not removed, because it is used
by SSE3 and AVX2 as fallback in case of unaligned data and
also for tail processing. I don't know why yuv2yuvX_mmxext
isn't being used for this; an earlier version [1] of
|
||
---|---|---|
.. | ||
hscale_fast_bilinear_simd.c | ||
input.asm | ||
Makefile | ||
output.asm | ||
rgb2rgb_template.c | ||
rgb2rgb.c | ||
rgb_2_rgb.asm | ||
scale_avx2.asm | ||
scale.asm | ||
swscale_template.c | ||
swscale.c | ||
w64xmmtest.c | ||
yuv2rgb_template.c | ||
yuv2rgb.c | ||
yuv2yuvX.asm | ||
yuv_2_rgb.asm |