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

Reply via email to