From 01bbd60568d55abab0b34bb0d775a853dbb33e3a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 22 Aug 2024 17:41:47 -0400 Subject: [PATCH] avoid INTEL package compilation failure with upcoming Intel compiler releases --- src/INTEL/intel_intrinsics.h | 4 ++++ src/INTEL/intel_intrinsics_airebo.h | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/INTEL/intel_intrinsics.h b/src/INTEL/intel_intrinsics.h index c106dfd411..a2b5a25a6a 100644 --- a/src/INTEL/intel_intrinsics.h +++ b/src/INTEL/intel_intrinsics.h @@ -123,7 +123,9 @@ struct vector_ops { static fvec recip(const fvec &a) { return _mm512_recip_pd(a); } template 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); +#endif } template static fvec gather(const fvec &from, bvec mask, const ivec &idx, const void *base) { @@ -262,7 +264,9 @@ struct vector_ops { static fvec recip(const fvec &a) { return _mm512_recip_ps(a); } template 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); +#endif } template static fvec gather(const fvec &from, bvec mask, const ivec &idx, const void *base) { diff --git a/src/INTEL/intel_intrinsics_airebo.h b/src/INTEL/intel_intrinsics_airebo.h index 04cc78f3d2..41b147ae3c 100644 --- a/src/INTEL/intel_intrinsics_airebo.h +++ b/src/INTEL/intel_intrinsics_airebo.h @@ -639,8 +639,10 @@ public: AVEC_BINOP(-, sub) 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, sizeof(FVEC_SCAL_T), _MM_HINT_T0); +#endif } }; @@ -697,8 +699,10 @@ public: AVEC2_BINOP(-, sub) 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, sizeof(double), _MM_HINT_T0); +#endif } }; #endif