public inbox for [email protected]  
help / color / mirror / Atom feed
From: Nathan Bossart <[email protected]>
To: Greg Burd <[email protected]>
Cc: John Naylor <[email protected]>
Cc: Heikki Linnakangas <[email protected]>
Cc: pgsql-hackers <[email protected]>
Subject: Re: refactor architecture-specific popcount code
Date: Tue, 3 Feb 2026 11:41:31 -0600
Message-ID: <aYIzS4-IJOOgpIql@nathan> (raw)
In-Reply-To: <[email protected]>
References: <CANWCAZY7R+iy+r9YM_sySNydHzNqUirx1xk0tB3ej5HO62GdgQ@mail.gmail.com>
	<aXJjbkp2_glyfy6z@nathan>
	<aXeLLydy1lxMwcCv@nathan>
	<CANWCAZacr4AqrFzQRhhwQGwV1xSaUWyEYnYOT9SFc3cJFUWV6g@mail.gmail.com>
	<aXuTex5a4iu-BYXy@nathan>
	<CANWCAZY09VEn2+CA755wz6iJT5aNLwROGzf71E8sbUwwk1DG0Q@mail.gmail.com>
	<aX0jn2bo-xDaSlH5@nathan>
	<CANWCAZbWLX=EDd1Bq-8oGK2ZLVNR4m4BkGe=288t2V5oLcqeZA@mail.gmail.com>
	<aYEqini0ukxQv2_D@nathan>
	<[email protected]>

On Tue, Feb 03, 2026 at 12:19:48PM -0500, Greg Burd wrote:
> Thanks for the focus on this area of the code.  I've been looking into
> what to do with popcnt when building Win11/ARM64/MSVC.  I know that when
> _MSC_VER and _M_ARM64 are defined we can make use of the
> __popcnt(unsigned int) and __popcnt64(unsigned __int64) intrinsics which
> have been available since VS 2022 17.11+.  I thought I'd check that combo
> out and it turns out that it is identical to clang/gcc on that platform
> [0].
> 
> I'll wait for your work to land before proposing a patch to add these
> unless it is really easy to fit it and you feel like giving it a go. :)

We should probably just add something like

	#ifdef _MSC_VER
		return __popcnt(word);

for the new inlined versions of pg_popcount{32,64}.  We're already doing
that today for x86-64, and the AArch64-specific versions use intrinsics
that in theory compile to the same thing.  Plus, popcnt is required for
Windows these days.

I'm working on polishing/benchmarking these patches at the moment, so I
will work this change in.  Thanks!

-- 
nathan






view thread (8+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected]
  Subject: Re: refactor architecture-specific popcount code
  In-Reply-To: <aYIzS4-IJOOgpIql@nathan>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox