pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Nathan Bossart <nathandbossart@gmail.com>
To: Greg Burd <greg@burd.me>
Cc: John Naylor <johncnaylorls@gmail.com>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
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: <3a3ca14a-dada-4920-a614-42f2e5eb3f5d@app.fastmail.com>
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>
	<3a3ca14a-dada-4920-a614-42f2e5eb3f5d@app.fastmail.com>

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 (40+ messages)  latest in thread

Message-ID: <aYIzS4-IJOOgpIql@nathan>
Permalink:  ../aYIzS4-IJOOgpIql@nathan/
Also on:    postgresql.org/message-id/aYIzS4-IJOOgpIql@nathan

 · 

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: pgsql-hackers@postgresql.org
  Cc: nathandbossart@gmail.com, greg@burd.me, johncnaylorls@gmail.com, hlinnaka@iki.fi
  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 DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox