Changes in directory llvm/include/llvm/ADT:
APInt.h updated: 1.32 -> 1.33 --- Log message: Add bitsToDouble and bitsToFloat methods for re-interpretation of bits as FP. --- Diffs of the changes: (+26 -0) APInt.h | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+) Index: llvm/include/llvm/ADT/APInt.h diff -u llvm/include/llvm/ADT/APInt.h:1.32 llvm/include/llvm/ADT/APInt.h:1.33 --- llvm/include/llvm/ADT/APInt.h:1.32 Thu Mar 1 11:15:32 2007 +++ llvm/include/llvm/ADT/APInt.h Thu Mar 1 14:06:51 2007 @@ -697,6 +697,32 @@ return roundToDouble(true); } + /// The conversion does not do a translation from integer to double, it just + /// re-interprets the bits as a double. Note that it is valid to do this on + /// any bit width. Exactly 64 bits will be translated. + /// @brief Converts APInt bits to a double + double bitsToDouble() const { + union { + uint64_t I; + double D; + } T; + T.I = (isSingleWord() ? VAL : pVal[0]); + return T.D; + } + + /// The conversion does not do a translation from integer to float, it just + /// re-interprets the bits as a float. Note that it is valid to do this on + /// any bit width. Exactly 32 bits will be translated. + /// @brief Converts APInt bits to a double + float bitsToFloat() const { + union { + uint32_t I; + float F; + } T; + T.I = uint32_t((isSingleWord() ? VAL : pVal[0])); + return T.F; + } + /// @brief Compute the square root APInt sqrt() const; }; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits