From d8e765ba79772ecc3deda89ae3adab903c744296 Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Wed, 2 Aug 2017 13:44:33 +0100 Subject: COMPMID-472 : Implement Floor for CL and NEON. Change-Id: I675a4545b1fe9ab665a07c834720bfe7ff589cee Reviewed-on: http://mpd-gerrit.cambridge.arm.com/82527 Tested-by: Kaizen Reviewed-by: Anthony Barbier --- arm_compute/core/NEON/NEMath.inl | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'arm_compute/core/NEON/NEMath.inl') diff --git a/arm_compute/core/NEON/NEMath.inl b/arm_compute/core/NEON/NEMath.inl index 08f6749ac9..bdd747c4e9 100644 --- a/arm_compute/core/NEON/NEMath.inl +++ b/arm_compute/core/NEON/NEMath.inl @@ -54,6 +54,16 @@ const std::array log_tab = } }; +inline float32x4_t vfloorq_f32(float32x4_t val) +{ + static const float32x4_t CONST_1 = vdupq_n_f32(1.f); + + const int32x4_t z = vcvtq_s32_f32(val); + const float32x4_t r = vcvtq_f32_s32(z); + + return vbslq_f32(vcgtq_f32(r, val), vsubq_f32(r, CONST_1), r); +} + inline float32x4_t vinvsqrtq_f32(float32x4_t x) { float32x4_t sqrt_reciprocal = vrsqrteq_f32(x); -- cgit v1.2.1