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) \