Replace int2float() with an optimized version.
authorSteven Fuerst <svfuerst@gmail.com>
Wed, 15 Aug 2012 22:07:15 +0000 (15:07 -0700)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 20 Sep 2012 17:10:34 +0000 (13:10 -0400)
We use __fls() to find the most significant bit.  Using that, the
loop can be avoided.  A second trick is to use the behaviour of the
rotate instructions to expand the range of the unsigned int to float
conversion to the full 32 bits in a branchless way.

The routine is now exact up to 2^24.  Above that, we truncate which
is equivalent to rounding towards zero.

Signed-off-by: Steven Fuerst <svfuerst@gmail.com>

No differences found