These changes help us fix some issues related to C++ modules, and will help us diverge less from trunk in our SDK headers.
Create new file _denormals.h to contain duplicate definitions from pmmintrin.h (and xmmintrin.h, actually our version only, which also needed the denormal definitions).
Change pmmintrin.h and xmmintrin.h to include _denormals.h and delete duplicate definitions.
Change mm_malloc.h to not include stdlib.h and size_t, as this creates a circular module reference. Locally declare malloc and free with a size_t equivalent type, and replace other size_t references.
Create new file _gnu_va_list.h to define builtin_va_list. We had duplicate definitions of this locally, so we broke it out into a common header.
Change stdarg.h to include _gnu_va_list.h and delete the definition of builtin_va_list there.
The intended layering is that Clang's _Builtin_intrinsics module is a layer on top of the C standard library module. Does that not work in your setup? (Does the module defining <stdlib.h> contain a header that includes these intrinsics headers?)