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

Reply via email to