To obtain information about the features of the processor used in your computer system, use the function ippGetCpuFeatures. To obtain information about the features of the processor that are enabled for the loaded libraries, use the function ippGetEnabledCpuFeatures. Both functions are declared in the ippcore.h file. These function retrieve main processor features returned by the function CPUID.1 and store them consecutively in the mask that is returned by the function. The table below lists all CPU features that can be retrieved.
Mask Value |
Bit Name |
Supported Feature |
---|---|---|
1 |
ippCPUID_MMX |
MMX™ technology |
2 |
ippCPUID_SSE |
Intel® Streaming SIMD Extensions |
4 |
ippCPUID_SSE2 |
Intel® Streaming SIMD Extensions 2 |
8 |
ippCPUID_SSE3 |
Intel® Streaming SIMD Extensions 3 |
16 |
ippCPUID_SSSE3 |
Intel® Supplemental Streaming SIMD Extensions 3 |
32 |
ippCPUID_MOVBE |
MOVBE instruction |
64 |
ippCPUID_SSE41 |
Intel® Streaming SIMD Extensions 4.1 |
128 |
ippCPUID_SSE42 |
Intel® Streaming SIMD Extensions 4.2 |
256 |
ippCPUID_AVX |
Intel® Advanced Vector Extensions (Intel® AVX) instruction set |
512 |
ippAVX_ENABLEDBYOS |
The operating system supports Intel® AVX |
1024 |
ippCPUID_AES |
Intel® Advanced Encryption Standard (AES) instructions set |
2048 |
ippCPUID_CLMUL |
PCLMULQDQ instruction |
To detect the processor type used in your computer system, use the function ippGetCpuType, which is declared in the ippcore.h file. It returns an appropriate IppCpuType variable value. All of the enumerated values are given in the ippdefs.h header file. For example, the return value ippCpuPII means that your system uses Intel(R) Core™ 2 Duo processor.
The following table shows possible return values of ippGetCpuType and their meaning.
Return Value |
Processor Type |
---|---|
ippCpuPP |
Intel® Pentium® processor |
ippCpuPMX |
Pentium® processor with MMX™ technology |
ippCpuPPR |
Pentium® Pro processor |
ippCpuPII |
Pentium® II processor |
ippCpuPIII |
Pentium® III processor and Pentium® III Xeon® processor |
ippCpuP4 |
Pentium® 4 processor and Intel® Xeon® processor |
ippCpuP4HT |
Pentium® 4 processor with Hyper-Threading Technology |
ippCpuP4HT2 |
Pentium® Processor with Intel® Streaming SIMD Extensions 3 |
ippCpuCentrino |
Intel® Centrino™ mobile Technology |
ippCpuCoreSolo |
Intel® Core™ Solo processor |
ippCpuCoreDuo |
Intel® Core™ Duo processor |
ippCpuITP |
Intel® Itanium® processor |
ippCpuITP2 |
Intel® Itanium® 2 processor |
ippCpuEM64T |
Intel® 64 Instruction Set Architecture (ISA) |
ippCpuC2D |
Intel® Core™ 2 Duo processor |
ippCpuC2Q |
Intel® Core™ 2 Quad processor |
ippCpuPenryn |
Intel® Core™ 2 processor with Intel® Streaming SIMD Extensions 4.1 instruction set |
ippCpuBonnell |
Intel® Atom™ processor |
ippCpuNehalem |
Intel® Core™ i7 processor |
ippCpuSSE |
Processor with Intel® Streaming SIMD Extensions instruction set |
ippCpuSSE2 |
Processor with Intel® Streaming SIMD Extensions 2 instruction set |
ippCpuSSE3 |
Processor with Intel® Streaming SIMD Extensions 3 instruction set |
ippCpuSSSE3 |
Processor with Intel® Supplemental Streaming SIMD Extensions 3 instruction set |
ippCpuSSE41 |
Processor with Intel® Streaming SIMD Extensions 4.1 instruction set |
ippCpuSSE42 |
Processor with Intel® Streaming SIMD Extensions 4.2 instruction set |
ippCpuAVX |
Processor supports Intel® Advanced Vector Extensions instruction set |
ippCpuAES |
Processor supports Intel® Advanced Encryption Standard (AES) instructions set |
ippCpuX8664 |
Processor supports 64 bit extension |
ippCpuUnknown |
Unknown Processor |
Optimization Notice |
---|
The Intel® Integrated Performance Primitives (Intel® IPP) library contains functions that are more highly optimized for Intel microprocessors than for other microprocessors. While the functions in the Intel® IPP library offer optimizations for both Intel and Intel-compatible microprocessors, depending on your code and other factors, you will likely get extra performance on Intel microprocessors. While the paragraph above describes the basic optimization approach for the Intel® IPP library as a whole, the library may or may not be optimized to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include Intel® Streaming SIMD Extensions 2 (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel® SSE3), and Supplemental Streaming SIMD Extensions 3 (Intel® SSSE3) instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Intel recommends that you evaluate other library products to determine which best meets your requirements. |
Copyright © 2008 - 2010, Intel Corporation. All rights reserved.