]> git.sesse.net Git - ffmpeg/commit
Don't use _tzcnt instrinics with clang for windows w/o BMI.
authorDale Curtis <dalecurtis@chromium.org>
Tue, 24 Oct 2017 20:03:59 +0000 (13:03 -0700)
committerMichael Niedermayer <michael@niedermayer.cc>
Wed, 25 Oct 2017 19:50:37 +0000 (21:50 +0200)
commit50e30d9bb71e1dff27be16c264fac90e362b9896
tree74a3a214316ef50b591d85f4524d900f8fc67c5d
parent953d55f4439ba3a302f9dcc83f8fe9577c22b804
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>
libavutil/x86/intmath.h