So "immintrin.h" is defined as "the header you #include for AVX",
not as
"the header you #include to get current and future intel features"?
What difference does it make?
If AMD or another X86 vendor supports AVX some day, we need a
header for
AVX. This header should be AVX only, not "random stuff intel has
added in
the last 10 years".
Please take a look at what in gcc trunk today. The current structure
supports
it with a 2 line change.
This is exactly the situation with the xmmintrin.h headers. What
problem
are you trying to solve by deviating from the standard and
established
practice?
The standard and established practice is to add a new
Xmmintrin.h, which is immintrin.h, for a new ISA extension.