Floating-point Options for ItaniumŪ-based Systems

The following table lists options that enable you to control the compiler optimizations for floating-point computations on ItaniumŪ-based systems. The options listed here are not valid for IA-32 and IntelŪ EM64T systems.

Note

Mac OS*: The options listed in this topic are not supported.

Windows*

Linux*

Effect

/Qftz

-ftz

Use this option if the denormal values are not critical to application behavior. Flushes denormal results to zero (0) when the application is in the gradual underflow mode. Flushing the denormal values to zero with this option may improve overall application performance.

Use this option only on the source that contains the  main program to turn the FTZ mode on. The initial thread, and any threads subsequently created by that process, will operate in FTZ mode.

There may be performance issues when using SSE instructions. Refer to the compiler option topic below for other SSE-specific behaviors.

  • This option is disabled when using -fp-model precise (Linux) or /fp:precise (Windows*). Combine this option with  with -fp-model precise (Linux) or /fp:precise (Windows) to flush denormal results to zero.

  • This option affects the result of abrupt underflow by setting the floating underflow to zero (0) and allowing the execution to continue. The option instructs the compiler to treat denormal values used in a computation as zero (0) so no floating invalid exception occurs.

  • Using the -O3 (Linux) or /O3 (Windows) option sets the abrupt underflow to zero (enables this option). At lower optimization levels, gradual underflow to zero (0) is the default behavior.

  • Gradual underflow to zero (0) can degrade performance. Using higher optimization levels to get the default abrupt underflow or explicitly setting this option improves performance. The option may improve performance on ItaniumŪ 2 processor, even in the absence of actual underflow, most frequently for single-precision code.

If this option produces undesirable results of the numerical behavior of your program, you can turn the FTZ mode off by using this option in the command line while still benefiting from other optimizations.

For more information, see the following topic:

  • -ftz compiler option

/QIPF-fma

-IPF-fma

Enables or disables the contraction of floating-point multiply and add/subtract operations into a single operation. Unless -fp-model strict (Linux) or /fp:strict (Windows) is specified, the compiler contracts these operations whenever possible. The -fp-model strict (Linux) or /fp:strict (Windows) option disables the contractions.

For example, a combination of -fp-model strict (Linux) or /fp:strict (Windows) and -IPF-fma (Linux) or /QIPF-fma (Windows) enables the compiler to contract operations:

  • icpc -fp-model strict -IPF-fma prog.cpp (Linux)

  • icl /fp:strict /QIPF-fma prog.cpp (Windows)

For more information, see the following topic:

/QIPF-fp-speculation

-IPF-fp-speculation

Default. Sets the compiler to speculate on floating-point operations.

When using the -fp-model strict or -fp-model except (Linux) or /fp:strict or /fp:except options, the speculation mode is set to strict and cannot be overridden; however, when using the -fp-model fast (Linux) or /fp:fast (Windows) option, you can use the -IPF-fp-speculation (Linux) or /QIPF-fp-speculation (Windows) option to restrict speculation.

For more information, see the following topic:

/QIPF-fp-relaxed

-IPF-fp-relaxed

Enables use of faster but slightly less accurate code sequences for math functions, such as the sqrt() function and the divide operation. As compared to strict IEEE* precision, using this option slightly reduces the accuracy of floating-point calculations performed by these functions, usually limited to the least significant digit.

When using any -fp-model (Linux) or /fp (Windows) option setting, this option is disabled: -no-IPF-fp-relaxed (Linux) or /QIPF_fp_relaxed- (Windows); however, -fp-model (Linux) or /fp (Windows) does not override the explicit setting.

For more information, see the following topic: