- Features to be supported by the library. Refer toippdefs.hforippCPUID_xxdefinition.
#define PX_FM ( ippCPUID_MMX | ippCPUID_SSE ) #define W7_FM ( PX_FM | ippCPUID_SSE2 ) #define V8_FM ( W7_FM | ippCPUID_SSE3 | ippCPUID_SSSE3 ) #define S8_FM ( V8_FM | ippCPUID_MOVBE ) #define P8_FM ( V8_FM | ippCPUID_SSE41 | ippCPUID_SSE42 ) #define G9_FM ( P8_FM | ippCPUID_AVX | ippAVX_ENABLEDBYOS | ippCPUID_F16C ) #define H9_FM ( G9_FM | ippCPUID_AVX2 | ippCPUID_MOVBE | ippCPUID_PREFETCHW )
#define PX_FM ( ippCPUID_MMX | ippCPUID_SSE | ippCPUID_SSE2 ) #define M7_FM ( PX_FM | ippCPUID_SSE3 ) #define U8_FM ( M7_FM | ippCPUID_SSSE3 ) #define N8_FM ( U8_FM | ippCPUID_MOVBE ) #define Y8_FM ( U8_FM | ippCPUID_SSE41 | ippCPUID_SSE42 ) #define E9_FM ( Y8_FM | ippCPUID_AVX | ippAVX_ENABLEDBYOS | ippCPUID_F16C ) #define L9_FM ( E9_FM | ippCPUID_MOVBE | ippCPUID_AVX2 | ippCPUID_PREFETCHW ) #define N0_FM ( L9_FM | ippCPUID_AVX512F | ippCPUID_AVX512CD | ippCPUID_AVX512PF | ippCPUID_AVX512ER | ippAVX512_ENABLEDBYOS ) #define K0_FM ( L9_FM | ippCPUID_AVX512F | ippCPUID_AVX512CD | ippCPUID_AVX512VL | ippCPUID_AVX512BW | ippCPUID_AVX512DQ | ippAVX512_ENABLEDBYOS )
- and set withEnabled features: the features that are enabled externally to Intel IPP by the application. These features are read-write and can be obtained with ippGetEnabledCpuFeaturesippSetCpuFeatures.
- Indicates that the required processor-specific code is successfully set.
- Indicates that the specified processor features are not valid. Previously set code is used. If the requested feature is below the minimal supported by them7library - that is Intel® Streaming SIMD Extensions 2 (Intel® SSE2) for IA-32 - orw7- that is Intel® SSE3 for Intel® 64 architecture,m7/w7code is dispatched respectively.
- Indicates that the current CPU does not support at least one of the requested features. If theippCPUID_NOCHECKbit of thecpuFeaturesparameter is set to 1, these not supported features are enabled, otherwise - disabled.
- Indicates that at least one of the requested features is unknown. It means that the feature is not defined in theippdefs.hfile. Further behavior of the library depends on known features passed tocpuFeatures. Unknown features are ignored.
- Indicates that the combination of features is not correct. For example,ippSetCpuFeatures(ippCPUID_AVX2);will generate this warning that means thatippCPUID_AVX2bit is set to 1 incpuFeatures, but at least one of theippCPUID_MMX,ippCPUID_SSE, …,ippCPUID_AVXbits or all of these bits are not set. UseippSetCpuFeatures(H9_FM);orippSetCpuFeatures(L9_FM);instead to avoid this warning. All the missing bits, if supported by CPU, are set to 1. This means that if the library supports the Intel® AVX2 code, it also internally uses all known MMX™, Intel® SSE, and Intel® AVX extensions, which are below Intel® AVX2.