Issue Fix: "Illegal Instructions" Error in Intel® IPP Functions

By Chao Yu, Published: 12/19/2017, Last Updated: 12/19/2017


Intel® IPP provides optimization code for the Intel® Advanced Vector Extensions 512 (Intel® AVX-512), Intel® Advanced Vector Extensions 2(Intel® AVX2), and Intel® Advanced Vector Extensions (Intel® AVX) instruction sets. To use these instructions sets, explicit operating system support is required to protect the vectorization registers for the applications.

Intel® IPP requires the following versions of operating systems to enable Intel® AVX, Intel® AVX2, and Intel® AVX-512 support:

  • Intel® AVX and Intel® AVX2:  Microsoft Windows * 7 with Service Pack 1 (SP1) and Windows* Server 2008 R2 with SP1, or a later version of Windows OS; Linux kernels from 2.6.30 (June 2009) and later.
  • Intel® AVX-512: Microsoft Windows* server 2016; Linux kernels from 3.15 and later.

Intel® IPP functions dispatch the processor-specific optimized code according to both CPU type and operating system support status. One dispatching problem was identified in the recent IPP releases, and was fixed in the latest IPP 2018 Update 1.1 release. The problems only happen on the following systems:  

  • Using Intel IPP functions on one Intel® AVX-512 processor system, and its OS does not enable Intel® AVX-512 support. 
  • Using Intel IPP 2018 cryptography functions on one Intel® AVX processor system, and its OS does not enable Intel® AVX/Intel® AVX2 support. 

The Intel(R) IPP functions may report "illegal instructions” errors at the runtime with such problems.

Issue Fix:                       
A new versions of Intel® IPP 2018 Update 1.1 release is available, which includes the fix of the problems.  To get this package:

  1. Login into Intel® Software Development Products Registration Center, as a registered customer.
  2. Select the “Intel® Integrated Performance Primitives” or “Intel® Integrated Performance Primitives Cryptography” production to download the package.

If your applications can not update to Intel® IPP 2018 Update 1.1 or a later version of Intel® IPP,  the workaround is to use the following APIs to manually dispatch the optimization code for your target systems:

  • ippSetCpuFeatures:    Sets the processor-specific library for Intel® IPP package.
  • ippcpSetCpuFeatures: Sets the processor-specific library for Intel® IPP cryptography library 

If you need further help on this problem, please contact the technical support via the Online Service Center web site.

Product and Performance Information


Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and 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. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804