>    /// @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

Reply via email to