Skip to content
  • Thiago Macieira's avatar
    qsimd: add support for new x86 CPU features · cf63b0e1
    Thiago Macieira authored
    This adds detection for: VAES, GFNI, AVX512VBMI2, AVX512VNNI,
    AVX512BITALG, AVX512VPOPCNTDQ, AVX512_4NNIW, AVX512_4FMAPS. These
    features were found in the "Intel® Architecture Instruction Set
    Extensions and Future Features" manual, revision 30. This commit also
    adds support for RDPID (already in the main manual) and the Control-flow
    Enforcement Technology, which appears in a separate Intel paper.
    
    This new support was done by adding a new generator script so we don't
    have to maintain two tables in sync, one in qsimd.cpp with the feature
    names, and the other in qsimd_p.h.
    
    Since we now need a lot more bits, it's no longer worth keeping the two
    halves of the qt_cpu_features variable mostly similar to the main two
    CPUID results. This commit goes back to keeping things in order, like we
    used to prior to commit 6a8251a8 (Qt 5.6)
    
    At the time of this commit, GCC 8 has macros for AVX512VPOPCNTDQ,
    AVX512_4NNIW, AVX512_4FMAPS, AVX512VBMI2...
    cf63b0e1