bpo-29882: _Py_popcount32() doesn't need 64x64 multiply (GH-30774)

32x32 bits multiply is enough for _Py_popcount32().
This commit is contained in:
Victor Stinner 2022-01-22 00:54:42 +01:00 committed by GitHub
parent ac1f152421
commit cd8de40b3b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -125,7 +125,7 @@ _Py_popcount32(uint32_t x)
// Put count of each 8 bits into those 8 bits
x = (x + (x >> 4)) & M4;
// Sum of the 4 byte counts
return (uint32_t)((uint64_t)x * (uint64_t)SUM) >> 24;
return (x * SUM) >> 24;
#endif
}