/QIfist
/QIfist suppresses the call of the helper function, _ftol, when a conversion from a floating-point type to an integral type is required.
In addition to converting from a floating point type to integral type, the _ftol function ensures the rounding mode of the FPU is toward zero (truncate), by setting bits 10 and 11 of the control word. This guarantees that converting from a floating-point type to an integral type occurs as described by the ANSI C standard (the fractional portion of the number is discarded). When using the /QIfist switch, this guarantee no longer applies. The rounding mode will be one of four as documented in Intel reference manuals:
You can use the _controlfp C Run-Time function to modify the rounding behavior of the FPU. The default rounding mode of the CRT is "Round toward nearest." Using the /QIfist compiler switch can improve the performance of your application, but not without risk. You should thoroughly test the portions of your code that are sensitive to rounding modes before relying upon code built with /QIfist in production environments.
Caution This switch is not active by default because the rounding bits also affect FP to FP rounding (which occurs after every calculation), so when you set the flags for C-style (toward zero) rounding, your FP calculations might be different. This switch should not be used if your code depends upon the expected behavior of truncating the fractional portion of the floating-point number. If you are unsure, do not use this switch.
/Q options (Low-level Operations) | Compiler Options | Setting Compiler Options