On 2024-Apr-02, Nathan Bossart wrote:

> Another idea I had is to turn pg_popcount() into a macro that just uses the
> pg_number_of_ones array when called for few bytes:
> 
>       static inline uint64
>       pg_popcount_inline(const char *buf, int bytes)
>       {
>               uint64          popcnt = 0;
> 
>               while (bytes--)
>                       popcnt += pg_number_of_ones[(unsigned char) *buf++];
> 
>               return popcnt;
>       }
> 
>       #define pg_popcount(buf, bytes) \
>               ((bytes < 64) ? \
>                pg_popcount_inline(buf, bytes) : \
>                pg_popcount_optimized(buf, bytes))
> 
> But again, I'm not sure this is really worth it for the current use-cases.

Eh, that seems simple enough, and then you can forget about that case.

-- 
Álvaro Herrera        Breisgau, Deutschland  —  https://www.EnterpriseDB.com/
"No hay hombre que no aspire a la plenitud, es decir,
la suma de experiencias de que un hombre es capaz"


Reply via email to