diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2017-11-15 15:14:35 -0800 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2017-11-30 08:30:37 +0000 |
commit | ff1ffa7577ba88412daf9904bbc1e4de9e024436 (patch) | |
tree | 7e2b3cc5e7ce12990421ae82d9e40e180759f92c /mkspecs/common/msvc-version.conf | |
parent | f984c453737bde9b39f14bd5ddabcde292b667d5 (diff) |
Add support for AVX-512 intrinsics found in MSVC 2017 15.3
It seems the compiler supports /arch:AVX512 and /arch:AVX512F but none
of the other switches (and neither are documented). And when you pass
those, you also get Conflict Detection (CD), Double & Quad (DQ), Byte &
Word (BW) and Vector Length (VL), which matches the ICC switch
"-xCORE-AVX512". Unlike ICC, there doesn't seem to be an option to
enable only the common part of AVX-512.
Support for Intel Xeon Phi's current features (Exponential &
Reciprocation and Prefetch) and future ones (IFMA, VBMI, 4FMAPS, 4VNNI
and VPOPCNTDQ) seems to be missing altogether.
See https://blogs.msdn.microsoft.com/vcblog/2017/07/11/microsoft-visual-studio-2017-supports-intel-avx-512/
Change-Id: I98105cd9616b8097957db680d73eb1f86e487e6d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Diffstat (limited to 'mkspecs/common/msvc-version.conf')
-rw-r--r-- | mkspecs/common/msvc-version.conf | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/mkspecs/common/msvc-version.conf b/mkspecs/common/msvc-version.conf index 395c0535a9..9f5da91806 100644 --- a/mkspecs/common/msvc-version.conf +++ b/mkspecs/common/msvc-version.conf @@ -82,6 +82,20 @@ greaterThan(QMAKE_MSC_VER, 1909) { MSVC_VER = 15.0 COMPAT_MKSPEC = win32-msvc2017 QMAKE_CXXFLAGS += -Zc:referenceBinding + + # Only Visual Studio 2017 version 15.3 / Visual C++ 19.11 & up have support + # for AVX-512. We enable the switches anyway and let configure check if they + # work. + QMAKE_CFLAGS_AVX512F = -arch:AVX512 + QMAKE_CFLAGS_AVX512ER = -arch:AVX512 + QMAKE_CFLAGS_AVX512CD = -arch:AVX512 + QMAKE_CFLAGS_AVX512PF = -arch:AVX512 + QMAKE_CFLAGS_AVX512DQ = -arch:AVX512 + QMAKE_CFLAGS_AVX512BW = -arch:AVX512 + QMAKE_CFLAGS_AVX512VL = -arch:AVX512 + QMAKE_CFLAGS_AVX512IFMA = -arch:AVX512 + QMAKE_CFLAGS_AVX512VBMI = -arch:AVX512 + # For now permissive fails as soon as UWP API comes into play. In qtbase this # API is used in direct2d, but also in multimedia, positioning and sensors. # We can try again with a later version of Visual Studio. |