On Fri, Jan 27, 2006 at 11:10:29AM +0530, Balbir Singh wrote: > On 1/27/06, Akinobu Mita <mita@miraclelinux.com> wrote: > > On Thu, Jan 26, 2006 at 12:42:09PM +0530, Balbir Singh wrote: > > > > > > +static inline unsigned int hweight32(unsigned int w) > > > > +{ > > > > + unsigned int res = (w & 0x55555555) + ((w >> 1) & 0x55555555); > > > > + res = (res & 0x33333333) + ((res >> 2) & 0x33333333); > > > > + res = (res & 0x0F0F0F0F) + ((res >> 4) & 0x0F0F0F0F); > > > > + res = (res & 0x00FF00FF) + ((res >> 8) & 0x00FF00FF); > > > > + return (res & 0x0000FFFF) + ((res >> 16) & 0x0000FFFF); > > > > +} > > > > + > > > > > > This can be replaced with > > > > > > register int res=w; > > > res=res-((res>>1)&0x55555555); > > > res=(res&0x33333333)+((res>>2)&0x33333333); > > > res=(res+(res>>4))&0x0f0f0f0f; > > > res=res+(res>>8); > > > return (res+(res>>16)) & 0xff; > > > > Probably you are right. > > Unfortunately, it is difficult for me to prove that sane equivalence. > > > > Well, a proof is not difficult. This is a well tested proven piece of > code published by Don Knuth. If you need a proof, I can provide one. Thanks, I want. - To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.htmlReceived on Fri Jan 27 17:41:01 2006
This archive was generated by hypermail 2.1.8 : 2006-01-27 17:41:09 EST