On Tue, Dec 28, 2021 at 1:45 PM Bart via lazarus <
lazarus@lists.lazarus-ide.org> wrote:

> @Juha: can you please comment on my possible improvement using PopCnt
> instead of a multiplication with ONEMASK.
>

I confess I didn't remember what PopCnt does. I checked from the net.
FPC implements it as internproc.
  function PopCnt(Const AValue : QWord): QWord;[internproc:fpc_in_popcnt_x];
I guess it translates to one x86_64 instruction.
Is it implemented for all CPUs? I found this:
  https://gitlab.com/freepascal.org/fpc/source/-/issues/38729
If it works everywhere, good. It looks like another good optimization for
this highly optimized function.


I will patch the function using unsigned types where applicable.
> I will keep the loop variables unsigned though.
>

Yes, thank you.

Regards,
Juha
-- 
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to