The -qfloat=hsflt option improves the performance of floating-point computations by suppressing all rounding operations and by performing conversions from floating point to integer with inline code. This option is intended for knowledgeable programmers in specific applications where the computational characteristics of a program are known. To safely use the hsflt option, a program must never attempt to assign floating-point results to single-precision variables unless the results are known to be within the allowable range of single-precision values. In addition, if any floating-point numbers are converted to integers, the floating-point numbers must be within the representable range of integers. If the hsflt option is used in cases where a program does not have these properties, the program may produce incorrect results without warning. When the computational characteristics of a program are not known, use hssngl not hsflt.
In suppressing rounding operations, the hsflt option operates in the same way as the hssngl option. However, the hsflt option also suppresses rounding operations when double-precision values are assigned to single-precision variables. Single-precision overflow or underflow is not detected in such assignments, and the assigned value is not properly rounded according to the current rounding mode.
For floating-point-to-integer conversions, the hsflt option allows the compiler to use inline code sequences instead of subroutine calls. The inline code sequences do not check the floating-point value, and produce incorrect results in cases where the floating-point value does not fall within the range of an integer.
Use the -qfloat=hsflt option with the -O option, but not with the -qfloat=rndsngl or -qfloat=hssngl options.
Overview
-qfloat=nomaf
-qfloat=hssngl
-qfloat=nans
-qfloat=rndsngl
-qflttrap
float Compiler Option
flttrap Compiler Option