GH-49921: [C++] Bump xsimd to 14.2.0#49922
Conversation
|
|
|
@AntoinePrv Can you take a look at the CI failures? They seem related. |
|
Yes, I am still waiting for the Msys2 build of xsimd to happen... |
|
There are failures on non-MSys2 builds, though: |
|
Perhaps it's this check that does not work on MSVC? Either we could add |
|
I think we should both 1) fix xsimd upstream anyway and 2) pass It seems xsimd should do something like this: #ifdef _MSVC_LANG
#define XSIMD_CPP_LEVEL _MSVC_LANG
#else
#define XSIMD_CPP_LEVEL __cplusplus
#endifand then use the (but xsimd could also use find-grained feature testing). |
|
Already sending a patch, but not sure I want to go through another round of xsimd releases |
|
Agreed, hence "pass /Zc:__cplusplus when building Arrow C++" as well 😉 |
|
Bloody protobuf fails building with |
|
Tiny syntax error that needs fixing: |
|
@pitrou I'm not very proactively working on this until the msys2 xsimd build is live |
|
@github-actions crossbow submit -g cpp |
|
Revision: 89a1f7e Submitted crossbow builds: ursacomputing/crossbow @ actions-9c434593fe |
It's just a matter of waiting for their queue to update it: Based on experience when uploading Arrow it takes between 6 and 12 hours. Their CI seems to run several times a day and xsimd is already listed on the queue so it should be available "soon". |
|
@github-actions crossbow submit wheelcp314 |
|
Revision: 3f697f0 Submitted crossbow builds: ursacomputing/crossbow @ actions-5ec367f3ef |
| if constexpr (kIsSse2 && (IntSize != sizeof(uint64_t))) { | ||
| constexpr Int kMaxRShift = max_value(std::array{kShifts...}); | ||
|
|
||
| constexpr auto kLShifts = | ||
| xsimd::make_batch_constant<Int, kMaxRShift, Arch>() - shifts; | ||
|
|
||
| return xsimd::bitwise_rshift<kMaxRShift>(left_shift(batch, kLShifts)); | ||
| } | ||
|
|
||
| // TODO(xsimd) bug fixed in xsimd 14.1.0 | ||
| // https://github.com/xtensor-stack/xsimd/pull/1266 | ||
| #if XSIMD_VERSION_MAJOR < 14 || ((XSIMD_VERSION_MAJOR == 14) && XSIMD_VERSION_MINOR == 0) | ||
| if constexpr (IsNeon<Arch>) { | ||
| using SInt = std::make_signed_t<Int>; | ||
| constexpr auto signed_shifts = | ||
| xsimd::batch_constant<SInt, Arch, static_cast<SInt>(kShifts)...>(); | ||
| return xsimd::kernel::bitwise_rshift(batch, signed_shifts.as_batch(), Arch{}); | ||
| return xsimd::bitwise_rshift<kMaxRShift>(batch << kLShifts); | ||
| } |
|
@github-actions crossbow submit wheelcp314 |
|
Revision: 22ffada Submitted crossbow builds: ursacomputing/crossbow @ actions-575ab77839 |
raulcd
left a comment
There was a problem hiding this comment.
CI failures are unrelated. We should merge this now. Thanks @AntoinePrv !
raulcd
left a comment
There was a problem hiding this comment.
Sorry, just thought about this, I am happy to merge as is.
Are we planning to bump this requirement later on when we improve the cpu detection feature?
arrow/cpp/cmake_modules/ThirdpartyToolchain.cmake
Lines 2855 to 2861 in 3d4ab3f
|
@github-actions crossbow submit wheelcp314 |
|
Revision: 8278222 Submitted crossbow builds: ursacomputing/crossbow @ actions-0d5b743af7 |
Rationale for this change
Fix SVE dynamic dispatch ODR violation xtensor-stack/xsimd#1311
What changes are included in this PR?
Bump version and cleanup backports.
Are these changes tested?
Yes, in CI.
Are there any user-facing changes?
No