Quote:
No, If you specify both the -ax and -x options (Linux and Mac OS) or the /Qax and /Qx options (Windows), the generic code will only execute on processors compatible with the processor type specified by the -x or /Qx option.
/QaxW /QxW in this case
Try running the SSE2 version on a Pentium 3 and it will fail.
Same for the IPP code: The 'generic' path is not included, only the P4 path.
You're not understanding that when you specify axW, which you *HAVE TO* in order to be compatible with AMD (xW is for Intel only), inside the compiler it will end up making TWO codepaths, one for Intel and one that's "Generic IA-32".
At runtime when the software determines that it's not running on an Intel processor, it will choose the "Generic IA-32" path.
Unless you hand-code things to vectorize it yourself, the compiler is going to do things on its' own when it makes the executable that you will not be notified of
at all and will not show up as a performance issue on your system or any other Intel system until it runs on a non-Intel system
at runtime.
Like I said, I've had experience in the distributed computing community, and nearly all of those projects produce SEPARATE AMD and Intel versions if they are using Intel compilers.
You might do some more research on this before dismissing it out of hand...