Out product needs to run older systems and AMD CPUs, Intel compiler has some compiling flags to avoid using new instructions such as "SSE, SSE2, SSE3".
Question 1: what
flags should be used whenusing Intel
compilers, to build binaries that run on most CPU models?
Our product also uses the IPP library. IPP library ships with .a or .lib, and those library files may be built without the above flags, so they may contain newer instructions that are not available on old AMD CPUs. This may lead to non-runable scenarios on some CPUs.
Question 2: Is IPP library runnable on any CPU model, or does it have limitations for both the Linux and Windows versions?
Thanks in advance.Link Copied
IA32
generate generic IA-32 architecture code for Intel Pentium III and compatible Intel processors. Disables any default or previously set extended instruction setting
So, if you want to compile only for generic IA32, you will have to use /arch:IA32 or whatever its Linux equivalent is.
A2:
The SSE2 optimization, and some obsolete SSE3 optimizations, (t7/m7 and w7 libraries) have been removed from this version [7.0] of the IPP library; these library optimizations will continue to be supported in the IPP 6.1 product. Additionally, the base 32-bit optimization of the library (px) has been compiled to require a processor with a minimum SSE2 architecture; which is consistent with the 64-bit base optimization (mx).
So, if you want to use IPP on CPUs that do not support SSE2 such as Pentium III or Athlon XP, you will have to use older IPP 6.1.
IA32
generate generic IA-32 architecture code for Intel Pentium III and compatible Intel processors. Disables any default or previously set extended instruction setting
So, if you want to compile only for generic IA32, you will have to use /arch:IA32 or whatever its Linux equivalent is.
A2:
The SSE2 optimization, and some obsolete SSE3 optimizations, (t7/m7 and w7 libraries) have been removed from this version [7.0] of the IPP library; these library optimizations will continue to be supported in the IPP 6.1 product. Additionally, the base 32-bit optimization of the library (px) has been compiled to require a processor with a minimum SSE2 architecture; which is consistent with the 64-bit base optimization (mx).
So, if you want to use IPP on CPUs that do not support SSE2 such as Pentium III or Athlon XP, you will have to use older IPP 6.1.
For more complete information about compiler optimizations, see our Optimization Notice.