From 52f32d55665ef02e6ebe4518b0a1e2e2a4df0bea Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Sat, 3 Mar 2007 08:34:02 +0000 Subject: [PATCH] Regularize the interface for conversion functions to/from float/double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34881 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ADT/APInt.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/include/llvm/ADT/APInt.h b/include/llvm/ADT/APInt.h index 55633ea1569..d7a604c4165 100644 --- a/include/llvm/ADT/APInt.h +++ b/include/llvm/ADT/APInt.h @@ -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. -- 2.34.1