This patch contains tests for validating the logic behind each builtin operation on fixed point types and tests on addition between saturated _Fract types.
- Detecting overflow involves checking if the sign bit flipped or if the first bit in the padding gets flipped.
- More macros wer added to the FixedPoint.h header on the min and max values for each type which will be required for operations on saturated types.
- Updated the logic when converting between fixed point types to take into account saturation. Fixed point type conversions do not fall under the "usual arithmetic conversions" where the resulting type on a binary operation resulting in a fixed point type does not need to be the type of either operands.
- Rounded down _Fract literals of 1 (1.0hr, 1.0r, 1.0lr) to the respective maximum values for each _Fract type.
This is a child of https://reviews.llvm.org/D46979