On Sat, 2007-03-24 at 16:31 -0700, Chris Lattner wrote:
> > /// @param loBit the index of the lowest bit set.
> > /// @returns An APInt value with the requested bits set.
> > /// @brief Get a value with a block of bits set.
> > - static APInt getBitsSet(uint32_t numBits, uint32_t hiBit,
> > uint32_t loBit = 0);
> > + static APInt getBitsSet(uint32_t numBits, uint32_t hiBit,
> > uint32_t loBit = 0){
> > + assert(hiBit < numBits && "hiBit out of range");
> > + assert(loBit < numBits && "loBit out of range");
> > + if (hiBit < loBit)
>
> Hrm? Why would you allow hiBit < loBit? This seems like something
> that should be asserted against.Read the definition of the function in the documentation. It allows you to construct things like: 0xFF0000FF with getBitsSet(32, 8, 24); > > > + return getLowBitsSet(numBits, hiBit+1) | > > + getHighBitsSet(numBits, numBits-loBit+1); > > + else if (loBit == 0) > > + return getLowBitsSet(numBits, hiBit+1); > > Do you need this special case for correctness? No, I was trying to saves a rather expensive shl for a common case. However, I decided that before I wrote getLowBitsSet (which is the equivalent). I'll remove that case and the default parameter. > > -Chris > > > + return getLowBitsSet(numBits, hiBit-loBit+1).shl(loBit); > > + } > > > > /// Constructs an APInt value that has the top hiBitsSet bits set. > > /// @param numBits the bitwidth of the result > > > > > > > > _______________________________________________ > > llvm-commits mailing list > > [email protected] > > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits >
signature.asc
Description: This is a digitally signed message part
_______________________________________________ llvm-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
