diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 5f3e1d1faf9..da40bd6a647 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),
diff --git a/configure b/configure
index 4f15347cc95..3d3d3db97a4 100755
--- a/configure
+++ b/configure
@@ -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 474763ad19f..6ffe7b47275 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),
