ffmpeg/libavutil/x86
Dale Curtis 50e30d9bb7 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>
2017-10-25 21:50:37 +02:00
..
Makefile build: Generalize yasm/nasm-related variable names 2017-06-21 17:00:29 -03:00
asm.h
bswap.h
cpu.c avutil/cpu: split flag checks per arch in av_cpu_max_align() 2017-09-27 23:10:09 -03:00
cpu.h
cpuid.asm
emms.asm
emms.h
fixed_dsp.asm
fixed_dsp_init.c
float_dsp.asm x86/float_dsp: remove usage of integer instructions 2017-05-12 23:34:49 -03:00
float_dsp_init.c x86/float_dsp: add ff_vector_fmul_reverse_avx2 2017-04-11 21:35:35 -03:00
imgutils.asm
imgutils_init.c
intmath.h Don't use _tzcnt instrinics with clang for windows w/o BMI. 2017-10-25 21:50:37 +02:00
intreadwrite.h
lls.asm
lls_init.c
pixelutils.asm
pixelutils.h
pixelutils_init.c
timer.h
w64xmmtest.h
x86inc.asm Merge commit '7abdd026df6a9a52d07d8174505b33cc89db7bf6' 2017-09-26 18:48:06 -03:00
x86util.asm Merge commit '994c4bc10751e39c7ed9f67ffd0c0dea5223daf2' 2017-10-21 12:15:57 -03:00