mirror of
https://github.com/redis/redis.git
synced 2026-04-21 03:01:35 -04:00
reworded the AVX error message when compiling xxh_x86dispatch.c
Suggest the XXH_X86DISPATCH_ALLOW_AVX solution upfront.
This commit is contained in:
@@ -60,29 +60,28 @@ extern "C" {
|
|||||||
* @def XXH_X86DISPATCH_ALLOW_AVX
|
* @def XXH_X86DISPATCH_ALLOW_AVX
|
||||||
* @brief Disables the AVX sanity check.
|
* @brief Disables the AVX sanity check.
|
||||||
*
|
*
|
||||||
* Don't compile xxh_x86dispatch.c with options like `-mavx*`, `-march=native`,
|
* xxh_x86dispatch.c is intended to be compiled for the minimum target, and
|
||||||
* or `/arch:AVX*`. It is intended to be compiled for the minimum target, and
|
|
||||||
* it selectively enables SSE2, AVX2, and AVX512 when it is needed.
|
* it selectively enables SSE2, AVX2, and AVX512 when it is needed.
|
||||||
*
|
*
|
||||||
* Using this option _globally_ allows this feature, and therefore makes it
|
* Compiling with options like `-mavx*`, `-march=native`, or `/arch:AVX*`
|
||||||
|
* _globally_ will always enable this feature, and therefore makes it
|
||||||
* undefined behavior to execute on any CPU without said feature.
|
* undefined behavior to execute on any CPU without said feature.
|
||||||
*
|
*
|
||||||
* Even if the source code isn't directly using AVX intrinsics in a function,
|
* Even if the source code isn't directly using AVX intrinsics in a function,
|
||||||
* the compiler can still generate AVX code from autovectorization and by
|
* the compiler can still generate AVX code from autovectorization and by
|
||||||
* "upgrading" SSE2 intrinsics to use the VEX prefixes (a.k.a. AVX128).
|
* "upgrading" SSE2 intrinsics to use the VEX prefixes (a.k.a. AVX128).
|
||||||
*
|
*
|
||||||
* Use the same flags that you use to compile the rest of the program; this
|
* Define XXH_X86DISPATCH_ALLOW_AVX to ignore this check,
|
||||||
* file will safely generate SSE2, AVX2, and AVX512 without these flags.
|
* thus accepting that the produced binary will not work correctly
|
||||||
*
|
* on any CPU with less features than the ones stated at compilation time.
|
||||||
* Define XXH_X86DISPATCH_ALLOW_AVX to ignore this check, and feel free to open
|
|
||||||
* an issue if there is a target in the future where AVX is a default feature.
|
|
||||||
*/
|
*/
|
||||||
#ifdef XXH_DOXYGEN
|
#ifdef XXH_DOXYGEN
|
||||||
# define XXH_X86DISPATCH_ALLOW_AVX
|
# define XXH_X86DISPATCH_ALLOW_AVX
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__AVX__) && !defined(XXH_X86DISPATCH_ALLOW_AVX)
|
#if defined(__AVX__) && !defined(XXH_X86DISPATCH_ALLOW_AVX)
|
||||||
# error "Do not compile xxh_x86dispatch.c with AVX enabled! See the comment above."
|
# error "Error: if xxh_x86dispatch.c is compiled with AVX enabled, the resulting binary will crash on sse2-only cpus !! " \
|
||||||
|
"If you nonetheless want to do that, please enable the XXH_X86DISPATCH_ALLOW_AVX build variable"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __has_include
|
#ifdef __has_include
|
||||||
|
|||||||
Reference in New Issue
Block a user