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