Automatic Processor Dispatch

With these options you can instruct the compiler to compile your application so that processor-specific extensions are included in the compilation but only used if the processor supports them.

Option

Description

Support

Windows*

Linux*

-Qaxi

-axi

Pentium® Pro processor and Pentium II processor with CMOV and FCMOV and FCOMI instructions

 

-QaxM

-axM

Pentium processor with MMX™ instructions

 

-QaxK

-axK

Pentium III processor with Streaming SIMD Extensions

implies i and M above

-QaxW

-axW

Pentium 4 processor with Streaming SIMD Extensions 2

implies i, M and K above

When the compiled application is run, it detects the extensions supported by the processor. If the processor supports the specialized extensions, they are executed. If the processor does not support the specialized extensions, a more generic version of the code is executed instead. Thus, code generated with these options runs on all x86 processors.

Because they contain multiple versions of code, applications compiled with these options have increased code size. However, the performance of such code is better than standard optimized code, although slightly slower than code compiled with the -Qx[i|M|K|W] options, as the latter doesn't determine on which processor the application is running.

For the target processor, the compiler uses:

  • processor-specific opcodes
  • prefetch operations (Pentium® III processor only)
  • vectorization