path: root/mkspecs/linux-icc/qmake.conf
diff options
authorThiago Macieira <>2017-04-03 16:05:18 -0700
committerThiago Macieira <>2017-04-06 04:15:07 +0000
commit280e321e52fd4e86545f3f0d4bd4e047786a897e (patch)
treeae73c71edf13ba80dd5355cd05ca960668ed33e1 /mkspecs/linux-icc/qmake.conf
parentc817b33b45f2886c89d8a768c61ffffaa46f67a4 (diff)
Fix detection of F16C for the Intel compiler (again) and Visual Studio
Neither the Intel compiler nor Visual C++ have a dedicated switch to enable F16C support, like GCC and Clang do. So we used the AVX switch for that in commit 8241d51f7049d48912ce25fbd49ef4d22c58e340, as it was the closest, lowest denominator. That was incorrect and insufficient. The Intel compiler silently miscompiles the intrinsics with -xAVX, making calls to out-of-line functions like _mm_cvtps_ph, which don't exist. So we actually have to use AVX2 support to generate correct code. That might be a problem later, since Ivy Bridge supports F16C but not AVX2. Visual C++ is able to generate F16C code with just -arch:AVX. Either way, since there's no dedicated command-line switch, there's also no dedicated preprocessor macro. We're using __AVX2__ for both compilers, as that's a sufficient condition to indicate a processor that supports F16C. Change-Id: I27b55fdf514247549455fffd14b205b8d8b86da7 Reviewed-by: Allan Sandfeld Jensen <>
Diffstat (limited to 'mkspecs/linux-icc/qmake.conf')
1 files changed, 1 insertions, 1 deletions
diff --git a/mkspecs/linux-icc/qmake.conf b/mkspecs/linux-icc/qmake.conf
index a90536470b..582420ffee 100644
--- a/mkspecs/linux-icc/qmake.conf
+++ b/mkspecs/linux-icc/qmake.conf
@@ -42,7 +42,7 @@ QMAKE_CFLAGS_AVX512PF += -xMIC-AVX512
QMAKE_CXX = icpc