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

Make it possible for qnumeric.h not to include <intrin.h> (makes it impossible to use SIMD Everywhere)

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Fixed
    • P3: Somewhat important
    • 6.8.2, 6.9.0 FF
    • 6.8.0
    • Core: Other
    • None
    • MSVC; Integrity

    • Integrity, Windows
    • 16c5398aa (dev), ef1b24558 (6.8)

    Description

      qnumeric.h which is always included by QtCore, includes intrin.h for MSVC compilers and arm64_ghs.h for Integrity.

      Unfortunately this renders it impossible to use SIMD Everywhere (SIMDe) because it uses its own headers to define the SIMD instructions and they conflict with those defined by the standard headers above.

      This should be easy to resolve, simply move the use of the AVX intrinsics that are used for qAddOverflow and qMulOverflow into the source code for qnumeric.cpp and include the platform specific headers into the private header used by qnumeric.cpp

      I propose to create a fix on the dev branch for this issue.

      Attachments

        For Gerrit Dashboard: QTBUG-131757
        # Subject Branch Project Status CR V

        Activity

          People

            perdrix David Partridge
            perdrix David Partridge
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes