mirror of https://git.ffmpeg.org/ffmpeg.git
Don't use _tzcnt instrinics with clang for windows w/o BMI.
Technically _tzcnt* intrinsics are only available when the BMI instruction set is present. However the instruction encoding degrades to "rep bsf" on older processors. Clang for Windows debatably restricts the _tzcnt* instrinics behind the __BMI__ architecture define, so check for its presence or exclude the usage of these intrinics when clang is present. See also: https://ffmpeg.org/pipermail/ffmpeg-devel/2015-November/183404.html https://bugs.llvm.org/show_bug.cgi?id=30506 http://lists.llvm.org/pipermail/cfe-dev/2016-October/051034.html Signed-off-by: Dale Curtis <dalecurtis@chromium.org> Reviewed-by: Matt Oliver <protogonoi@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
953d55f443
commit
50e30d9bb7
|
@ -47,7 +47,8 @@ static av_always_inline av_const int ff_log2_x86(unsigned int v)
|
|||
# endif
|
||||
# define ff_log2_16bit av_log2
|
||||
|
||||
#if defined(__INTEL_COMPILER) || (defined(_MSC_VER) && (_MSC_VER >= 1700))
|
||||
#if defined(__INTEL_COMPILER) || (defined(_MSC_VER) && (_MSC_VER >= 1700) && \
|
||||
(defined(__BMI__) || !defined(__clang__)))
|
||||
# define ff_ctz(v) _tzcnt_u32(v)
|
||||
|
||||
# if ARCH_X86_64
|
||||
|
|
Loading…
Reference in New Issue