Re: Optimize multiplications/divisions by 2 using bit shifts in hot paths - Mailing list pgsql-hackers

From David Rowley
Subject Re: Optimize multiplications/divisions by 2 using bit shifts in hot paths
Date
Msg-id CAApHDvq7U5T5vyW9rvKj-xgxV-Sx3XDr30sMH0ydFbMDDxcwcQ@mail.gmail.com
Whole thread Raw
In response to Optimize multiplications/divisions by 2 using bit shifts in hot paths  (Chao Li <li.evan.chao@gmail.com>)
Responses Re: Optimize multiplications/divisions by 2 using bit shifts in hot paths
List pgsql-hackers
On Fri, 19 Sept 2025 at 14:11, Chao Li <li.evan.chao@gmail.com> wrote:
> This patch uses left/right shift operators to optimize *2 and /2 operations in some functions that are in critical
paths.
>
> For unsigned int, *2 and /2 exactly equal to <<1 and >>1.

The compiler is most likely going to do this anyway. Try it out at
https://godbolt.org/z/Y538Yd4Ka

What maybe is worth looking at is verifying which of these variables
is signed when it really should be unsigned. Dividing by 2 and >> 1
aren't the same for negative numbers.

David



pgsql-hackers by date:

Previous
From: Chao Li
Date:
Subject: Optimize multiplications/divisions by 2 using bit shifts in hot paths
Next
From: Fujii Masao
Date:
Subject: Re: Suggestion to add --continue-client-on-abort option to pgbench