On Saturday, August 18, 2012, Mans Rullgard <m...@mansr.com> wrote: > GCC 4.3 and later do the right thing with the plain C code. Earlier > versions in 32-bit mode generate one extra instruction, needlessly > zeroing what would be the high half of the shifted value. At least > two gcc configurations miscompile the inline asm in some situations. > > In 64-bit mode, all gcc versions generate imul r64, r64 followed by > shr. On Intel i7 and later, this imul is faster 32-bit mul. On > older Intel and all AMD, it is slightly slower. On Atom it is much > slower. > > Considering where the FASTDIV macro is used, any overall negative > performance impact of this change should be negligible. If anyone > cares, they should file a bug against gcc and get the instruction > selection fixed. > > Signed-off-by: Mans Rullgard <m...@mansr.com> > --- > libavutil/intmath.h | 2 -- > libavutil/x86/intmath.h | 37 ------------------------------------- > 2 files changed, 39 deletions(-) > delete mode 100644 libavutil/x86/intmath.h
Confirmed that this fixes fate-vorbis-20 on NetBSD (Bugzilla #344). -- Sean McG.
_______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel