From 37352b23a90e9b4550b5a5cef175f2a77598faa0 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 5 Feb 2019 13:55:14 -0800 Subject: 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 --- config.tests/x86_simd/main.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'config.tests/x86_simd/main.cpp') diff --git a/config.tests/x86_simd/main.cpp b/config.tests/x86_simd/main.cpp index 8120cb9d3f..4fac13973a 100644 --- a/config.tests/x86_simd/main.cpp +++ b/config.tests/x86_simd/main.cpp @@ -144,6 +144,9 @@ attribute_target("sha") void test_shani() #endif #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() { __m256d a = _mm256_setzero_pd(); -- cgit v1.2.3