__m128 data type incompatible with Microsoft definition

The __m128 data type as defined in xmmintrin.h for use with the Streaming SIMD Extensions instructions intrinsics is defined as a union in Microsoft (MS) header, while it is supported as a struct in the Intel® Parallel Composer or Intel® C++ Compiler for Windows* (icl) resulting in incompatibility with MS.

Code containing MS definition when compiled with Composer or icl will result in compilation errors because, the __m128 data type is defined as either a four packed single-precision floating-point values or one scalar single-precision number.  As a work-around, if you have code that uses MS definition of a union, then the file(s) containing such code will have to be compiled with MS compiler.

In the meantime, a feature request to support the union definition for compatibility with MS is in place, and this article will be updated as and when a release containing the support for MS compatibility is out in the very near future.

For any questions or further clarification on this incompatibility with MS, please feel free to post on any of the following forums:
         

/en-us/forums/intel-parallel-studio/

/en-us/forums/intel-c-compiler/


      
Для получения подробной информации о возможностях оптимизации компилятора обратитесь к нашему Уведомлению об оптимизации.
Возможность комментирования русскоязычного контента была отключена. Узнать подробнее.