All cpus have so-called "errata list". CPU manufacturers usually releases workaround directives especially for compiler & bios writers how to avoid situation where some errata can take place. So, even some cpu supports some instructions extension you can't say that this cpu is fully supported by specific compiler until all related tests were done (even if 99.9% of time it works as expected) .
Now here is what Intel have to say about:
http://software.intel.com/en-us/arti...optimizations/
In other words only an /Qax option generates multiple code path while optimized code paths are generated for Intel cpus only. You can still use optimization (such as SSE2) for other cpus by modifying default code path but then you may face a problem with an older cpus (such as Athlon XP). Thats it. If you don't like it, don't use Intel compiler.There are three main types of processor-specific optimization options:
1. Processor-specific options of the form /arch:x<code> on Windows* ( -m<code> on Linux* or Mac OS* X) generate specialized code for processors specified by <code>. The resulting executables from these processor-specific options can be run on the specified or later Intel® and compatible, non-Intel® processors that support the instruction set. The executable may incorporate optimizations specific to those processors and use a specific version of the Streaming SIMD Extensions (SSE) instruction set; on older processors without support for the corresponding instruction set, and illegal instruction or similar error may occur.
2. Processor-specific options of the form /Qx<code> on Windows*( -x<code> on Linux* or Mac OS* X) generate specialized code for processors specified by <code>. The resulting executables from these processor-specific options can only be run on the specified or later Intel® processors, as they incorporate optimizations specific to those processors and use a specific version of the Streaming SIMD Extensions (SSE) instruction set. This switch enables some optimizations not enabled with the correpsonding switchws /arch:x<code> or -m<code>. A run-time check is inserted in the resulting executable that will halt the application if run on an incompatible processor. This is intended to help you quickly find out that the program was not intended for the processor it is running on and potentially avoids an illegal instruction error.
3. Processor-dispatch options of the form /Qax<code> on Windows* ( -ax<code> on Linux* or Mac OS* X) allows the generation of multiple code paths for Intel® processors. Processor dispatch technology performs a check at execution time to determine which processor the application is running on and use the best code path that is compatible with that processor. Compatible, non-Intel processors will take the default code path. The switches described in 1. and 2. above can be used to modify the default code path.
Bookmarks