Re: vectorized CRC on ARM64

John Naylor <johncnaylorls@gmail.com>

From: John Naylor <johncnaylorls@gmail.com>
To: Tomas Vondra <tomas@vondra.me>
Cc: Nathan Bossart <nathandbossart@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-04-05T01:56:05Z
Lists: pgsql-hackers
On Sun, Apr 5, 2026 at 1:36 AM Tomas Vondra <tomas@vondra.me> wrote:
> I happened to do some testing on rpi5 with a 32-bit user space, and when
> building with this commit I get these warnings from clang:

> pg_crc32c_armv8_choose.c:112:1: warning: unused function
> 'pg_pmull_available' [-Wunused-function]
>   112 | pg_pmull_available(void)
>       | ^~~~~~~~~~~~~~~~~~
> 1 warning generated.
>
> I suppose the pg_pmull_available() needs to be if-defed with
> USE_PMULL_CRC32C_WITH_RUNTIME_CHECK. That removes the warning for me, at
> least.

Hmm, it looks like gcc is different in that it won't warn on unused
static inlines, only unused statics. The fix is right, so done that
way, thanks for the report!

-- 
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 →
  1. Use C11 alignas instead of pg_attribute_aligned

  2. Add missing guard for __builtin_constant_p

  3. Exit early from pg_comp_crc32c_pmull for small inputs

  4. Fix unused function warning on Arm platforms

  5. Compute CRC32C on ARM using the Crypto Extension where available