Optimize vector8_has_le() on AArch64.
Nathan Bossart <nathan@postgresql.org>
Optimize vector8_has_le() on AArch64. Presently, the SIMD implementation of this function uses unsigned saturating subtraction to find bytes less than or equal to the given value, which is a workaround for the lack of unsigned comparison instructions on some architectures. However, Neon offers vminvq_u8(), which returns the minimum (unsigned) value in the vector. This commit adds a Neon-specific implementation that uses vminvq_u8() to optimize vector8_has_le() on AArch64. In passing, adjust the SSE2 implementation to use vector8_min() and vector8_eq() to find values less than or equal to the given value. This was the only use of vector8_ssub(), so it has been removed. Reviewed-by: John Naylor <johncnaylorls@gmail.com> Discussion: https://postgr.es/m/aNHDNDSHleq0ogC_%40nathan
Files
| Path | Change | +/− |
|---|---|---|
| src/include/port/simd.h | modified | +10 −27 |
Discussion
- a couple of small patches for simd.h 8 messages · 2025-09-22 → 2025-10-03