From cd8de40b3b10311de2db7b90abdf80af9e35535f Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Sat, 22 Jan 2022 00:54:42 +0100 Subject: bpo-29882: _Py_popcount32() doesn't need 64x64 multiply (GH-30774) 32x32 bits multiply is enough for _Py_popcount32(). --- Include/internal/pycore_bitutils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Include/internal/pycore_bitutils.h b/Include/internal/pycore_bitutils.h index e4aa7a3..3fd70b0 100644 --- a/Include/internal/pycore_bitutils.h +++ b/Include/internal/pycore_bitutils.h @@ -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 } -- cgit v0.12