diff options
| -rw-r--r-- | src/map/if/ifDec07.c | 4 | ||||
| -rw-r--r-- | src/misc/util/utilTruth.h | 13 | ||||
| -rw-r--r-- | src/opt/dau/dauNonDsd.c | 17 | 
3 files changed, 17 insertions, 17 deletions
diff --git a/src/map/if/ifDec07.c b/src/map/if/ifDec07.c index 6059b772..725b532f 100644 --- a/src/map/if/ifDec07.c +++ b/src/map/if/ifDec07.c @@ -988,13 +988,13 @@ word If_Dec5PerformEx()  {      word z;      // find one -    z = 0x17ac & 0xFFFF; +    z = (word)(0x17ac & 0xFFFF);      z |= (((word)3) << (16 + 4*0));      z |= (((word)4) << (16 + 4*1));      z |= (((word)1) << (16 + 4*2));      z |= (((word)2) << (16 + 4*3));      // second one -    z |= ((0x179a & 0xFFFF) << 32); +    z |= (((word)(0x179a & 0xFFFF)) << 32);      z |= (((word)0) << (48 + 4*0));      z |= (((word)7) << (48 + 4*1));      z |= (((word)1) << (48 + 4*2)); diff --git a/src/misc/util/utilTruth.h b/src/misc/util/utilTruth.h index cded2ce8..14b13234 100644 --- a/src/misc/util/utilTruth.h +++ b/src/misc/util/utilTruth.h @@ -61,6 +61,19 @@ static word s_PMasks[5][3] = {      { ABC_CONST(0xFFFF00000000FFFF), ABC_CONST(0x00000000FFFF0000), ABC_CONST(0x0000FFFF00000000) }  }; +// the bit count for the first 256 integer numbers +static int Abc_TtBitCount8[256] = { +    0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5, +    1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6, +    1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6, +    2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7, +    1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6, +    2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7, +    2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7, +    3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8 +}; +static inline int Abc_TtBitCount16( int i ) { return Abc_TtBitCount8[i & 0xFF] + Abc_TtBitCount8[i >> 8]; } +  ////////////////////////////////////////////////////////////////////////  ///                      MACRO DEFINITIONS                           ///  //////////////////////////////////////////////////////////////////////// diff --git a/src/opt/dau/dauNonDsd.c b/src/opt/dau/dauNonDsd.c index 65821027..c923d3eb 100644 --- a/src/opt/dau/dauNonDsd.c +++ b/src/opt/dau/dauNonDsd.c @@ -27,19 +27,6 @@ ABC_NAMESPACE_IMPL_START  ///                        DECLARATIONS                              ///  //////////////////////////////////////////////////////////////////////// -// the bit count for the first 256 integer numbers -static int BitCount8[256] = { -    0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5, -    1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6, -    1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6, -    2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7, -    1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6, -    2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7, -    2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7, -    3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8 -}; -static inline BitCount16( int i ) { return BitCount8[i & 0xFF] + BitCount8[i >> 8]; } -  ////////////////////////////////////////////////////////////////////////  ///                     FUNCTION DEFINITIONS                         ///  //////////////////////////////////////////////////////////////////////// @@ -323,7 +310,7 @@ Vec_Int_t * Dau_DecFindSets( word * p, int nVars )      // iterate through bound sets of each size in increasing order      for ( sizeB = 2; sizeB < nVars; sizeB++ ) // bound set size      for ( maskB = 0; maskB < Limit; maskB++ ) // bound set -    if ( BitCount16(maskB) == sizeB ) +    if ( Abc_TtBitCount16(maskB) == sizeB )      {          // permute variables to have bound set on top          Dau_DecMoveFreeToLSB( p, nVars, V2P, P2V, maskB, sizeB ); @@ -342,7 +329,7 @@ Vec_Int_t * Dau_DecFindSets( word * p, int nVars )          for ( sizeS = 1; sizeS <= sizeB - 2; sizeS++ )   // shared set size  //        sizeS = 1;           for ( maskS = 0; maskS < (1 << sizeB); maskS++ ) // shared set -        if ( BitCount16(maskS) == sizeS ) +        if ( Abc_TtBitCount16(maskS) == sizeS )          {              setMixed = Dau_DecCreateSet( pVarsB, sizeB, maskS );  //            printf( "Considering %10d ", setMixed );  | 
