FV2_Normalize/FV3_Normalize Can Get Very Incorrect on Very Small Vectors
Not a visible issue currently, since the functions are barely used.
The x, y, and z all get set to INT32_MAX/MIN. This is because the result of FV2_Magnitude/FV3_Magnitude is 0. This is as a result of the FixedSqrt operation. The 0 is used in FixedDiv, so I assume this is just protection against a divide by 0. For what it's worth, this is what I've seen on 64-bit Linux, so not using any assembly versions of the functions.
Quick Edit: This could also be just the FixedMul's in the Magnitude function returning 0 because the answer is too small.
Before Normalize: -143, 221
After Normalize: -2147483648, 2147483647
Edited by Sryder