diff options
author | Tom Lane | 2025-06-23 15:50:21 +0000 |
---|---|---|
committer | Tom Lane | 2025-06-23 15:50:21 +0000 |
commit | ccd5bc93fdfeae22c935f405b0687be5cfa9caa4 (patch) | |
tree | 23a3e58a5b2e70e256e05fa530bd81d806c9ebfe | |
parent | 43da394304fba820830da2cef2c0214fe292c037 (diff) |
Include _mm512_zextsi128_si512() in AVX-512 configure probes.
Commit 43da39430 added a dependency on this intrinsic to our
AVX-512 CRC code. It turns out this intrinsic was added to
gcc later than the other ones we were using, so that there
are platforms where the new code fails to compile. Since only
relatively old (pre-gcc-10) compilers are affected, it doesn't
seem worth trying to make the AVX-512 CRC code actually work
on these platforms. Just add the new intrinsic to the configure
probe, so that we'll conclude the code can't be built.
Author: Tom Lane <[email protected]>
Reviewed-by: Nathan Bossart <[email protected]>
Discussion: https://postgr.es/m/[email protected]
-rw-r--r-- | config/c-compiler.m4 | 1 | ||||
-rwxr-xr-x | configure | 1 | ||||
-rw-r--r-- | meson.build | 1 |
3 files changed, 3 insertions, 0 deletions
diff --git a/config/c-compiler.m4 b/config/c-compiler.m4 index 5f3e1d1faf..da40bd6a64 100644 --- a/config/c-compiler.m4 +++ b/config/c-compiler.m4 @@ -602,6 +602,7 @@ AC_CACHE_CHECK([for _mm512_clmulepi64_epi128], [Ac_cachevar], { __m128i z; + x = _mm512_xor_si512(_mm512_zextsi128_si512(_mm_cvtsi32_si128(0)), x); y = _mm512_clmulepi64_epi128(x, y, 0); z = _mm_ternarylogic_epi64( _mm512_castsi512_si128(y), @@ -18227,6 +18227,7 @@ else { __m128i z; + x = _mm512_xor_si512(_mm512_zextsi128_si512(_mm_cvtsi32_si128(0)), x); y = _mm512_clmulepi64_epi128(x, y, 0); z = _mm_ternarylogic_epi64( _mm512_castsi512_si128(y), diff --git a/meson.build b/meson.build index 474763ad19..6ffe7b4727 100644 --- a/meson.build +++ b/meson.build @@ -2465,6 +2465,7 @@ int main(void) { __m128i z; + x = _mm512_xor_si512(_mm512_zextsi128_si512(_mm_cvtsi32_si128(0)), x); y = _mm512_clmulepi64_epi128(x, y, 0); z = _mm_ternarylogic_epi64( _mm512_castsi512_si128(y), |