Fix (u)int64_t->float conversion on arm
Fix (u)int64_t->float conversion on arm
The neon version of the conversion code was narrowing the 64 bit integer to 32 bits before converting to float. This meant that any value larger that 32 bits was truncated, even though both the source and destination types are perfectly capable of represeting the value.
The fix consists of first converting the (64 bit) integer value to a 64-bit float value (double), and only then narrowing to 32-bit (single precision) float.