avoid INTEL package compilation failure with upcoming Intel compiler releases

This commit is contained in:
Axel Kohlmeyer
2024-08-22 17:41:47 -04:00
parent 1494d12b88
commit 01bbd60568
2 changed files with 8 additions and 0 deletions

View File

@ -123,7 +123,9 @@ struct vector_ops<double, KNC> {
static fvec recip(const fvec &a) { return _mm512_recip_pd(a); } static fvec recip(const fvec &a) { return _mm512_recip_pd(a); }
template<int scale> template<int scale>
static void gather_prefetch_t0(const ivec &idx, bvec mask, const void *base) { static void gather_prefetch_t0(const ivec &idx, bvec mask, const void *base) {
#ifdef __AVX512PF__
_mm512_mask_prefetch_i32gather_ps(idx, mask, base, scale, _MM_HINT_T0); _mm512_mask_prefetch_i32gather_ps(idx, mask, base, scale, _MM_HINT_T0);
#endif
} }
template<int scale> template<int scale>
static fvec gather(const fvec &from, bvec mask, const ivec &idx, const void *base) { static fvec gather(const fvec &from, bvec mask, const ivec &idx, const void *base) {
@ -262,7 +264,9 @@ struct vector_ops<float, KNC> {
static fvec recip(const fvec &a) { return _mm512_recip_ps(a); } static fvec recip(const fvec &a) { return _mm512_recip_ps(a); }
template<int scale> template<int scale>
static void gather_prefetch_t0(const ivec &idx, bvec mask, const void *base) { static void gather_prefetch_t0(const ivec &idx, bvec mask, const void *base) {
#ifdef __AVX512PF__
_mm512_mask_prefetch_i32gather_ps(idx, mask, base, scale, _MM_HINT_T0); _mm512_mask_prefetch_i32gather_ps(idx, mask, base, scale, _MM_HINT_T0);
#endif
} }
template<int scale> template<int scale>
static fvec gather(const fvec &from, bvec mask, const ivec &idx, const void *base) { static fvec gather(const fvec &from, bvec mask, const ivec &idx, const void *base) {

View File

@ -639,8 +639,10 @@ public:
AVEC_BINOP(-, sub) AVEC_BINOP(-, sub)
VEC_INLINE static void gather_prefetch0(const IVEC_NAME &a, void * mem) { VEC_INLINE static void gather_prefetch0(const IVEC_NAME &a, void * mem) {
#ifdef __AVX512PF__
_mm512_mask_prefetch_i32gather_ps(a.val_, BVEC_NAME::full().val_, mem, _mm512_mask_prefetch_i32gather_ps(a.val_, BVEC_NAME::full().val_, mem,
sizeof(FVEC_SCAL_T), _MM_HINT_T0); sizeof(FVEC_SCAL_T), _MM_HINT_T0);
#endif
} }
}; };
@ -697,8 +699,10 @@ public:
AVEC2_BINOP(-, sub) AVEC2_BINOP(-, sub)
VEC_INLINE static void gather_prefetch0(const IVEC_NAME &a, void * mem) { VEC_INLINE static void gather_prefetch0(const IVEC_NAME &a, void * mem) {
#ifdef __AVX512PF__
_mm512_mask_prefetch_i32gather_ps(a.val_, BVEC_NAME::full().val_, mem, _mm512_mask_prefetch_i32gather_ps(a.val_, BVEC_NAME::full().val_, mem,
sizeof(double), _MM_HINT_T0); sizeof(double), _MM_HINT_T0);
#endif
} }
}; };
#endif #endif