mirror of
https://github.com/opelly27/Stockfish.git
synced 2026-05-20 05:07:46 +00:00
Skip the alignment bug workaround for Clang
Clang-10.0.0 poses as gcc-4.2: $ clang++ -E -dM - </dev/null | grep GNUC This means that Clang is using the workaround for the alignment bug of gcc-8 even though it does not have the bug (as far as I know). This patch should speed up AVX2 and AVX512 compiles on Windows (when using Clang), because it disables (for Clang) the gcc workaround we had introduced in this commit: https://github.com/official-stockfish/Stockfish/commit/875183b310a8249922c2155e82cb4cecfae2097e closes https://github.com/official-stockfish/Stockfish/pull/3050 No functional change.
This commit is contained in:
committed by
Stéphane Nicolet
parent
5f1843c9cb
commit
cc9d503dde
@@ -47,7 +47,7 @@
|
|||||||
// compiled with older g++ crashes because the output memory is not aligned
|
// compiled with older g++ crashes because the output memory is not aligned
|
||||||
// even though alignas is specified.
|
// even though alignas is specified.
|
||||||
#if defined(USE_AVX2)
|
#if defined(USE_AVX2)
|
||||||
#if defined(__GNUC__ ) && (__GNUC__ < 9) && defined(_WIN32)
|
#if defined(__GNUC__ ) && (__GNUC__ < 9) && defined(_WIN32) && !defined(__clang__)
|
||||||
#define _mm256_loadA_si256 _mm256_loadu_si256
|
#define _mm256_loadA_si256 _mm256_loadu_si256
|
||||||
#define _mm256_storeA_si256 _mm256_storeu_si256
|
#define _mm256_storeA_si256 _mm256_storeu_si256
|
||||||
#else
|
#else
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(USE_AVX512)
|
#if defined(USE_AVX512)
|
||||||
#if defined(__GNUC__ ) && (__GNUC__ < 9) && defined(_WIN32)
|
#if defined(__GNUC__ ) && (__GNUC__ < 9) && defined(_WIN32) && !defined(__clang__)
|
||||||
#define _mm512_loadA_si512 _mm512_loadu_si512
|
#define _mm512_loadA_si512 _mm512_loadu_si512
|
||||||
#define _mm512_storeA_si512 _mm512_storeu_si512
|
#define _mm512_storeA_si512 _mm512_storeu_si512
|
||||||
#else
|
#else
|
||||||
|
|||||||
Reference in New Issue
Block a user