Blame SOURCES/0002-cpp_src_arrow_util_utf8.h.patch

824c28
--- apache-arrow-8.0.0/cpp/src/arrow/util/utf8.h	2022-05-03 12:59:12.000000000 -0400
824c28
+++ apache-arrow-7.0.0/cpp/src/arrow/util/utf8.h	2022-01-28 19:09:12.000000000 -0500
824c28
@@ -241,7 +241,11 @@
824c28
 
824c28
 #if defined(ARROW_HAVE_NEON) || defined(ARROW_HAVE_SSE4_2)
824c28
 static inline bool ValidateAsciiSimd(const uint8_t* data, int64_t len) {
824c28
-  using simd_batch = xsimd::make_sized_batch_t<int8_t, 16>;
824c28
+#ifdef ARROW_HAVE_NEON
824c28
+  using simd_batch = xsimd::batch<int8_t, xsimd::neon64>;
824c28
+#else
824c28
+  using simd_batch = xsimd::batch<int8_t, xsimd::sse4_2>;
824c28
+#endif
824c28
 
824c28
   if (len >= 32) {
824c28
     const simd_batch zero(static_cast<int8_t>(0));
824c28
--- apache-arrow-8.0.0/cpp/src/arrow/csv/writer.cc.orig	2022-05-08 17:00:08.860430555 -0400
824c28
+++ apache-arrow-8.0.0/cpp/src/arrow/csv/writer.cc	2022-05-08 17:02:42.526756723 -0400
824c28
@@ -217,7 +217,12 @@
824c28
 #if defined(ARROW_HAVE_SSE4_2) || defined(ARROW_HAVE_NEON)
824c28
     // _mm_cmpistrc gives slightly better performance than the naive approach,
824c28
     // probably doesn't deserve the effort
824c28
-    using simd_batch = xsimd::make_sized_batch_t<uint8_t, 16>;
824c28
+#ifdef ARROW_HAVE_NEON
824c28
+    using simd_batch = xsimd::batch<int8_t, xsimd::neon64>;
824c28
+#else
824c28
+    using simd_batch = xsimd::batch<int8_t, xsimd::sse4_2>;
824c28
+#endif
824c28
+
824c28
     while ((offset + 16) <= buffer_size) {
824c28
       const auto v = simd_batch::load_unaligned(data + offset);
824c28
       if (xsimd::any((v == '\n') | (v == '\r') | (v == '"') | (v == delimiter))) {
824c28
--- apache-arrow-8.0.0/cpp/src/arrow/util/bpacking_simd_codegen.py.orig	2022-05-08 17:19:16.349459649 -0400
824c28
+++ apache-arrow-8.0.0/cpp/src/arrow/util/bpacking_simd_codegen.py	2022-05-08 17:19:56.813754872 -0400
824c28
@@ -176,7 +176,7 @@
824c28
         template <DispatchLevel level>
824c28
         struct {struct_name} {{
824c28
 
824c28
-        using simd_batch = xsimd::make_sized_batch_t<uint32_t, {simd_width//32}>;
824c28
+        using simd_batch = xsimd::batch<uint32_t, simd_arch>;
824c28
         """))
824c28
 
824c28
     gen = UnpackGenerator(simd_width)
824c28
--- apache-arrow-8.0.0/cpp/src/arrow/util/bpacking_simd128_generated.h.orig	2022-05-08 17:32:49.743300777 -0400
824c28
+++ apache-arrow-8.0.0/cpp/src/arrow/util/bpacking_simd128_generated.h	2022-05-08 17:36:05.429945990 -0400
824c28
@@ -36,7 +36,13 @@
824c28
 template <DispatchLevel level>
824c28
 struct UnpackBits128 {
824c28
 
824c28
-using simd_batch = xsimd::make_sized_batch_t<uint32_t, 4>;
824c28
+#ifdef ARROW_HAVE_NEON
824c28
+using simd_arch = xsimd::neon64;
824c28
+#else
824c28
+using simd_arch = xsimd::sse4_2;
824c28
+#endif
824c28
+
824c28
+using simd_batch = xsimd::batch<uint32_t, simd_arch>;
824c28
 
824c28
 inline static const uint32_t* unpack0_32(const uint32_t* in, uint32_t* out) {
824c28
   memset(out, 0x0, 32 * sizeof(*out));
824c28
--- apache-arrow-8.0.0/cpp/src/arrow/util/bpacking_simd256_generated.h.orig	2022-05-08 17:31:13.627966647 -0400
824c28
+++ apache-arrow-8.0.0/cpp/src/arrow/util/bpacking_simd256_generated.h	2022-05-08 17:38:01.045963910 -0400
824c28
@@ -36,7 +36,8 @@
824c28
 template <DispatchLevel level>
824c28
 struct UnpackBits256 {
824c28
 
824c28
-using simd_batch = xsimd::make_sized_batch_t<uint32_t, 8>;
824c28
+using simd_arch = xsimd::avx2;
824c28
+using simd_batch = xsimd::batch<uint32_t, simd_arch>;
824c28
 
824c28
 inline static const uint32_t* unpack0_32(const uint32_t* in, uint32_t* out) {
824c28
   memset(out, 0x0, 32 * sizeof(*out));
824c28
--- apache-arrow-8.0.0/cpp/src/arrow/util/bpacking_simd512_generated.h.orig	2022-05-08 17:32:56.763180428 -0400
824c28
+++ apache-arrow-8.0.0/cpp/src/arrow/util/bpacking_simd512_generated.h	2022-05-08 17:37:35.072409190 -0400
824c28
@@ -36,7 +36,8 @@
824c28
 template <DispatchLevel level>
824c28
 struct UnpackBits512 {
824c28
 
824c28
-using simd_batch = xsimd::make_sized_batch_t<uint32_t, 16>;
824c28
+using simd_arch = xsimd::avx512bw;
824c28
+using simd_batch = xsimd::batch<uint32_t, simd_arch>;
824c28
 
824c28
 inline static const uint32_t* unpack0_32(const uint32_t* in, uint32_t* out) {
824c28
   memset(out, 0x0, 32 * sizeof(*out));