[llvm-commits] CVS: llvm/lib/Support/APInt.cpp

Chris Lattner clattner at apple.com
Sun May 13 16:49:13 PDT 2007


On May 13, 2007, at 4:45 PM, Reid Spencer wrote:

> +APInt APInt::rotl(uint32_t rotateAmt) const {
> +  // Don't get too fancy, just use existing shift/or facilities
> +  APInt hi(*this);
> +  APInt lo(*this);
> +  hi.shl(rotateAmt);
> +  lo.lshr(BitWidth - rotateAmt);
> +  return hi | lo;
> +}
> +
> +APInt APInt::rotr(uint32_t rotateAmt) const {
> +  // Don't get too fancy, just use existing shift/or facilities
> +  APInt hi(*this);
> +  APInt lo(*this);
> +  lo.lshr(rotateAmt);
> +  hi.shl(BitWidth - rotateAmt);
> +  return hi | lo;
> +}

Do these work for rotamt = 0 ?

-Chris



More information about the llvm-commits mailing list