On Sun, 2007-05-13 at 16:49 -0700, Chris Lattner wrote: > 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 ?
Yes, but results are undefined (in our case value 0). This behavior is implemented in lshr and shl. Reid. > > -Chris > _______________________________________________ > 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