> /// @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. > + 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? -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 > 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