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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]