pitrou commented on a change in pull request #9424:
URL: https://github.com/apache/arrow/pull/9424#discussion_r571882888



##########
File path: cpp/src/arrow/util/byte_stream_split.h
##########
@@ -25,23 +25,44 @@
 
 #ifdef ARROW_HAVE_SSE4_2
 // Enable the SIMD for ByteStreamSplit Encoder/Decoder
-#define ARROW_HAVE_SIMD_SPLIT
+#define ARROW_HAVE_SIMD_DECODE_SPLIT
+#define ARROW_HAVE_SIMD_ENCODE_SPLIT
 #endif  // ARROW_HAVE_SSE4_2
 
+#ifdef ARROW_HAVE_NEON
+#define ARROW_HAVE_SIMD_DECODE_SPLIT
+#endif  // ARROW_HAVE_NEON
+
 namespace arrow {
 namespace util {
 namespace internal {
 
-#if defined(ARROW_HAVE_SSE4_2)
+#if defined(ARROW_HAVE_NEON)
+#define DATA_TYPE_128BIT uint8x16_t
+#define LDR_SIMD_128BIT vld1q_u8
+#define STR_SIMD_128BIT vst1q_u8
+#define REINT_CAST_TYPE uint8_t
+#define SHUFFLE_LO_128BIT vzip1q_u8
+#define SHUFFLE_HI_128BIT vzip2q_u8
+#elif defined(ARROW_HAVE_SSE4_2)

Review comment:
       I agree that we should discuss adopting an SIMD library. There are 
several of them.
   https://github.com/agenium-scale/nsimd
   https://github.com/aff3ct/MIPP
   https://xsimd.readthedocs.io/en/latest/
   https://github.com/p12tic/libsimdpp
   
   Do you want to start the discussion on the mailing-list @cyb70289 ?




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to