# 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"] },
]
