Skip to content

Commit 23dc5f0

Browse files
committed
Hard error if SIMD arch not defined in dyn dispatch files
1 parent d87c40b commit 23dc5f0

2 files changed

Lines changed: 17 additions & 16 deletions

File tree

cpp/src/arrow/util/bpacking_simd_128_alt.cc

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,23 @@
2020
# define KERNEL_PLATFORM KernelSve128
2121
#endif
2222

23-
#if defined(UNPACK_PLATFORM)
23+
#if !defined(UNPACK_PLATFORM)
24+
# error "This file must be compiled with a known SIMD micro architecture"
25+
#endif
2426

25-
# include <xsimd/xsimd.hpp>
27+
#include <xsimd/xsimd.hpp>
2628

27-
# include "arrow/util/bpacking_dispatch_internal.h"
28-
# include "arrow/util/bpacking_simd_internal.h"
29-
# include "arrow/util/bpacking_simd_kernel_internal.h"
29+
#include "arrow/util/bpacking_dispatch_internal.h"
30+
#include "arrow/util/bpacking_simd_internal.h"
31+
#include "arrow/util/bpacking_simd_kernel_internal.h"
3032

3133
namespace arrow::internal::bpacking {
3234

3335
template <typename UnpackedUint, int kPackedBitSize>
34-
using KERNEL_PLATFORM = Kernel<UnpackedUint, kPackedBitSize, xsimd::default_arch>;
36+
using KERNEL_PLATFORM = Kernel<UnpackedUint, kPackedBitSize, xsimd::detail::sve<128>>;
3537

3638
template <typename Uint>
3739
void UNPACK_PLATFORM(const uint8_t* in, Uint* out, const UnpackOptions& opts) {
38-
static_assert(std::is_same_v<xsimd::default_arch, xsimd::detail::sve<128>>);
3940
return unpack_jump<KERNEL_PLATFORM>(in, out, opts);
4041
}
4142

@@ -47,5 +48,4 @@ template void UNPACK_PLATFORM<uint64_t>(const uint8_t*, uint64_t*, const UnpackO
4748

4849
} // namespace arrow::internal::bpacking
4950

50-
# undef UNPACK_PLATFORM
51-
#endif // UNPACK_PLATFORM
51+
#undef UNPACK_PLATFORM

cpp/src/arrow/util/bpacking_simd_256.cc

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,14 @@
2323
# define KERNEL_PLATFORM KernelAvx2
2424
#endif
2525

26-
#if defined(UNPACK_PLATFORM)
26+
#if !defined(UNPACK_PLATFORM)
27+
# error "This file must be compiled with a known SIMD micro architecture"
28+
#endif
2729

28-
# include "arrow/util/bpacking_dispatch_internal.h"
29-
# include "arrow/util/bpacking_internal.h"
30-
# include "arrow/util/bpacking_simd_internal.h"
31-
# include "arrow/util/bpacking_simd_kernel_internal.h"
30+
#include "arrow/util/bpacking_dispatch_internal.h"
31+
#include "arrow/util/bpacking_internal.h"
32+
#include "arrow/util/bpacking_simd_internal.h"
33+
#include "arrow/util/bpacking_simd_kernel_internal.h"
3234

3335
namespace arrow::internal::bpacking {
3436

@@ -48,5 +50,4 @@ template void UNPACK_PLATFORM<uint64_t>(const uint8_t*, uint64_t*, const UnpackO
4850

4951
} // namespace arrow::internal::bpacking
5052

51-
# undef UNPACK_PLATFORM
52-
#endif // UNPACK_PLATFORM
53+
#undef UNPACK_PLATFORM

0 commit comments

Comments
 (0)