Regularize the interface for conversion functions to/from float/double.
authorReid Spencer <rspencer@reidspencer.com>
Sat, 3 Mar 2007 08:34:02 +0000 (08:34 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Sat, 3 Mar 2007 08:34:02 +0000 (08:34 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34881 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/APInt.h

index 55633ea156999a7112cbb040778dc3fc25cad012..d7a604c41655112746537b5354ff7500a5d47a53 100644 (file)
@@ -865,14 +865,20 @@ inline float RoundAPIntToFloat(const APInt& APIVal) {
   return float(RoundAPIntToDouble(APIVal));
 }
 
+/// Treast the APInt as a signed value for conversion purposes.
+/// @brief Converts the given APInt to a float value.
+inline float RoundSignedAPIntToFloat(const APInt& APIVal) {
+  return float(APIVal.signedRoundToDouble());
+}
+
 /// RoundDoubleToAPInt - This function convert a double value to an APInt value.
 /// @brief Converts the given double value into a APInt.
-APInt RoundDoubleToAPInt(double Double, uint32_t width = 64);
+APInt RoundDoubleToAPInt(double Double, uint32_t width);
 
 /// RoundFloatToAPInt - Converts a float value into an APInt value.
 /// @brief Converts a float value into a APInt.
-inline APInt RoundFloatToAPInt(float Float) {
-  return RoundDoubleToAPInt(double(Float));
+inline APInt RoundFloatToAPInt(float Float, uint32_t width) {
+  return RoundDoubleToAPInt(double(Float), width);
 }
 
 /// Arithmetic right-shift the APInt by shiftAmt.