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.
If your answer to the previous question is "immintrin.h is the
header for
AVX, and when we add new [non-"AVX 1"] stuff to the ISA it won't go
in
immintrin.h" then I have no objection to adding immintrin.h.
Let me clarify a few things:
1. We didn't add a new file. We just renamed gmmintrin.h to
immintrin.h.
2. Including <immintrin.h> itself doesn't enable any ISA extensions.
3. You need to use -mXXX to get the XXX extension from
<immintrin.h>. It applies to -mmmx, -msse, ... -mavx.