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


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.

For more complete information about compiler optimizations, see our Optimization Notice.