> Add bitsToDouble and bitsToFloat methods for re-interpretation of > bits as FP.
Likewise, these shouldn't be needed. -Chris > --- > 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 _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits