Floating-point Options Quick Reference

The Intel® Compiler provides various options for you to optimize floating-point calculations with varying degrees of accuracy and predictability on different Intel architectures. This topic lists these compiler options and provides information about their supported architectures and operating systems.

Linux* and Mac OS*

Windows*

Description

IA-32, Intel® 64, and IA-64 architectures

-fp-model

/fp

Specifies semantics used in floating-point calculations. Values are precise, fast, strict, source, double, extended, and except. There are extended values for safe and except.

-fp-speculation

/Qfp-speculation

Specifies the speculation mode for floating-point operations. Values are fast, safe, strict, and off.

-prec-div

/Qprec-div

Attempts to use slower but more accurate implementation of floating-point divide. Use this option to disable the divide optimizations in cases where it is important to maintain the full range and precision for floating-point division. Using this option results in greater accuracy with some loss of performance.

Specifying -no-prec-div (Linux and Mac OS) or /Qprec-div- (Windows) enables optimizations that result in slightly less precise results than full IEEE division.

No equivalent

/Qlong-double

Changes the default size of the long double data type.

-complex-limited-range

/Qcomplex-limited-range

Enables the use of basic algebraic expansions of some arithmetic operations involving data of type COMPLEX. This can cause performance improvements in programs that use a lot of COMPLEX arithmetic. Values at the extremes of the exponent range might not compute correctly.

-ftz

/Qftz

The default behavior depends on the architecture. Refer to the following topic for details:

  • -ftz compiler option

IA-32 and Intel® 64 Architectures Only

-prec-sqrt

/Qprec-sqrt

Improves the accuracy of square root implementations, but using this option may impact speed.

-pc

/Qpc

Changes the floating point significand precision. Use this option when compiling applications.

The application must use main() as the entry point, and you must compile the source file containing main() with this option.

  • -pc compiler option

-rcd

/Qrcd

Disables rounding mode changes for floating-point-to-integer conversions.

  • -rcd compiler option

-fp-port

/Qfp-port

Causes floating-point values to be rounded to the source precision at assignments and casts.

-mp1

/Qprec

This option rounds floating-point values to the precision specified in the source program prior to comparisons.  It also implies –prec-div and –prec-sqrt (Linux and Mac OS) or  /Qprec-div and /Qprec-sqrt (Windows).  This option has less impact to performance and disables fewer optimizations than the -fp-model precise (Linux and Mac OS) or /fp:precise (Windows) option.

  • -mp1 compiler option

IA-64 Architecture Only

-IPF-fma

/QIPF-fma

Enables or disables the contraction of floating-point multiply and add/subtract operations into a single operation.

-IPF-fp-speculation

/QIPF-fp-speculation

Deprecated. Instructs the compiler to speculate on floating-point operations. Use -fp-speculate (Linux and Mac OS) or /Qfp-speculate  (Windows) instead.

-IPF-fp-relaxed

/QIPF-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 binary digit.