Re: vectorized CRC on ARM64
John Naylor <johncnaylorls@gmail.com>
From: John Naylor <johncnaylorls@gmail.com>
To: Haibo Yan <tristan.yim@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-03-22T05:26:24Z
Lists: pgsql-hackers
On Thu, Mar 19, 2026 at 12:17 AM Haibo Yan <tristan.yim@gmail.com> wrote: > > On Tue, Mar 17, 2026 at 11:52 PM John Naylor <johncnaylorls@gmail.com> wrote: >> I don't know if that's relevant for current server hardware, so it >> could be pointless. I'm personally not a fan of inline assembly, but I >> also didn't yet want to put in the effort to alter generated code. I >> don't think it would be very hard to do, however. > > > Thanks, that makes sense as an explanation for why the inline asm is there today. But it also sounds like this is more of a temporary implementation choice than a conclusion that intrinsics are unsuitable. I can see how my words imply that, but after a moment's thought I still don't want to put in that effort without a good reason. For starters, what I said above about "not very hard" may be wishful thinking. > If so, I wonder whether it would be better to treat an intrinsics-based version as the preferred end state unless benchmarks show a clear regression. To meet your criterion, we'd not only have to rewrite it correctly, we'd have to test on multiple vendors of non-Apple hardware and multiple compiler vendors/versions (at least where the binary output is different) to prove we haven't caused a regression. I wouldn't recommend anyone to accept that challenge as stated, since the risk/reward ratio is just not favorable. Especially considering we're 2 1/2 weeks away from feature freeze. -- John Naylor Amazon Web Services
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Use C11 alignas instead of pg_attribute_aligned
- 182f6944d3d0 19 (unreleased) landed
- 8061bfd15abe master landed
-
Add missing guard for __builtin_constant_p
- 936d8974c3bc 18.4 landed
- 676626426285 19 (unreleased) landed
-
Exit early from pg_comp_crc32c_pmull for small inputs
- 948ef7cdc499 19 (unreleased) landed
-
Fix unused function warning on Arm platforms
- 2849fe4c9785 19 (unreleased) landed
-
Compute CRC32C on ARM using the Crypto Extension where available
- fbc57f2bc2ee 19 (unreleased) landed