Skip to content

[CI][C++] The C++ Extra / AMD64 Alpine Linux job fails due to xsimd #47052

@raulcd

Description

@raulcd

Describe the bug, including details regarding any error messages, version, and platform.

The C++ Extra / AMD64 Alpine Linux job fails with:

[975/1899] Building CXX object src/arrow/CMakeFiles/arrow_util.dir/util/value_parsing.cc.o
ninja: job failed: /usr/bin/ccache /usr/lib/ccache/bin/c++ -DARROW_HAVE_RUNTIME_AVX2 -DARROW_HAVE_RUNTIME_AVX512 -DARROW_HAVE_RUNTIME_BMI2 -DARROW_HAVE_RUNTIME_SSE4_2 -DARROW_HAVE_SSE4_2 -DURI_STATIC_BUILD -I/build/cpp/src -I/arrow/cpp/src -I/arrow/cpp/src/generated -Wredundant-move -Wno-noexcept-type  -fdiagnostics-color=always  -Wall -Wno-conversion -Wno-sign-conversion -Wdate-time -Wimplicit-fallthrough -Wunused-result -fno-semantic-interposition -msse4.2  -g -Werror -O0 -ggdb -g1 -std=c++17 -fPIC -march=haswell -mavx2 -MD -MT src/arrow/CMakeFiles/arrow_util.dir/util/byte_stream_split_internal_avx2.cc.o -MF src/arrow/CMakeFiles/arrow_util.dir/util/byte_stream_split_internal_avx2.cc.o.d -o src/arrow/CMakeFiles/arrow_util.dir/util/byte_stream_split_internal_avx2.cc.o -c /arrow/cpp/src/arrow/util/byte_stream_split_internal_avx2.cc
In file included from /arrow/cpp/src/arrow/util/byte_stream_split_internal_avx2.cc:18:
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h: In function 'xsimd::batch<signed char, A> arrow::util::internal::zip_lo_n(const xsimd::batch<signed char, A>&, const xsimd::batch<signed char, A>&)':
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:140:16: error: 'shuffle' is not a member of 'xsimd'
  140 |         xsimd::shuffle(xsimd::bitwise_cast<int64_t>(a), xsimd::bitwise_cast<int64_t>(b),
      |                ^~~~~~~
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:140:16: note: suggested alternatives:
In file included from /usr/include/c++/12.2.1/algorithm:61,
                 from /arrow/cpp/src/arrow/util/endian.h:55,
                 from /arrow/cpp/src/arrow/util/byte_stream_split_internal.h:20:
/usr/include/c++/12.2.1/bits/stl_algo.h:3696:5: note:   'std::shuffle'
 3696 |     shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
      |     ^~~~~~~
In file included from /usr/include/xsimd/arch/xsimd_isa.hpp:20,
                 from /usr/include/xsimd/types/xsimd_batch.hpp:491,
                 from /usr/include/xsimd/xsimd.hpp:61,
                 from /arrow/cpp/src/arrow/util/byte_stream_split_internal.h:33:
/usr/include/xsimd/arch/xsimd_sse2.hpp:42:32: note:   'xsimd::kernel::detail::shuffle'
   42 |             constexpr uint32_t shuffle(uint32_t x, uint32_t y)
      |                                ^~~~~~~
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:141:72: error: type/value mismatch at argument 2 in template parameter list for 'template<class batch_type, typename batch_type::value_type ...Values> struct xsimd::batch_constant'
  141 |                        xsimd::batch_constant<uint64_t, Arch, 0, 1, 4, 5>{}));
      |                                                                        ^
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:141:72: note:   expected a constant of type 'typename batch_type::value_type', got 'Arch'
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:141:72: error: 'long unsigned int' is not a class, struct, or union type
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:141:72: note: invalid template non-type parameter
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:141:72: error: 'long unsigned int' is not a class, struct, or union type
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:141:72: note: invalid template non-type parameter
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:141:72: error: 'long unsigned int' is not a class, struct, or union type
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:141:72: note: invalid template non-type parameter
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:141:72: error: 'long unsigned int' is not a class, struct, or union type
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:141:72: note: invalid template non-type parameter
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h: In function 'xsimd::batch<signed char, A> arrow::util::internal::zip_hi_n(const xsimd::batch<signed char, A>&, const xsimd::batch<signed char, A>&)':
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:164:16: error: 'shuffle' is not a member of 'xsimd'
  164 |         xsimd::shuffle(xsimd::bitwise_cast<int64_t>(a), xsimd::bitwise_cast<int64_t>(b),
      |                ^~~~~~~
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:164:16: note: suggested alternatives:
/usr/include/c++/12.2.1/bits/stl_algo.h:3696:5: note:   'std::shuffle'
 3696 |     shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
      |     ^~~~~~~
/usr/include/xsimd/arch/xsimd_sse2.hpp:42:32: note:   'xsimd::kernel::detail::shuffle'
   42 |             constexpr uint32_t shuffle(uint32_t x, uint32_t y)
      |                                ^~~~~~~
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:165:72: error: type/value mismatch at argument 2 in template parameter list for 'template<class batch_type, typename batch_type::value_type ...Values> struct xsimd::batch_constant'
  165 |                        xsimd::batch_constant<uint64_t, Arch, 2, 3, 6, 7>{}));
      |                                                                        ^
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:165:72: note:   expected a constant of type 'typename batch_type::value_type', got 'Arch'
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:165:72: error: 'long unsigned int' is not a class, struct, or union type
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:165:72: note: invalid template non-type parameter
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:165:72: error: 'long unsigned int' is not a class, struct, or union type
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:165:72: note: invalid template non-type parameter
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:165:72: error: 'long unsigned int' is not a class, struct, or union type
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:165:72: note: invalid template non-type parameter
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:165:72: error: 'long unsigned int' is not a class, struct, or union type
/arrow/cpp/src/arrow/util/byte_stream_split_internal.h:165:72: note: invalid template non-type parameter

Related with the version of xsimd as this is the same failure that we had for fedora-39, see:

Component(s)

Continuous Integration, C++

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions