diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2017-12-20 08:39:52 -0800 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-12-21 15:51:08 +0000 |
commit | aad0c8dda14f014f1aa221e03f5a3f4257442854 (patch) | |
tree | 803c3db32324453e4606fc2e056f803221ae4a01 /src/corelib | |
parent | 309169afd9a500fb8c4e95dab3a7e0fb53e5d86b (diff) |
Fix build with ICC: it miscompiles the F16C intrinsics
By not actually making them intrinsic, leading to linker errors:
/home/qt/work/qt/qtbase/src/corelib/global/qfloat16_f16c.c:61: undefined reference to `_mm256_cvtps_ph'
/home/qt/work/qt/qtbase/src/corelib/global/qfloat16_f16c.c:76: undefined reference to `_mm256_cvtph_ps'
I had the workaround applied, but only for "intel_icl", the qmake config
for the Intel compiler compatible with MS cl.exe options. The one for
compatibility with Unix cc (intel_icc) was missing.
Task-number: QTBUG-65367
Change-Id: I39332e0a867442d58082fffd15020e4838b6a01d
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/global/global.pri | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/corelib/global/global.pri b/src/corelib/global/global.pri index 20d010a041..a878a83bcb 100644 --- a/src/corelib/global/global.pri +++ b/src/corelib/global/global.pri @@ -39,7 +39,7 @@ SOURCES += \ global/qrandom.cpp \ global/qhooks.cpp -# Only add global/qfloat16_f16.c if qfloat16.cpp can't #include it. +# Only add global/qfloat16_f16c.c if qfloat16.cpp can't #include it. # Any compiler: if it is already generating F16C code, let qfloat16.cpp do it # Clang: ICE if not generating F16C code, so use qfloat16_f16c.c # ICC: miscompiles if not generating F16C code, so use qfloat16_f16c.c @@ -48,7 +48,7 @@ SOURCES += \ # MSVC: otherwise, it generates poorly-performing code, so use qfloat16_f16c.c contains(QT_CPU_FEATURES.$$QT_ARCH, f16c): \ f16c_cxx = true -else: clang|intel_icl: \ +else: clang|intel_icl|intel_icc: \ f16c_cxx = false else: gcc:f16c:x86SimdAlways: \ f16c_cxx = true |