From 1476d45536b323804f6825d4a317a4520a55bde1 Mon Sep 17 00:00:00 2001 From: Anton Mitrokhin Date: Wed, 24 Dec 2014 17:47:46 +0300 Subject: [PATCH] add gather64_double --- examples/intrinsics/knc.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/examples/intrinsics/knc.h b/examples/intrinsics/knc.h index 7604b463..0ae0b134 100644 --- a/examples/intrinsics/knc.h +++ b/examples/intrinsics/knc.h @@ -3224,6 +3224,20 @@ __gather64_i32(__vec16_i64 addr, __vec16_i1 mask) return ret; } +static FORCEINLINE __vec16_d +__gather64_double(__vec16_i64 addr, __vec16_i1 mask) +{ + __vec16_d ret; + + __vec16_i32 addr_lo, addr_hi; + hilo2zmm(addr, addr_lo.v, addr_hi.v); + + ret.v1 = _mm512_i64extgather_pd (addr_lo, 0, _MM_UPCONV_PD_NONE, 1, _MM_HINT_NONE); + ret.v2 = _mm512_i64extgather_pd (addr_hi, 0, _MM_UPCONV_PD_NONE, 1, _MM_HINT_NONE); + return ret; +} + + /*! gather with 64-bit offsets.