From a6e5065d94e2bf11b3674ce7c1a313d059bdf9e3 Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Thu, 23 Jul 2026 10:22:54 +0200 Subject: [PATCH 1/3] Remove SVE128 path --- cpp/src/arrow/CMakeLists.txt | 1 - cpp/src/arrow/util/bpacking.cc | 1 - cpp/src/arrow/util/bpacking_benchmark.cc | 5 -- cpp/src/arrow/util/bpacking_simd_128_alt.cc | 51 --------------------- cpp/src/arrow/util/bpacking_simd_internal.h | 28 ----------- cpp/src/arrow/util/bpacking_test.cc | 9 ---- 6 files changed, 95 deletions(-) delete mode 100644 cpp/src/arrow/util/bpacking_simd_128_alt.cc diff --git a/cpp/src/arrow/CMakeLists.txt b/cpp/src/arrow/CMakeLists.txt index e792574a1837..310d5d8f4f06 100644 --- a/cpp/src/arrow/CMakeLists.txt +++ b/cpp/src/arrow/CMakeLists.txt @@ -588,7 +588,6 @@ append_runtime_avx2_src(ARROW_UTIL_SRCS util/byte_stream_split_internal_avx2.cc) append_runtime_avx2_src(ARROW_UTIL_SRCS util/bpacking_simd_256.cc) append_runtime_avx512_src(ARROW_UTIL_SRCS util/bpacking_simd_avx512.cc) -append_runtime_sve128_src(ARROW_UTIL_SRCS util/bpacking_simd_128_alt.cc) append_runtime_sve256_src(ARROW_UTIL_SRCS util/bpacking_simd_256.cc) if(ARROW_WITH_BROTLI) diff --git a/cpp/src/arrow/util/bpacking.cc b/cpp/src/arrow/util/bpacking.cc index 1bf81df4f28f..72e3493e8010 100644 --- a/cpp/src/arrow/util/bpacking.cc +++ b/cpp/src/arrow/util/bpacking.cc @@ -34,7 +34,6 @@ struct UnpackDynamicFunction { return std::array{ ARROW_DISPATCH_TARGET_NONE(&bpacking::unpack_scalar) // ARROW_DISPATCH_TARGET_NEON(&bpacking::unpack_neon) // - ARROW_DISPATCH_TARGET_SVE128(&bpacking::unpack_sve128) // ARROW_DISPATCH_TARGET_SVE256(&bpacking::unpack_sve256) // ARROW_DISPATCH_TARGET_SSE4_2(&bpacking::unpack_sse4_2) // ARROW_DISPATCH_TARGET_AVX2(&bpacking::unpack_avx2) // diff --git a/cpp/src/arrow/util/bpacking_benchmark.cc b/cpp/src/arrow/util/bpacking_benchmark.cc index 93d7cdf165c1..025b493c5927 100644 --- a/cpp/src/arrow/util/bpacking_benchmark.cc +++ b/cpp/src/arrow/util/bpacking_benchmark.cc @@ -206,11 +206,6 @@ BENCHMARK_UNPACK_ALL_TYPES_RUNTIME(Avx512Unaligned, false, bpacking::unpack_avx5 BENCHMARK_UNPACK_ALL_TYPES(NeonUnaligned, false, bpacking::unpack_neon); #endif -#if defined(ARROW_HAVE_RUNTIME_SVE128) -BENCHMARK_UNPACK_ALL_TYPES_RUNTIME(Sve128Unaligned, false, bpacking::unpack_sve128, - SVE128, "Sve128 not available"); -#endif - #if defined(ARROW_HAVE_RUNTIME_SVE256) BENCHMARK_UNPACK_ALL_TYPES_RUNTIME(Sve256Unaligned, false, bpacking::unpack_sve256, SVE256, "Sve256 not available"); diff --git a/cpp/src/arrow/util/bpacking_simd_128_alt.cc b/cpp/src/arrow/util/bpacking_simd_128_alt.cc deleted file mode 100644 index bd4799d3cd31..000000000000 --- a/cpp/src/arrow/util/bpacking_simd_128_alt.cc +++ /dev/null @@ -1,51 +0,0 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -#if defined(ARROW_HAVE_RUNTIME_SVE128) -# define UNPACK_PLATFORM unpack_sve128 -# define KERNEL_PLATFORM KernelSve128 -#endif - -#if !defined(UNPACK_PLATFORM) -# error "This file must be compiled with a known SIMD micro architecture" -#endif - -#include - -#include "arrow/util/bpacking_dispatch_internal.h" -#include "arrow/util/bpacking_simd_internal.h" -#include "arrow/util/bpacking_simd_kernel_internal.h" - -namespace arrow::internal::bpacking { - -template -using KERNEL_PLATFORM = Kernel>; - -template -void UNPACK_PLATFORM(const uint8_t* in, Uint* out, const UnpackOptions& opts) { - return unpack_jump(in, out, opts); -} - -template void UNPACK_PLATFORM(const uint8_t*, bool*, const UnpackOptions&); -template void UNPACK_PLATFORM(const uint8_t*, uint8_t*, const UnpackOptions&); -template void UNPACK_PLATFORM(const uint8_t*, uint16_t*, const UnpackOptions&); -template void UNPACK_PLATFORM(const uint8_t*, uint32_t*, const UnpackOptions&); -template void UNPACK_PLATFORM(const uint8_t*, uint64_t*, const UnpackOptions&); - -} // namespace arrow::internal::bpacking - -#undef UNPACK_PLATFORM diff --git a/cpp/src/arrow/util/bpacking_simd_internal.h b/cpp/src/arrow/util/bpacking_simd_internal.h index d5a81baaec09..78aaa4a8f92a 100644 --- a/cpp/src/arrow/util/bpacking_simd_internal.h +++ b/cpp/src/arrow/util/bpacking_simd_internal.h @@ -53,34 +53,6 @@ extern template ARROW_TEMPLATE_EXPORT void UNPACK_ARCH128( #endif // UNPACK_ARCH128 #undef UNPACK_ARCH128 -#if defined(ARROW_HAVE_RUNTIME_SVE128) -# define UNPACK_ARCH128_ALT unpack_sve128 -#endif - -#if defined(UNPACK_ARCH128_ALT) - -template -ARROW_EXPORT void UNPACK_ARCH128_ALT(const uint8_t* in, Uint* out, - const UnpackOptions& opts); - -extern template ARROW_TEMPLATE_EXPORT void UNPACK_ARCH128_ALT( // - const uint8_t* in, bool* out, const UnpackOptions& opts); - -extern template ARROW_TEMPLATE_EXPORT void UNPACK_ARCH128_ALT( - const uint8_t* in, uint8_t* out, const UnpackOptions& opts); - -extern template ARROW_TEMPLATE_EXPORT void UNPACK_ARCH128_ALT( - const uint8_t* in, uint16_t* out, const UnpackOptions& opts); - -extern template ARROW_TEMPLATE_EXPORT void UNPACK_ARCH128_ALT( - const uint8_t* in, uint32_t* out, const UnpackOptions& opts); - -extern template ARROW_TEMPLATE_EXPORT void UNPACK_ARCH128_ALT( - const uint8_t* in, uint64_t* out, const UnpackOptions& opts); - -#endif // UNPACK_ARCH128_ALT -#undef UNPACK_ARCH128_ALT - #if defined(ARROW_HAVE_SVE256) || defined(ARROW_HAVE_RUNTIME_SVE256) # define UNPACK_ARCH256 unpack_sve256 #elif defined(UNPACK_ARCH256) || defined(ARROW_HAVE_RUNTIME_AVX2) diff --git a/cpp/src/arrow/util/bpacking_test.cc b/cpp/src/arrow/util/bpacking_test.cc index d4d588228e7e..0503a15110b6 100644 --- a/cpp/src/arrow/util/bpacking_test.cc +++ b/cpp/src/arrow/util/bpacking_test.cc @@ -301,15 +301,6 @@ TYPED_TEST(TestUnpack, UnpackAvx512) { TYPED_TEST(TestUnpack, UnpackNeon) { this->TestAll(&bpacking::unpack_neon); } #endif -#if defined(ARROW_HAVE_RUNTIME_SVE128) -TYPED_TEST(TestUnpack, UnpackSve128) { - if (!CpuInfo::GetInstance()->IsSupported(CpuInfo::SVE128)) { - GTEST_SKIP() << "Test requires SVE128"; - } - this->TestAll(&bpacking::unpack_sve128); -} -#endif - #if defined(ARROW_HAVE_RUNTIME_SVE256) TYPED_TEST(TestUnpack, UnpackSve256) { if (!CpuInfo::GetInstance()->IsSupported(CpuInfo::SVE256)) { From 3458a70d02c81cf134b2a9eab2108d84f3872ab8 Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Thu, 23 Jul 2026 10:44:36 +0200 Subject: [PATCH 2/3] Run CI From e84d38f17b19ea94a3cfab59a46ec4730fa20a48 Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Fri, 24 Jul 2026 20:22:47 +0200 Subject: [PATCH 3/3] Rerun