x86: Disable AVX support on 64-bit MinGW
GCC for 64-bit Windows has a bug that it fails to properly re-align the stack pointer for use with 256-bit memory addresses (AVX). Therefore, there's about a 50/50 chance that any function using AVX will have an improperly-aligned stack. In release mode, stack accesses should be rare, but in debug mode they happen frequently. Either way, this is a ticking time bomb, so we disable. Clang is not affected. 32-bit MinGW is not affected. 64-bit in other OSes with GCC are not affected. Fixes: QTBUG-73539 Change-Id: Id061f35c088044b69a15fffd1580967808f31671 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
This commit is contained in:
parent
b319d14110
commit
37352b23a9
@ -144,6 +144,9 @@ attribute_target("sha") void test_shani()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if T(AVX)
|
#if T(AVX)
|
||||||
|
# if defined(__WIN64__) && defined(__GNUC__) && !defined(__clang__)
|
||||||
|
# error "AVX support is broken in 64-bit MinGW - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49001"
|
||||||
|
# endif
|
||||||
attribute_target("avx") void test_avx()
|
attribute_target("avx") void test_avx()
|
||||||
{
|
{
|
||||||
__m256d a = _mm256_setzero_pd();
|
__m256d a = _mm256_setzero_pd();
|
||||||
|
Loading…
Reference in New Issue
Block a user