I would like to ask about floating-point HW on i.MX6.
In the document which describes about GCC options, the description about NEON is as follows.
“If the selected floating-point hardware includes the NEON extension (e.g. -mfpu=‘neon’), note that floating-point operations are not generated by GCC's auto-vectorization pass unless -funsafe-math-optimizations is also specified. This is because NEON hardware does not fully implement the IEEE 754 standard for floating-point arithmetic (in particular denormal values are treated as zero), so the use of NEON instructions may lead to a loss of precision.“
You can see the full document at the following URL.
In my customer’s lab, he saw the execution time was reduced by half when –funsafe-math-optimization flag was specified in GCC command.
So, the customer has the following question on that.
Can I understand that the flag, –funsafe-math-optimization, enables NEON H/W?
According to the documentation of GCC, the use of NEON instructions may lead to a loss of precision.
Could you show me in what use-cases the loss of precision may occur exactly?
The customer supposes that he use NEON for MAC operation of the finite numbers and denormal numbers in his application software.
And, he thinks the precision loss will not be problem in the above usage.
Is he correct?