AntoinePrv commented on code in PR #46963: URL: https://github.com/apache/arrow/pull/46963#discussion_r2179459162
########## cpp/src/arrow/util/byte_stream_split_internal.h: ########## @@ -584,52 +446,63 @@ inline void ByteStreamSplitDecodeScalarDynamic(const uint8_t* data, int width, DoMergeStreams(src_streams.data(), width, num_values, out); } +template <int kNumStreams> +void ByteStreamSplitDecodeSimdDispatch(const uint8_t* data, int width, int64_t num_values, + int64_t stride, uint8_t* out); + +extern template void ByteStreamSplitDecodeSimdDispatch<2>(const uint8_t*, int, int64_t, + int64_t, uint8_t*); +extern template void ByteStreamSplitDecodeSimdDispatch<4>(const uint8_t*, int, int64_t, + int64_t, uint8_t*); +extern template void ByteStreamSplitDecodeSimdDispatch<8>(const uint8_t*, int, int64_t, + int64_t, uint8_t*); + +template <int kNumStreams> +void ByteStreamSplitEncodeSimdDispatch(const uint8_t* raw_values, int width, + const int64_t num_values, + uint8_t* output_buffer_raw); + +extern template void ByteStreamSplitEncodeSimdDispatch<2>(const uint8_t*, int, + const int64_t, uint8_t*); +extern template void ByteStreamSplitEncodeSimdDispatch<4>(const uint8_t*, int, + const int64_t, uint8_t*); +extern template void ByteStreamSplitEncodeSimdDispatch<8>(const uint8_t*, int, + const int64_t, uint8_t*); + inline void ByteStreamSplitEncode(const uint8_t* raw_values, int width, const int64_t num_values, uint8_t* out) { -#if defined(ARROW_HAVE_SIMD_SPLIT) -# define ByteStreamSplitEncodePerhapsSimd ByteStreamSplitEncodeSimd -#else -# define ByteStreamSplitEncodePerhapsSimd ByteStreamSplitEncodeScalar -#endif switch (width) { case 1: - memcpy(out, raw_values, num_values); + std::memcpy(out, raw_values, num_values); Review Comment: I believe they are identical, though `memcpy` is not a C++ function. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org