-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Medium
-
Code Generation Tools
-
CODEGEN-13346
-
-
-
default
-
With --fp_mode=relaxed, the compiler converts expf(), exp2f(), powf() to use intrinsic __iexp2(float) which uses TMU1 instruction IEXP2F32.
However, IEXP2F32 is accurate when the base is (Base between -1.0 and +1.0, Exponent between -2 and +2), not otherwise.
Hence, this conversion in --fp_mode=relaxed should be removed.
Users can use the intrinsic if they wish to. We should add a prominent note in the compiler user guide indicating this removal - since there may be customers in production with the RTS library calls and --fp_mode=relaxed and it may have been working well for them based on their input data ranges. They would need to switch to the intrinsic to get the same level of performance they were getting earlier.
See attached email for details.