Richard Henderson <r...@twiddle.net> writes:

> On 02/25/2015 02:45 AM, Markus Armbruster wrote:
>> return 0x8000000000000000u >> (clz64(value - 1) - 1);
>
> I realize this was weeks ago, but it would certainly be preferable to shift a
> small constant left than a large constant right.
>
> Most RISC machines can't form 0x8000000000000000ull without loading 1 and then
> left shifting to start with.  So end the end you're better off with
>
>   return 1ull << (63 - clz64(value));

I intend to respin my own "[PATCH 0/2] Proactive pow2floor() fix, and
dead code removal", and I'll keep your advice in mind for that.

Reply via email to