Implement __builtin_popcount under MSVC
[folly.git] / folly / portability / Builtins.h
index 817d1addd7e735da70c362bbd9e37022d4446f60..90179c8f453e2a85447176285516f6438c1f980d 100644 (file)
@@ -74,6 +74,10 @@ FOLLY_ALWAYS_INLINE int __builtin_ffsll(long long x) {
   return int(_BitScanForward64(&index, (unsigned long long)x) ? index + 1 : 0);
 }
 
+FOLLY_ALWAYS_INLINE int __builtin_popcount(unsigned int x) {
+  return int(__popcnt(x));
+}
+
 FOLLY_ALWAYS_INLINE int __builtin_popcountll(unsigned long long x) {
   return int(__popcnt64(x));
 }