Merge pull request #4264 from pps83/dev-static-bmi2

Move STATIC_BMI2 define to portability_macros.h
This commit is contained in:
Yann Collet
2025-01-30 11:11:51 -08:00
committed by GitHub
2 changed files with 13 additions and 15 deletions
-15
View File
@@ -207,21 +207,6 @@
# pragma warning(disable : 4324) /* disable: C4324: padded structure */
#endif
/* Like DYNAMIC_BMI2 but for compile time determination of BMI2 support */
#ifndef STATIC_BMI2
# if defined(_MSC_VER)
# ifdef __AVX2__ /* MSVC does not have a BMI2 specific flag, but every CPU that supports AVX2 also supports BMI2 */
# define STATIC_BMI2 1
# endif
# elif defined(__BMI2__)
# define STATIC_BMI2 1
# endif
#endif
#ifndef STATIC_BMI2
# define STATIC_BMI2 0
#endif
/* compile time determination of SIMD support */
#if !defined(ZSTD_NO_INTRINSICS)
# if defined(__AVX2__)
+13
View File
@@ -74,6 +74,19 @@
# define ZSTD_HIDE_ASM_FUNCTION(func)
#endif
/* Compile time determination of BMI2 support */
#ifndef STATIC_BMI2
# if defined(__BMI2__)
# define STATIC_BMI2 1
# elif defined(_MSC_VER) && defined(__AVX2__)
# define STATIC_BMI2 1 /* MSVC does not have a BMI2 specific flag, but every CPU that supports AVX2 also supports BMI2 */
# endif
#endif
#ifndef STATIC_BMI2
# define STATIC_BMI2 0
#endif
/* Enable runtime BMI2 dispatch based on the CPU.
* Enabled for clang & gcc >=4.8 on x86 when BMI2 isn't enabled by default.
*/