280e321e52
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 8241d51f70
, 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 <allan.jensen@qt.io>
63 lines
1.9 KiB
Plaintext
63 lines
1.9 KiB
Plaintext
#
|
|
# qmake configuration for win32-icc
|
|
#
|
|
# Written for Intel C++
|
|
#
|
|
|
|
# Use the Visual Studio configuration
|
|
|
|
include(../common/msvc-desktop.conf)
|
|
|
|
# Now override with the Intel compiler settings
|
|
|
|
QMAKE_COMPILER += intel_icl # icl pretends to be msvc
|
|
|
|
QMAKE_CC = icl
|
|
QMAKE_CFLAGS = -nologo -Zm200 /Qprec /Qwd1744,1738,809,3373
|
|
QMAKE_CFLAGS_WARN_ON = -W3 /Qwd673
|
|
QMAKE_CFLAGS_WARN_OFF = -W0 /Qwd673
|
|
QMAKE_CFLAGS_DEBUG = -Zi -MDd -Od
|
|
QMAKE_CFLAGS_LTCG = -Qipo
|
|
QMAKE_CFLAGS_DISABLE_LTCG = -Qno-ipo
|
|
QMAKE_CFLAGS_SSE2 = -QxSSE2
|
|
QMAKE_CFLAGS_SSE3 = -QxSSE3
|
|
QMAKE_CFLAGS_SSSE3 = -QxSSSE3
|
|
QMAKE_CFLAGS_SSE4_1 = -QxSSE4.1
|
|
QMAKE_CFLAGS_SSE4_2 = -QxSSE4.2
|
|
QMAKE_CFLAGS_AVX = -QxAVX
|
|
QMAKE_CFLAGS_AVX2 = -QxCORE-AVX2
|
|
QMAKE_CFLAGS_AVX512F += -QxCOMMON-AVX512
|
|
QMAKE_CFLAGS_AVX512CD += -QxCOMMON-AVX512
|
|
QMAKE_CFLAGS_AVX512ER += -QxMIC-AVX512
|
|
QMAKE_CFLAGS_AVX512PF += -QxMIC-AVX512
|
|
QMAKE_CFLAGS_AVX512DQ += -QxCORE-AVX512
|
|
QMAKE_CFLAGS_AVX512BW += -QxCORE-AVX512
|
|
QMAKE_CFLAGS_AVX512VL += -QxCORE-AVX512
|
|
QMAKE_CFLAGS_F16C = $$QMAKE_CFLAGS_AVX2
|
|
|
|
QMAKE_CXX = $$QMAKE_CC
|
|
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS /Zc:forScope
|
|
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
|
|
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
|
|
QMAKE_CXXFLAGS_CXX11 = -Qstd=c++11
|
|
# ICC supports the following but Qt won't compile
|
|
#QMAKE_CXXFLAGS_CXX14 = -Qstd=c++14
|
|
#QMAKE_CXXFLAGS_CXX1Z = -Qstd=c++1z
|
|
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
|
|
QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG
|
|
|
|
QMAKE_LINK = xilink
|
|
QMAKE_LFLAGS = /NOLOGO
|
|
QMAKE_LFLAGS_RELEASE =
|
|
QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO =
|
|
QMAKE_LFLAGS_DEBUG = /DEBUG
|
|
QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
|
|
|
|
QMAKE_LIB = xilib /NOLOGO
|
|
|
|
DSP_EXTENSION = .dsp
|
|
|
|
include(../common/windows-gles.conf)
|
|
|
|
load(qt_config)
|