cyb70289 commented on a change in pull request #9424:
URL: https://github.com/apache/arrow/pull/9424#discussion_r570700464
##########
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:
An SIMD wrapper lib looks better than doing this ourselves. And I think
there are other SSE4 codes in Arrow have similar NEON implementation.
@pitrou @jianxind
----------------------------------------------------------------
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]