diff --git a/src/vector.h b/src/vector.h
index a8dfd726b76de87e2638ec95ef98ae77ac5bfe2b..9c69543fc10810e5f1827eb587f568f9fa1fa1ab 100644
--- a/src/vector.h
+++ b/src/vector.h
@@ -107,8 +107,13 @@
   }
 
 /* Performs a horizontal add on the vector and adds the result to a float. */
+#ifdef __ICC
 #define VEC_HADD(a, b) b += _mm512_reduce_add_ps(a.v)
-
+#else /* _mm512_reduce_add_ps not present in GCC compiler. TODO: Implement intrinsic version.*/
+#define VEC_HADD(a, b) {                      \
+  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) \