diff --git a/src/opt/dar/darCut.c b/src/opt/dar/darCut.c index da1c9eafa6..49f36ca142 100644 --- a/src/opt/dar/darCut.c +++ b/src/opt/dar/darCut.c @@ -85,11 +85,10 @@ void Dar_ObjCutPrint( Aig_Man_t * p, Aig_Obj_t * pObj ) ***********************************************************************/ static inline int Dar_WordCountOnes( unsigned uWord ) { - uWord = (uWord & 0x55555555) + ((uWord>>1) & 0x55555555); - uWord = (uWord & 0x33333333) + ((uWord>>2) & 0x33333333); - uWord = (uWord & 0x0F0F0F0F) + ((uWord>>4) & 0x0F0F0F0F); - uWord = (uWord & 0x00FF00FF) + ((uWord>>8) & 0x00FF00FF); - return (uWord & 0x0000FFFF) + (uWord>>16); + uWord = uWord - ((uWord >> 1) & 0x55555555); + uWord = (uWord & 0x33333333) + ((uWord >> 2) & 0x33333333); + uWord = (uWord + (uWord >> 4)) & 0x0F0F0F0F; + return (int)((uWord * 0x01010101) >> 24); } /**Function*************************************************************