<<

Intel® ++ Compiler 14.0 Update 1 for Embedded * OS Release Notes

Installation Guide and Release Notes for Windows* host

Document number: 329494-003US

24 April 2014

Table of Contents 1 Introduction ...... 3 1.1 System Requirements ...... 3 1.1.1 Host Software Requirements ...... 3 1.1.2 Host Hardware Requirements ...... 3 1.1.3 Target Software Requirements ...... 3 1.1.4 Target Hardware Requirements ...... 3 1.2 Documentation ...... 4 1.3 Samples ...... 4 1.4 Technical Support ...... 4 1.5 Installation Folders ...... 6 2 Intel® C++ Compiler ...... 6 2.1 Compatibility ...... 6 2.2 New and Changed Features ...... 6 2.2.1 Static Analysis Feature (formerly “Static Security Analysis” or “Source Checker”) Requires Intel® Inspector ...... 7 2.3 New and Changed Compiler Options ...... 8 2.3.1 New and Changed in Intel® C++ Compiler 14.0...... 8 2.3.2 -ipp-link option ...... 9 2.4 Other Changes ...... 9 2.4.1 New Warning Level –w3 and Changes to Warning Levels ...... 9 2.4.2 Binary compatibility change with __regcall functions and elemental functions (i.e. __declspec(vector)) ...... 9

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 1 2.4.3 New libirng for vectorizing random number generator functions added to Intel® C++Compiler 14.0 ...... 10 2.4.4 Instruction Set Default Changed to Require Intel® Streaming SIMD Extensions 2 (Intel® SSE2) ...... 10 2.4.5 New Warning Level –w3 and Changes to Warning Levels in Compiler 14.0 ...... 10 2.5 * IDE Integration ...... 10 2.5.1 Installation ...... 10 2.5.2 Launching Eclipse for Development with the Intel C++ Compiler ...... 11 2.5.3 Editing Compiler Cross-Build Environment Files ...... 11 2.5.4 Cheat Sheets ...... 11 2.6 Compiler Usage for cross-compilation ...... 11 2.6.1 Compiling Your Code ...... 12 2.6.2 Building Applications for Wind River* Linux* OS Target ...... 13 2.6.3 Giving Commands to the Compiler for Building Wind River* Linux*-Targeted Applications ...... 13 2.6.4 Building Applications for Tizen* Target...... 14 2.6.5 Giving Commands to the Compiler for Building Tizen*-Targeted Applications...... 14 2.7 Compiler Usage for Intel® Quark Processor ...... 15 2.8 Known Issues ...... 15 2.8.1 Intel® ™ Plus Known Issues ...... 15 2.8.2 Guided Auto-Parallel Known Issues ...... 15 2.8.3 Static Analysis Known Issues ...... 15 3 Intel® Integrated Performance Primitives ...... 16 3.1 Intel® IPP Cryptography Libraries are Available as a Separate Download ...... 16 3.2 Intel® IPP Code Samples ...... 17 4 Intel® Math Kernel Library ...... 17 4.1 Notices ...... 17 4.2 Changes in This Version ...... 17 4.3 Attributions ...... 18 5 Disclaimer and Legal Information ...... 19

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 2 1 Introduction This document provides a summary of new and changed features of the Intel® C++ Compiler 14.0 for applications running on Embedded OS Linux* and includes notes about features and problems not described in the product documentation.

1.1 System Requirements For an explanation of architecture names, see http://intel.ly/q9JVjE

1.1.1 Host Software Requirements  Microsoft Windows 7* or Microsoft Windows 8*  To read the on-disk documentation, Adobe Reader* 7.0 or later  The prerequisites for successful Eclipse integration are:

1. Eclipse* 3.7 (Indigo) – Eclipse* 4.3 (Kepler) 2. Eclipse* CDT 8.0 – 8.1 3. Runtime Environment (JRE) version 6.0 (also called 1.6) update 11 or later.

 The prerequisite for successful Wind River* Linux* targeted cross-build environment integration is o Wind River* Workbench for Wind River* Linux* 4.x or o Wind River* Workbench for Wind River* Linux* 5.x

1.1.2 Host Hardware Requirements

 A PC based on an IA-32 or Intel® 64 architecture processor supporting the Intel® Streaming SIMD Extensions 2 (Intel® SSE2) instructions (Intel® Pentium® 4 processor or later), or compatible non-Intel processor o For the best experience, a multi-core or multi-processor system is recommended  1GB RAM (2GB recommended)  4GB free disk space for all product features and all architectures

1.1.3 Target Software Requirements

The target platform should be based on one of the following environments:

 Wind River* Linux* 4, 5, 6  Tizen* IVI 2, 3

1.1.4 Target Hardware Requirements  Development platform based on the Intel® Atom™ processor Z5xx, N4xx, N5xx, D5xx E6xx, N2xxx, D2xxx, Z3xxx, E3xxx, C2xxx, the Intel® Atom™ processor CE4xxx, CE53xx or the Intel® Puma6™ Media Gateway.  Alternatively development platform based on 2nd, 3rd, or 4th generation Intel® Core™ microarchitecture based Intel® Xeon™ processor.

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 3  Development targeting Intel® Quark processor X1xxx

 Needed hard disk space IA-32: 13 MB Intel 64: 15 MB

1.2 Documentation Product documentation can be found in the Documentation folder as shown under Installation Folders.

1.3 Samples Samples for each product component can be found in the Samples folder as shown under Installation Folders.

1.4 Technical Support If you did not register your compiler during installation, please do so at the Intel® Software Development Products Registration Center. Registration entitles you to free technical support, product updates and upgrades for the duration of the support term.

To submit issues related to this product please visit the Intel Premier Support webpage and submit issues under the product Intel(R) System Studio for Linux* OS.

Additionally you may submit questions and browse issues in the Intel® System Studio User Forum.

For information about how to find Technical Support, product documentation and samples, please visit http://software.intel.com/en-us/intel-system-studio.

Note: If your distributor provides technical support for this product, please contact them for support rather than Intel.

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 4

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 5

1.5 Installation Folders

The compiler installs, by default, under C:\Program Files (x86)\Intel\System Studio 2014.0.xxx\

Under are the following directories:

 bin – contains symbolic links to executables for the latest installed version  lib – symbolic link to the lib directory for the latest installed version  include – symbolic link to the include directory for the latest installed version  man – symbolic link to the directory containing man pages for the latest installed version  ipp – symbolic link to the directory for the latest installed version of Intel® Integrated Performance Primitives  mkl – symbolic link to the directory for the latest installed version of Intel® Math Kernel Library

2 Intel® C++ Compiler This section summarizes changes, new features and late-breaking news about the Intel C++ Compiler.

2.1 Compatibility In version 11.0, the IA-32 architecture default for code generation changed to assume that Intel® Streaming SIMD Extensions 2 (Intel® SSE2) instructions are supported by the processor on which the application is run. See below for more information.

2.2 New and Changed Features The following features are new or significantly enhanced in this version. For more information on these features, please refer to the documentation.

 Support for Intel® Quark Processor X1xxx  Improved support and optimization for 2nd generation Intel® Atom™ Processor family (- xATOM_SSE4.2 and –axATOM_SSE4.2)  Improved –sysroot support allowing easier integration into GNU* cross-build environments and support for 3rd party toolchain layer recipes  Improved support for 3rd Generation Intel® Core™ processor family (-xCORE-AVX-I and –axCORE-AVX-I) and future Intel processors supporting Intel® Advanced Vector Extensions 2 (Intel® AVX2) (-xCORE-AVX2 and –axCORE-AVX2)  Features from C++11 (-std=c++0x) o Additional type traits o Uniform initialization o Generalized constant expressions (partial support) o noexcept

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 6 o Range based for loops o Conversions of lambdas to function pointers o Implicit move constructors and move assignment operators o Support for C++11 features in gcc 4.6 and 4.7 headers  Out-of-bounds memory checking (-check-pointers)  More options for controlling the analysis for Static Analysis (-diag-enable sc- {full|concise|precise})

2.2.1 Static Analysis Feature (formerly “Static Security Analysis” or “Source Checker”) Requires Intel® Inspector The “Source Checker” feature, from compiler version 11.1, has been enhanced and renamed “Static Analysis”. The compiler options to enable Static Analysis remain the same as in compiler version 11.1 (for example, -diag-enable sc), but the results are now written to a file that is interpreted by Intel® Inspectorrather than being included in compiler diagnostics output.

2.2.1.1 The command line utility “inspxe-runsc” changes Inspxe-runsc executes a build specification, a description of how an application is built. Usually build specification files are generated by observing a build as it executes and recoding the compilations and links that are performed. Inspxe-runsc repeats these actions using the Intel compiler in Static Analysis mode. Static Analysis results are generated at the link step so a build specification that describes a build with more than one link step will generate more than one Static Analysis result when inspxe-runsc is invoked.

The updated version of inspxe-runsc respects this rule by generating results for each link step in a separate directory. The name of that directory is formed from the name of the file being linked. Thus if a build specification describes a project that builds two executables, file1.exe and file2.exe, then earlier versions of inspxe-runsc would create two results, one for file1 and one for file2, say r000sc and r001sc, in the same directory. The new version of inspxe-runsc will also create two results, but the one for file1 will be created in “My Inspectorresults – file1\r000sc” and the one for file2 will be created in “My Inspectorresults – file2\r000sc”. The directories containing the results are both created in the same parent directory.

Inspxe-runsc has a command line switch, -result-dir (-r), that specifies where results are to be created. The meaning of this switch has changed. Previous this would name the directory where the result itself, say r000sc, would be created. Now it names the parent directory where the “My InspectorResults - name” directory or directories will be created. So the directory named in the –r switch is effectively two levels up from the results themselves.

The change to inspxe-runsc effectively moves the result directory, and user action is required to adapt to this change. Those using scripts that invoke inspxe-runsc with the –r switch must update their scripts to reflect the new interpretation of the –r switch argument described earlier. Users must move their old result files into the new directory so that Static Analysis results produced by earlier versions of inspxe-runsc share the same directory as results produced by the new version of inspxe-runsc. Users that had been using inspxe-runsc with a build specification with only one link step should move their old results into a directory of the form “My

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 7 Inspectorresults – name”. If this is not done, then all the problems in the newly created result will appear to be “New”. Users that had been using inspxe-runsc with a build specification with multiple link steps have been having various issues with Static Analysis that will be resolved by using the new utility. Such users are best advised to copy the most recent into their old results into each of the new “My Inspectorresults – name” directories. This offers the best chance that some old problem state information will be correctly applied to new results when they are created in the future.

2.3 New and Changed Compiler Options For details on these and all compiler options, see the Compiler Options section of the on-disk documentation.

2.3.1 New and Changed in Intel® C++ Compiler 14.0  -vec-report6  -f[no-]defer-pop  -f[no-]optimize-sibling-calls  -fextend-arguments=[32|64]  -guide-profile=[,[file|dir],…]  -opt-prefetch-distance=N[,N]  -debug [no]pubnames  -debug [no]profiling  -grecord-gcc-switches  -fno-merge-constants  -check-pointers=  -check-pointers-dangling=  -std=c++11 (same as –std=c++0x)  -[no-]check-pointers-undimensioned  -no-]check-uninit functionality expanded to –check=[,…]. Use – check:[no]uninit for original functionality.  -w3  -W[no-]unused-parameter  -W[no-]invalid-pch  -noerror-limit removed  -diag-enable sc-{full|concise|precise}  -diag-enable sc-single-file  -diag-enable sc-enums  -watch=  -nowatch  -offload-attribute-target=  -offload-option,,, “option list”  -no-offload  -fimf-domain-exclusion=classlist[:funclist]

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 8  -ipp-link={static|dynamic|static_thread}  -fms-dialect=11  -static-libstdc++  -[no-]pie

For a list of deprecated compiler options, see the Compiler Options section of the documentation.

2.3.2 -ipp-link option This option is used with -ipp to indicate which variant of the Intel® Integrated Performance Primitives libraries should be used. There are three options, static to link against the static single-threaded libraries, dynamic to link against the dynamic libraries, or static- to link against the static multithreaded libraries. Note that the static multithreaded libraries are only available in a separate package.

2.4 Other Changes

2.4.1 New Warning Level –w3 and Changes to Warning Levels Here's the new warning levels as listed in “icc –help”:

-w control diagnostics n = 0 enable errors only (same as -w) n = 1 enable warnings and errors (DEFAULT) n = 2 enable verbose warnings, warnings and errors n = 3 enable remarks, verbose warnings, warnings and errors

Previously, remarks were listed under –w2. This has been changed so that remarks are now enabled under the new warning level –w3.

2.4.2 Binary compatibility change with __regcall functions and elemental functions (i.e. __declspec(vector)) Intel® C++ Compiler 14.0 introduces an incompatibility with previous compiler versions in the way the __regcall calling convention is handled. Starting from this version, the RBX register is considered to be a callee-save register for __regcall routines, whereas in previous versions it was true only for IA32 targets. This could cause run-time fails if binaries built with different versions of the compilers are used together, so the compiler changes the name decoration scheme for __regcall routines using a new __regcall2__ prefix for mangling __regcall routines (previously the prefix was __regcall__). Binaries built with different versions of the compiler will therefore not link together successfully.

If you have functions declared with the __regcall interface or with the __declspec(vector) elemental function interface, code with these functions built with C++ Compiler 14.0 will not link with code with these functions built with earlier compilers. If you use these declarations, make sure to rebuild all necessary code with C++ Compiler14.0.

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 9 2.4.3 New libirng library for vectorizing random number generator functions added to Intel® C++Compiler 14.0 The compiler can now automatically vectorize the drand48 family of random number generator functions provided by the C . A new library, libirng.a and libirng.so, has been added to implement this support.

2.4.4 Instruction Set Default Changed to Require Intel® Streaming SIMD Extensions 2 (Intel® SSE2) When compiling for the IA-32 architecture, -msse2 (formerly -xW) is the default. Programs built with –msse2 in effect require that they be run on a processor that supports the Intel® Streaming SIMD Extensions 2 (Intel® SSE2), such as the Intel® Pentium® 4 processor and some non-Intel processors. No run-time check is made to ensure compatibility – if the program is run on an unsupported processor, an invalid instruction fault may occur. Note that this may change floating point results since the Intel® SSE instructions will be used instead of the x87 instructions and therefore computations will be done in the declared precision rather than sometimes a higher precision.

All Intel® 64 architecture processors support Intel® SSE2.

To specify the older default of generic IA-32, specify –mia32

2.4.5 New Warning Level –w3 and Changes to Warning Levels in Compiler 14.0 Here's the new warning levels as listed in “icc –help”:

-w control diagnostics n = 0 enable errors only (same as -w) n = 1 enable warnings and errors (DEFAULT) n = 2 enable verbose warnings, warnings and errors n = 3 enable remarks, verbose warnings, warnings and errors

Previously, remarks were listed under –w2. This has been changed so that remarks are now enabled under the new warning level –w3.

2.5 Eclipse* IDE Integration

2.5.1 Installation The Intel® C++ Compiler and SVEN SDK can be automatically integrated into a preexisting Eclipse* CDT installation. The Eclipse* CDK, Eclipse* JRE and the Eclipse* CDT integrated development environment are not shipped with this package of the Intel® System Studio. The Eclipse* integration is automatically offered as one of the last steps of the installation process. If you decide against integration during an earlier install, simply rerun the Intel® System Studio installer.

When asked point the installer to the installation directory of your Eclipse* install. Usually this would be C:\Program Files (x86)\eclipse\.

The prerequisites for successful Eclipse integration are:

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 10 1. Eclipse* 3.7 (Indigo) – Eclipse* 4.3 (Kepler) 2. Eclipse* CDT 8.0 – 8.1 3. Java Runtime Environment (JRE) version 6.0 (also called 1.6) update 11 or later.

2.5.2 Launching Eclipse for Development with the Intel C++ Compiler Since Eclipse requires a JRE to execute, you must ensure that an appropriate JRE is available to Eclipse prior to its invocation. You can set the PATH to the full path of the folder of the java file from the JRE installed on your system or reference the full path of the java executable from the JRE installed on your system in the -vm parameter of the Eclipse command, e.g.: eclipse -vm \JRE folder\bin\java

Invoke the Eclipse executable directly from the directory where it has been installed. For example:

\eclipse\eclipse

2.5.3 Editing Compiler Cross-Build Environment Files Environment File Support appears under “Intel Tools - Intel® System Studio Tools Environment File” on the menu bar.

For details on the Environment File Editor, please check the

Intel® System Studio Product Guide at

\System Studio 2014.0.xxx\Documentation\ embedded_compsupdoc_l.pdf

2.5.4 Cheat Sheets The Intel® C++ Compiler Eclipse* Integration additionally provides Eclipse* style cheat sheets on how to set up a project for embedded use cases using the Intel® C++ Compiler In the Eclipse* IDE see

Help > Cheat Sheets > Intel C++ Integration

2.6 Compiler Usage for cross-compilation

Please see the Intel® System Studio Product Guide

\System Studio 2014.0.xxx\Documentation\ embedded_compsupdoc_l.pdf for details.

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 11 2.6.1 Compiling Your Code

Use the Intel® C++ Compiler to compile your code.

Before you can use the compiler, you must first set the environment variables by running the compiler environment script iccvars.bat with an argument that specifies the target architecture.

The following procedure uses the iccvars.bat script:

 Open a terminal session.  Run the compiler environment script iccvars.bat:

call \bin\compilervars.bat where is the directory structure containing the compiler \bin directory, and is either ia32 or ia32_intel64, identifying the architecture of the host-target system combination.

 ia32: Compilers and libraries for IA-32 (x86) host binaries and IA-32 (x86_64) architecture target.

 ia32_intel64: Compilers and libraries IA-32 (x86) host binaries and Intel® 64 (x86_64) architecture target.

Depending on which environment configuration you choose you may

Use the –m64 option to change the default target from 32 to 64-bit compilation: icc –m64 my_source_file.c

Use the –m32 option to change the default target from 64 to 32-bit compilation: icc –m32 my_source_file.c

To invoke the Intel® C++ Compiler from the command line:

For a C source file (for example, my_source_file.c), use a command similar to the following: icc.exe my_source_file.c

For a C++ source file (for example, my_source_file.cpp), use a command similar to the following: icpc.exe my_source_file.cpp

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 12 2.6.2 Building Applications for Wind River* Linux* OS Target

Before compiling applications for running on the target Wind River* Linux* OS, you must install Wind River* Linux* 4.3/5.0.x and build sysroot for a target platform.

After installation is completed and sysroot is created, set two environment variables to match cross-compilation tools directories:

 WRL_TOOLCHAIN: must contain the path to the directory inside the Wind River Linux installation tree where the toolchain for the target platform resides.  WRL_SYSROOT: must contain the path to the built sysroot for the target platform.

For example:

Wind River* Linux* 4.3 64-bit target set WRL_TOOLCHAIN=\wrl43\wrlinux-4\layers\wrl-toolchain- 4.4a-341\i586\toolchain\x86-win32 set WRL_SYSROOT=\wrl43\intel64\export\sysroot\common_pc_64-glibc_std\sysroot

Wind River* Linux 5.0.x 64-bit target set WRL_TOOLCHAIN=\wrl50\wrlinux-5\layers\wr- toolchain\4.6-60-win32 set WRL_SYSROOT=\wrl50\intel64\export\sysroot\intel-xeon- core_glibc_std\bitbake_build\tmp\sysroots\intel-xeon-core where is the path where toolchain and sysroot are installed, for example, C:\.

2.6.3 Giving Commands to the Compiler for Building Wind River* Linux*-Targeted Applications

Each time you compile for a Wind River* Linux* target, specify either -platform=wrl43 or - platform=wrl50 option depending on the target OS version.

To compile a C source file (for example, my_source_file.c) for Wind River* Linux* 5.0 target, use a command similar to the following: icc.exe -platform=wrl50 my_source_file.c

To compile a C++ source file (for example, my_source_file.cpp) for Wind River* Linux* 5.0 target, use a command similar to the following: icpc.exe -platform=wrl50 my_source_file.cpp

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 13 2.6.4 Building Applications for Tizen* Target Before compiling applications for running on the Tizen* target, install Tizen SDK (Software Development Kit). After installation is completed, set PATH, TZN_SYSROOT and TZN_EXEC_PREFIX environment variables to match cross-compilation tools directories: set PATH=”C:\tizen-sdk\tools\i386-linux-gnueabi-gcc-4.5\bin;%PATH%” set TZN_SYSROOT=”C:\tizen-sdk\platforms\tizen2.0\rootstraps\tizen- emulator-2.0.cpp” set TZN_EXEC_PREFIX=”i386-linux-gnueabi-”

2.6.5 Giving Commands to the Compiler for Building Tizen*-Targeted Applications Each time you compile for Tizen* target, specify -gnu-prefix= and --sysroot= options.

To compile a C source file (for example, my_source_file.c) for Tizen* target, use a command similar to the following: icc -gnu-prefix=%TZN_EXEC_PREFIX% --sysroot=%TZN_SYSROOT% my_source_file.c

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 14 2.7 Compiler Usage for Intel® Quark Processor When using the Intel® C++ Compiler use of the following two compiler options is recommended:

-mia32 –falign-stack=assume-4-byte

-mia32:

tells the compiler to generate code for IA-32 architecture

-falign-stack=assume-4-byte :

tells the compiler to assume the stack is aligned on 4-byte boundaries. The compiler can dynamically adjust the stack to 16-byte alignment if needed. This will reduce the data size necessary to call routines.

2.8 Known Issues

2.8.1 Intel® Cilk™ Plus Known Issues

2.8.1.1 Static linkage of the runtime is not supported Static versions of the Intel® Cilk™ Plus library are not provided by design. Using –static- intel to link static libraries will generate an expected warning that the dynamic version of the of Intel® Cilk™ Plus library, libcilkrts.so, is linked. $ icc -static-intel sample.c icc: warning #10237: -lcilkrts linked in dynamically, static library not available Alternatively, you can build the open source version of Intel Cilk Plus with a static runtime. See http://cilk.com for information on this implementation of Intel Cilk Plus.

2.8.2 Guided Auto-Parallel Known Issues Guided Auto Parallel (GAP) analysis for single file, function name or specific range of source code does not work when Whole Program Interprocedural Optimization (-ipo) is enabled

2.8.3 Static Analysis Known Issues

2.8.3.1 Excessive false messages on C++ classes with virtual functions Note that use of the Static Analysis feature also requires the use of Intel® Inspector.

Static analysis reports a very large number of incorrect diagnostics when processing any program that contains a C++ class with virtual functions. In some cases the number of spurious diagnostics is so large that the result file becomes unusable.

If your application contains this common C++ source construct, add the following command line switch to suppress the undesired messages: /Qdiag-disable:12020,12040 (Windows) or –diag-disable 12020,12040 (Linux). This switch must be added at the link step because that is when static analysis results are created. Adding the switch at the compile step alone is not sufficient.

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 15 If you are using a build specification to perform static analysis, add the –disable-id 12020,12040 switch to the invocation of the inspxe-runsc, for example, inspxe-runsc –spec-file mybuildspec.spec -disable-id 12020,12040

If you have already created a static analysis result that was affected by this issue and you are able to open that result in the Intel® InspectorGUI, then you can hide the undesired messages as follows:  The messages you will want to suppress are “Arg count mismatch” and “Arg type mismatch”. For each problem type, do the following:  Click on the undesired problem type in the Problem filter. This hides all other problem types.  Click on any problem in the table of problem sets  Type control-A to select all the problems  Right click and select Change State -> Not a problem from the pop-up menu to set the state of all the undesired problems  Reset the filter on problem type to All  Repeat for the other unwanted problem type  Set the Investigated/Not investigated filter to Not investigated. You may have to scroll down in the filter pane to see it as it is near the bottom. This hides all the undesired messages because the “Not a problem” state is considered a “not investigated” state.

3 Intel® Integrated Performance Primitives This section summarizes changes, new features and late-breaking news about this version of Intel® Integrated Performance Primitives (Intel® IPP).

The latest information on Intel® IPP 8.0 can be found in the product release notes under \Documentation\\ipp\ReleaseNotes.htm.

For detailed information about IPP see the following links:

 New features:

 MMSE MIMO algorithm support  see the information below and visit the main Intel IPP product page on the Intel web site at: http://intel.ly/OG5IF7; and the Intel IPP Release Notes at http://intel.ly/OmWI4d.

 Documentation, help, and samples: see the documentation links on the IPP product page at: http://intel.ly/OG5IF7.

3.1 Intel® IPP Cryptography Libraries are Available as a Separate Download The Intel® IPP cryptography libraries are available as a separate download. For download and installation instructions, please read http://intel.ly/ndrGnR

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 16 3.2 Intel® IPP Code Samples The Intel® IPP code samples are organized into downloadable packages at http://intel.ly/pnsHxc

The samples include source code for audio/video codecs, image processing and media player applications, and for calling functions from C++, C# and Java*. Instructions on how to build the sample are described in a readme file that comes with the installation package for each sample.

4 Intel® Math Kernel Library This section summarizes changes, new features and late-breaking news about this version of the Intel® Math Kernel Library (Intel® MKL). All the bug fixes can be found here: http://intel.ly/OeHQqf

4.1 Notices Please refer to the Knowledge Base article on Deprecations for more information on the following notices

 Unaligned Conditional Numerical Reproducibility (CNR) is not available for Intel MKL Cluster components (ScaLAPACK and Cluster DFT)  Examples for using Intel MKL with Boost* uBLAS and Java* have been removed from product distribution and placed in the following articles: o How to use Intel MKL with Java* o How to use Boost* uBLAS with Intel MKL

4.2 Changes in This Version

What's New in Intel MKL 11.1 Update 3

 Introduced Android* NDK support for static linking of Intel MKL  BLAS: o Improved performance of Level 3 BLAS functions for 64-bit processors supporting Intel® Advanced Vector Extensions 2 (Intel® AVX2) o Improved performance of matrix generation in the heterogeneous Intel® Optimized MP LINPACK Benchmark for Clusters o Optimized ?GEMM, ?TRSM, DTRMM for the Intel® Advanced Vector Extensions 512 (Intel® AVX-512) instruction set  LAPACK: o Improved performance of ?(SY/HE)RDB o Improved performance of ?(SY/HE)(EV/EVR/EVD) when eigenvectors are not needed o Improved performance of ?SY(EV/EVD) when eigenvectors are needed o Improved performance of NaN checkers in LAPACKE interfaces o Improved performance of DGETRF for processors supporting Intel AVX2 o Added Automatic Offload for ?SYRDB on Intel® Many Integrated Core Architecture (Intel® MIC Architecture), which speeds up DSY(EV/EVD) when eigenvectors are not needed

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 17  Sparse BLAS: o Added example for diagonal format matrix  Intel MKL PARDISO: o Improved memory estimation of out-of-core (OOC) portion size for reordering algorithm leading to improved factorization-solving step performance in OOC mode o Added pivot control support for nonsymmetric matrices and OOC mode o Added diagonal extraction support for nonsymmetric matrices and OOC mode  Extended Eigensolver: o Improved output message o Improved examples o Added input and output iparm parameters in predefined interfaces for solving sparse problems  FFT: o Optimized the whole range of FFTs for Intel® Advanced Vector Extensions 512 (Intel® AVX-512) instruction set o Improved performance of FFT for lengths which are not powers of two on Intel MIC Architecture

4.3 Attributions As referenced in the End User License Agreement, attribution requires, at a minimum, prominently displaying the full Intel product name (e.g. "Intel® Math Kernel Library") and providing a link/URL to the Intel® MKL homepage (http://www.intel.com/software/products/mkl) in both the product documentation and website.

The original versions of the BLAS from which that part of Intel® MKL was derived can be obtained from http://www.netlib.org/blas/index.html.

The original versions of LAPACK from which that part of Intel® MKL was derived can be obtained from http://www.netlib.org/lapack/index.html. The authors of LAPACK are E. Anderson, Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and . Sorensen. Our 90/95 interfaces to LAPACK are similar to those in the LAPACK95 package at http://www.netlib.org/lapack95/index.html. All interfaces are provided for pure procedures.

The original versions of ScaLAPACK from which that part of Intel® MKL was derived can be obtained from http://www.netlib.org/scalapack/index.html. The authors of ScaLAPACK are L. S. Blackford, J. Choi, A. Cleary, E. D'Azevedo, J. Demmel, I. Dhillon, J. Dongarra, S. Hammarling, G. Henry, A. Petitet, K. Stanley, D. Walker, and R. C. Whaley.

PARDISO in Intel® MKL is compliant with the 3.2 release of PARDISO that is freely distributed by the University of Basel. It can be obtained at http://www.pardiso-project.org.

Some FFT functions in this release of Intel® MKL have been generated by the SPIRAL software generation system (http://www.spiral.net/) under license from Carnegie Mellon University. The Authors of SPIRAL are Markus Puschel, Jose Moura, Jeremy Johnson, David Padua, Manuela

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 18 Veloso, Bryan Singer, Jianxin Xiong, Franz Franchetti, Aca Gacic, Yevgen Voronenko, Kang Chen, Robert W. Johnson, and Nick Rizzolo.

5 Disclaimer and Legal Information INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL(R) PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR.

Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information.

The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.

Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.

Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or go to: http://www.intel.com/design/literature.htm

Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor family, not across different processor families. Go to: http://www.intel.com/products/processor%5Fnumber/

Celeron, Centrino, Intel, Intel logo, Intel386, Intel486, Atom, Core, Itanium, MMX, Pentium, VTune, Cilk, and Xeon are trademarks of Intel Corporation in the U.S. and other countries.

* Other names and brands may be claimed as the property of others.

Copyright © 2013 – 2014 Intel Corporation. All Rights Reserved.

Intel® C++ Compiler 14.0 for Embedded Linux* OS - Windows* Host Release Notes 19