imp files for Intel intrinsics
Rules are based on the files' error messages when included directly. These differ for different compilers, hence separate files for gcc and clang. Newer compiler versions can include additional header files for intrinsics, hence version specification in filenames - mostly an issue for forwards compatibility. Backwards compatibility should work out for most cases. Rules for backwards compatibility to some gcc versions included (tested versions listed in the file). When two possible public headers are suggested, both are allowed and it's left up to the iwyu standard behaviour which to suggest.
This commit is contained in:
parent
615507a3cd
commit
e8066f0032
|
@ -0,0 +1,59 @@
|
|||
# These mappings based on #error pragmas in the header files below in clang 6.0.0
|
||||
[
|
||||
{ include: ["<adxintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx2intrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512bitalgintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512bwintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512cdintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512dqintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512erintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512fintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512ifmaintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512ifmavlintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512pfintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vbmi2intrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vbmiintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vbmivlintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vlbitalgintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vlbwintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vlcdintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vldqintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vlintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vlvbmi2intrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vlvnniintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vnniintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vpopcntdqintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vpopcntdqvlintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avxintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<bmi2intrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<bmiintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<cetintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<clflushoptintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<clwbintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<clzerointrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<f16cintrin.h>", private, "<emmintrin.h>", public ] },
|
||||
{ include: ["<fma4intrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<fmaintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<fxsrintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<gfniintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<ia32intrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<lwpintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<lzcntintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<mwaitxintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<pkuintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<rdseedintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<rtmintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<shaintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<tbmintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<vaesintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<vpclmulqdqintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<xopintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<xsavecintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<xsaveintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<xsaveoptintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<xsavesintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<xtestintrin.h>", private, "<immintrin.h>", public ] },
|
||||
# files that list two possible public headers
|
||||
{ include: ["<prfchwintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<prfchwintrin.h>", private, "<mm3dnow.h>", public ] },
|
||||
]
|
|
@ -0,0 +1,60 @@
|
|||
# These mappings based on #error pragmas in the header files below in gcc 8.1.0
|
||||
# backwards compatibility tested on gcc 4.8.4, 4.9.3, 6.2.0, 7.3.0
|
||||
[
|
||||
{ include: ["<adxintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<avx2intrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx5124fmapsintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<avx5124vnniwintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<avx512bitalgintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<avx512bwintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512cdintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512dqintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512erintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512fintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512ifmaintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512ifmavlintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512pfintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vbmi2intrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vbmi2vlintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vbmiintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vbmivlintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vlbwintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vldqintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vlintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vnniintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vnnivlintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avx512vpopcntdqintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<avx512vpopcntdqvlintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<avxintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<bmi2intrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<bmiintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<cetintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<clflushoptintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<clwbintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<fma4intrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<fmaintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<gfniintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<ia32intrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<lwpintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<lzcntintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<movdirintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<pconfigintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<pkuintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<rdseedintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<rtmintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<shaintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<tbmintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<vpclmulqdqintrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<wbnoinvdintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<xopintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<xsavecintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<xsavesintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<xtestintrin.h>", private, "<immintrin.h>", public ] },
|
||||
# files that list two possible public headers
|
||||
{ include: ["<f16intrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<f16intrin.h>", private, "<immintrin.h>", public ] },
|
||||
{ include: ["<prfchwintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
{ include: ["<prfchwintrin.h>", private, "<mm3dnow.h>", public ] },
|
||||
# one rule for backwards compatibility with gcc 6.1 and 6.2
|
||||
{ include: ["<pcommitintrin.h>", private, "<x86intrin.h>", public ] },
|
||||
]
|
Loading…
Reference in New Issue