Skip Navigation Links | |
Exit Print View | |
Oracle Solaris Studio 12.3: C++ User's Guide Oracle Solaris Studio 12.3 Information Library |
3. Using the C++ Compiler Options
4.1.1 Compatibility with Microsoft Windows
4.3 Overriding With Less Restrictive Virtual Functions
4.4 Making Forward Declarations of enum Types and Variables
4.5 Using Incomplete enum Types
4.6 Using an enum Name as a Scope Qualifier
4.7 Using Anonymous struct Declarations
4.8 Passing the Address of an Anonymous Class Instance
4.9 Declaring a Static Namespace-Scope Function as a Class Friend
4.10 Using the Predefined __func__ Symbol for Function Name
4.11.1 __packed__ Attribute Details
6. Creating and Using Templates
9. Improving Program Performance
10. Building Multithreaded Programs
12. Using the C++ Standard Library
Prototypes declared in the mmintrin.h header file support the Intel MMX intrinsics, and are provided for compatibility.
Specific header files provide prototypes for additional extended platform intrinsics, as shown in the following table.
Table 4-2 Header Files
|
Each header file includes the prototypes before it in the table. For example, on an SSE4.1 platform, including smmintrin.h in the user program declares the intrinsic names supporting SSE4.1, SSSE3, SSE3, SSE2, SSE, and MMX platforms because smmintrin.h includes tmmintrin.h, which includes pmmintrin.h, and so on down to mmintrin.h.
Note that ammintrin.h is published by AMD and is not included in any of the Intel intrinsic headers. ammintrin.h includes pmmintrin.h, so by including ammintrin.h, all AMD SSE4A as well as Intel SSE3, SSE2, SSE and MMX functions are declared.
Alternatively, the single Oracle Solaris Studio header file sunmedia_intrin.h includes declarations from all the Intel header files, but does not include the AMD header file ammintrin.h.
Be aware that code deployed on a host platform (for example, SSE3) that calls any super-set intrinsic function (for example, for AVX) will not load on Oracle Solaris platforms and could fail with undefined behavior or incorrect results on Linux platforms. Deploy programs that call these platform-specific intrinsics only on the platforms that support them.
These are system header files and should appear in your program as shown in this example:
#include <nmmintrin.h>
Refer to the latest Intel C++ compiler reference guides for details.