Go to the documentation of this file.
30 #include "../../Basic/interface/BasicPlatformMisc.hpp"
31 #include "../../../Platforms/Basic/interface/DebugUtilities.hpp"
37 if (Val == 0)
return 32;
41 auto LeadingZeros = __builtin_clz(Val);
42 auto MSB = 31 - LeadingZeros;
50 if (Val == 0)
return 32;
54 auto TrailingZeros = __builtin_ctz(Val);
55 auto LSB = TrailingZeros;
63 if (Val == 0)
return 64;
67 auto LeadingZeros = __builtin_clzll(Val);
68 auto MSB = 63 - LeadingZeros;
76 if (Val == 0)
return 64;
80 auto TrailingZeros = __builtin_ctzll(Val);
81 auto LSB = TrailingZeros;
90 auto bits = __builtin_popcount(Val);
98 auto bits = __builtin_popcountll(Val);
static Diligent::Uint32 GetMSB(Diligent::Uint64 Val)
Definition: LinuxPlatformMisc.hpp:61
static Diligent::Uint32 CountOneBits(Diligent::Uint32 Val)
Definition: LinuxPlatformMisc.hpp:87
uint64_t Uint64
64-bit unsigned integer
Definition: BasicTypes.h:50
static Diligent::Uint32 GetMSB(Diligent::Uint32 Val)
Definition: LinuxPlatformMisc.hpp:35
static Diligent::Uint32 GetLSB(Diligent::Uint64 Val)
Definition: LinuxPlatformMisc.hpp:74
static Diligent::Uint32 GetLSB(Diligent::Uint32 Val)
Definition: LinuxPlatformMisc.hpp:48
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:51
Definition: LinuxPlatformMisc.hpp:33
#define VERIFY_EXPR(...)
Definition: DebugUtilities.hpp:79
static Diligent::Uint32 CountOneBits(Diligent::Uint64 Val)
Definition: LinuxPlatformMisc.hpp:95