From 095d19afea0b4f4a7f3ec91449cc7a66f7bbfc42 Mon Sep 17 00:00:00 2001 From: FauziAkram Date: Fri, 14 Feb 2025 03:07:39 +0300 Subject: [PATCH] Use neon_m128_reduce_add_epi32 for NEON vector reduction Accomplishing the entire horizontal addition in a single NEON instruction closes https://github.com/official-stockfish/Stockfish/pull/5885 No functional change --- src/nnue/layers/affine_transform.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nnue/layers/affine_transform.h b/src/nnue/layers/affine_transform.h index f5c640fb9..dac727e23 100644 --- a/src/nnue/layers/affine_transform.h +++ b/src/nnue/layers/affine_transform.h @@ -102,7 +102,7 @@ static void affine_transform_non_ssse3(std::int32_t* output, product = vmlal_s8(product, inputVector[j * 2 + 1], row[j * 2 + 1]); sum = vpadalq_s16(sum, product); } - output[i] = sum[0] + sum[1] + sum[2] + sum[3]; + output[i] = Simd::neon_m128_reduce_add_epi32(sum); #endif }