diff --git a/src/vector.h b/src/vector.h
index 7d82b9f5c9e2bc6e1fea9426ab3870eeec180408..93b7968475ab7937aeb69af42e88339028940981 100644
--- a/src/vector.h
+++ b/src/vector.h
@@ -116,10 +116,13 @@
     for (int i = 0; i < VEC_SIZE; i++) b += a.f[i]; \
   }
 #endif
-/* Calculates the number of set bits in the mask and adds the result to an int.
- */
-#define VEC_FORM_PACKED_MASK(mask, v_mask, pack) \
-  pack += __builtin_popcount(mask);
+
+/* Do nothing in the case of AVX-512 as there are already
+ * instructions for left-packing.*/
+#define VEC_FORM_PACKED_MASK(mask, packed_mask) packed_mask = mask
+
+/* Finds the horizontal maximum of vector b and returns a float. */
+#define VEC_HMAX(a, b) b = _mm512_reduce_max_ps(a.v)
 
 /* Performs a left-pack on a vector based upon a mask and returns the result. */
 #define VEC_LEFT_PACK(a, mask, result) \