Changes in directory llvm/include/llvm/ADT:
APInt.h updated: 1.33 -> 1.34 --- Log message: Add doubleToBits and floatToBits methods. --- Diffs of the changes: (+34 -0) APInt.h | 34 ++++++++++++++++++++++++++++++++++ 1 files changed, 34 insertions(+) Index: llvm/include/llvm/ADT/APInt.h diff -u llvm/include/llvm/ADT/APInt.h:1.33 llvm/include/llvm/ADT/APInt.h:1.34 --- llvm/include/llvm/ADT/APInt.h:1.33 Thu Mar 1 14:06:51 2007 +++ llvm/include/llvm/ADT/APInt.h Thu Mar 1 14:39:01 2007 @@ -723,6 +723,40 @@ return T.F; } + /// The conversion does not do a translation from double to integer, it just + /// re-interprets the bits of the double. Note that it is valid to do this on + /// any bit width but bits from V may get truncated. + /// @brief Converts a double to APInt bits. + APInt& doubleToBits(double V) { + union { + uint64_t I; + double D; + } T; + T.D = V; + if (isSingleWord()) + VAL = T.I; + else + pVal[0] = T.I; + return clearUnusedBits(); + } + + /// The conversion does not do a translation from float to integer, it just + /// re-interprets the bits of the float. Note that it is valid to do this on + /// any bit width but bits from V may get truncated. + /// @brief Converts a float to APInt bits. + APInt& floatToBits(float V) { + union { + uint32_t I; + float F; + } T; + T.F = V; + if (isSingleWord()) + VAL = T.I; + else + pVal[0] = T.I; + return clearUnusedBits(); + } + /// @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