Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-69252

inlining failed in call to always_inline with LTO in x86 build

    XMLWordPrintable

Details

    • Bug
    • Resolution: Out of scope
    • P2: Important
    • None
    • 5.11
    • Core: Other
    • None
    • Linux, GCC 7.3.0

    Description

      Compilation fails when Link Time Code Generation (-ltcg) is used in a linux x86 build (on a x64 host).

      Configured with:

      ./configure -opensource -confirm-license -xplatform linux-g++-32 -ltcg -release -no-opengl
      g++ -c -include .pch/Qt5Core -m32 -pipe -msse2 -mfpmath=sse -O3 -std=c++1z -fvisibility=hidden -fvisibility-inlines-hidden -flto -fno-fat-lto-objects -Wall -W -Wvla -Wdate-time -Wshift-overflow=2 -Wduplicated-cond -Wno-stringop-overflow -D_REENTRANT -fPIC -DQT_NO_USING_NAMESPACE -DQT_NO_FOREACH -DQFLOAT16_INCLUDE_FAST -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_CORE_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DPCRE2_CODE_UNIT_WIDTH=16 -I. -I../3rdparty/zlib/src -Iglobal -I../3rdparty/harfbuzz/src -I../3rdparty/md5 -I../3rdparty/md4 -I../3rdparty/sha3 -I../3rdparty/double-conversion/include -I../3rdparty/double-conversion/include/double-conversion -I../3rdparty/forkfd -I../../include -I../../include/QtCore -I../../include/QtCore/5.11.1 -I../../include/QtCore/5.11.1/QtCore -I.moc -I.tracegen -I../3rdparty/pcre2/src -I../../mkspecs/linux-g++-32 -o .obj/qfloat16.o global/qfloat16.cpp
      In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:29:0,
      from ../../include/QtCore/5.11.1/QtCore/private/../../../../../src/corelib/tools/qsimd_p.h:191,
      from ../../include/QtCore/5.11.1/QtCore/private/qsimd_p.h:1,
      from global/qfloat16.cpp:41:
      global/qfloat16_f16c.c: In function ‘qFloatToFloat16_fast’:
      /usr/lib/gcc/x86_64-linux-gnu/7/include/xmmintrin.h:932:1: error: inlining failed in call to always_inline ‘_mm_loadu_ps(float const*)’: target specific option mismatch
      _mm_loadu_ps (float const *__P)
      ^~~~~~~~~~~~
      In file included from global/qfloat16.cpp:214:0:
      global/qfloat16_f16c.c:64:25: note: called from here
      _mm_storel_epi64((__m128i *)(out + i), _mm_cvtps_ph(_mm_loadu_ps(in + i), 0));
      ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:29:0,
      from ../../include/QtCore/5.11.1/QtCore/private/../../../../../src/corelib/tools/qsimd_p.h:191,
      from ../../include/QtCore/5.11.1/QtCore/private/qsimd_p.h:1,
      from global/qfloat16.cpp:41:
      /usr/lib/gcc/x86_64-linux-gnu/7/include/xmmintrin.h:885:1: error: inlining failed in call to always_inline ‘_mm_set_ss(float)’: target specific option mismatch
      _mm_set_ss (float __F)
      ^~~~~~~~~~
      In file included from global/qfloat16.cpp:214:0:
      global/qfloat16_f16c.c:69:35: note: called from here
      out[i] = _mm_extract_epi16(_mm_cvtps_ph(_mm_set_ss(in[i]), 0), 0);
      ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      Makefile:12013: recipe for target '.obj/qfloat16.o' failed
      make: *** [.obj/qfloat16.o] Error 1
      

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              thiago Thiago Macieira
              sapiippo Samuli Piippo
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes