Static Value-Flow Analysis
Static Public Member Functions | List of all members
SVF::PopulationCounter< T, 8 > Struct Template Reference

#include <SparseBitVector.h>

Static Public Member Functions

static unsigned count (T Value)
 

Detailed Description

template<typename T>
struct SVF::PopulationCounter< T, 8 >

Definition at line 219 of file SparseBitVector.h.

Member Function Documentation

◆ count()

template<typename T >
static unsigned SVF::PopulationCounter< T, 8 >::count ( Value)
inlinestatic

Definition at line 221 of file SparseBitVector.h.

222  {
223 #if defined(__GNUC__)
224  return __builtin_popcountll(Value);
225 #else
226  uint64_t v = Value;
227  v = v - ((v >> 1) & 0x5555555555555555ULL);
228  v = (v & 0x3333333333333333ULL) + ((v >> 2) & 0x3333333333333333ULL);
229  v = (v + (v >> 4)) & 0x0F0F0F0F0F0F0F0FULL;
230  return unsigned((uint64_t)(v * 0x0101010101010101ULL) >> 56);
231 #endif
232  }
llvm::Value Value
LLVM Basic classes.
Definition: BasicTypes.h:82

The documentation for this struct was generated from the following file: