[FFmpeg-devel] [PATCH 2/2] configure: Enable GCC vectorization on ≥4.9

Stephen Hutchinson qyot27 at gmail.com
Sat May 7 04:46:14 CEST 2016

On 5/6/2016 6:08 AM, Hendrik Leppkes wrote:
> On Tue, Feb 9, 2016 at 1:28 AM, Timothy Gu <timothygu99 at gmail.com> wrote:
>> On Sun, Jan 31, 2016 at 3:38 PM Timothy Gu <timothygu99 at gmail.com> wrote:
>>> On Sat, Jan 30, 2016 at 07:27:22PM +0000, Derek Buitenhuis wrote:
>>>> On 1/30/2016 7:15 PM, Timothy Gu wrote:
>>>>> FATE passes here on a x86-64 machine with both GCC 4.9.2 and 5.3.1.
>>>> Perhaps this should be restricted to x86?
>>> Fair enough.
>> Pushed.
> Just to document it, this has caused build breakage in various
> scenarios, even in GCC 5.3 (6.1 not tested).
> The latest reported on IRC just today here:
> libavcodec/sbrdsp.c: In function 'sbr_neg_odd_64_c':
> libavcodec/sbrdsp.c:47:13: internal compiler error: in
> vect_analyze_data_ref_accesses, at tree-vect-data-refs.c:2596
>   static void sbr_neg_odd_64_c(float *x)
> There are various other cases which usually involve inline asm when
> building with SIMD (ie. --cpu=host) and the optimizer running out of
> registers, for example:
> libavcodec/x86/cabac.h:192:5: error: 'asm' operand has impossible constraints
> IMHO this feature is not quite ready to be enabled unconditionally in
> our code base, and we should re-evaluate this change.
> - Hendrik
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

It may also be miscompiling the code on i686 (or specifically MinGW-w64 
builds on i686), since I was encountering segfaults at random at 
startup* in builds of mpv linked against affected FFmpeg builds, but not 
in ffmpeg.exe itself.  Disabling tree vectorization in extra-cflags 
resolved it.

It might work seemingly correctly the first couple invocations,
then start crashing on #4 onward.  But then at a different
time, it would always fail, or work a different number of
times before failing. That was on Silvermont* with 2 GBs of RAM;
on my old Pentium III and 512 MBs of RAM, it seemed to always

*still 32-bit Windows, though.

More information about the ffmpeg-devel mailing list