diff --git a/src/vppinfra/bihash_24_16.h b/src/vppinfra/bihash_24_16.h
index 4e979b4..b9279a8 100644
--- a/src/vppinfra/bihash_24_16.h
+++ b/src/vppinfra/bihash_24_16.h
@@ -77,8 +77,8 @@
 clib_bihash_key_compare_24_16 (u64 * a, u64 * b)
 {
 #if defined (CLIB_HAVE_VEC512)
-  u64x8 v = u64x8_load_unaligned (a) ^ u64x8_load_unaligned (b);
-  return (u64x8_is_zero_mask (v) & 0x7) == 0;
+  return u64x8_is_equal (u64x8_mask_load_zero (a, 0x7),
+			 u64x8_mask_load_zero (b, 0x7));
 #elif defined(CLIB_HAVE_VEC128) && defined(CLIB_HAVE_VEC128_UNALIGNED_LOAD_STORE)
   u64x2 v = { a[2] ^ b[2], 0 };
   v |= u64x2_load_unaligned (a) ^ u64x2_load_unaligned (b);
diff --git a/src/vppinfra/bihash_24_8.h b/src/vppinfra/bihash_24_8.h
index 2d667ad..e834374 100644
--- a/src/vppinfra/bihash_24_8.h
+++ b/src/vppinfra/bihash_24_8.h
@@ -77,8 +77,8 @@
 clib_bihash_key_compare_24_8 (u64 * a, u64 * b)
 {
 #if defined (CLIB_HAVE_VEC512)
-  u64x8 v = u64x8_load_unaligned (a) ^ u64x8_load_unaligned (b);
-  return (u64x8_is_zero_mask (v) & 0x7) == 0;
+  return u64x8_is_equal (u64x8_mask_load_zero (a, 0x7),
+			 u64x8_mask_load_zero (b, 0x7));
 #elif defined(CLIB_HAVE_VEC128) && defined(CLIB_HAVE_VEC128_UNALIGNED_LOAD_STORE)
   u64x2 v = { a[2] ^ b[2], 0 };
   v |= u64x2_load_unaligned (a) ^ u64x2_load_unaligned (b);
diff --git a/src/vppinfra/bihash_32_8.h b/src/vppinfra/bihash_32_8.h
index 0935fcc..52a1835 100644
--- a/src/vppinfra/bihash_32_8.h
+++ b/src/vppinfra/bihash_32_8.h
@@ -77,8 +77,8 @@
 clib_bihash_key_compare_32_8 (u64 *a, u64 *b)
 {
 #if defined(CLIB_HAVE_VEC512)
-  u64x8 v = u64x8_load_unaligned (a) ^ u64x8_load_unaligned (b);
-  return (u64x8_is_zero_mask (v) & 0xf) == 0;
+  return u64x8_is_equal (u64x8_mask_load_zero (a, 0xf),
+			 u64x8_mask_load_zero (b, 0xf));
 #elif defined(CLIB_HAVE_VEC256)
   u64x4 v = u64x4_load_unaligned (a) ^ u64x4_load_unaligned (b);
   return u64x4_is_all_zero (v);
diff --git a/src/vppinfra/bihash_40_8.h b/src/vppinfra/bihash_40_8.h
index 1fb344f..f64784f 100644
--- a/src/vppinfra/bihash_40_8.h
+++ b/src/vppinfra/bihash_40_8.h
@@ -78,9 +78,8 @@
 clib_bihash_key_compare_40_8 (u64 * a, u64 * b)
 {
 #if defined (CLIB_HAVE_VEC512)
-  u64x8 v;
-  v = u64x8_load_unaligned (a) ^ u64x8_load_unaligned (b);
-  return (u64x8_is_zero_mask (v) & 0x1f) == 0;
+  return u64x8_is_equal (u64x8_mask_load_zero (a, 0x1f),
+			 u64x8_mask_load_zero (b, 0x1f));
 #elif defined (CLIB_HAVE_VEC256)
   u64x4 v = { a[4] ^ b[4], 0, 0, 0 };
   v |= u64x4_load_unaligned (a) ^ u64x4_load_unaligned (b);
diff --git a/src/vppinfra/bihash_48_8.h b/src/vppinfra/bihash_48_8.h
index 54fd709..928b102 100644
--- a/src/vppinfra/bihash_48_8.h
+++ b/src/vppinfra/bihash_48_8.h
@@ -78,8 +78,8 @@
 clib_bihash_key_compare_48_8 (u64 * a, u64 * b)
 {
 #if defined (CLIB_HAVE_VEC512)
-  u64x8 v = u64x8_load_unaligned (a) ^ u64x8_load_unaligned (b);
-  return (u64x8_is_zero_mask (v) & 0x3f) == 0;
+  return u64x8_is_equal (u64x8_mask_load_zero (a, 0x3f),
+			 u64x8_mask_load_zero (b, 0x3f));
 #elif defined (CLIB_HAVE_VEC256)
   u64x4 v = { 0 };
   v = u64x4_insert_lo (v, u64x2_load_unaligned (a + 4) ^
