Skip to content

Conversation

@jgiannuzzi
Copy link
Contributor

@jgiannuzzi jgiannuzzi commented Oct 22, 2025

Rationale for this change

#47573 broke the Windows ARM64 MSVC build by trying to compile xsimd even when ARROW_SIMD_LEVEL is set to NONE.

What changes are included in this PR?

Make sure that xsimd is only included when SIMD is requested.

Are these changes tested?

Yes, in the Windows ARM64 MSVC build pipeline that I was developing on #47811 when I noticed the change.

Are there any user-facing changes?

No.

@github-actions
Copy link

⚠️ GitHub issue #47909 has been automatically assigned in GitHub to PR creator.

@pitrou
Copy link
Member

pitrou commented Oct 22, 2025

@AntoinePrv Could you take a look at this?

@AntoinePrv
Copy link
Contributor

AntoinePrv commented Oct 22, 2025

Thanks for looking into this!

For reference, I did no create a _neon file because to reproduce the pattern used for byte_stream_split.

cpp/src/arrow/util/byte_stream_split_internal.cc
cpp/src/arrow/util/byte_stream_split_internal.h
cpp/src/arrow/util/byte_stream_split_internal_avx2.cc
cpp/src/arrow/util/byte_stream_split_test.cc

The fix works, but I am also working on this files, and may add an SSE compilation that will share the same xsimd code as the Neon one (hence the undescriptive _default).

I believe that, equivalently to the byte_stream_split, we can only gate the #includes in bpacking_simd_default.cc behind #if defined(ARROW_HAVE_NEON) to resolve this.
(I'm open to other ways of doing this, but I believe we should keep the code base consistent).

Make sure that xsimd is only included when SIMD is requested
Copy link
Contributor

@AntoinePrv AntoinePrv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hope it solves the issue, fix is looking good to me.

@github-actions github-actions bot added awaiting committer review Awaiting committer review and removed awaiting review Awaiting review labels Oct 22, 2025
@jgiannuzzi
Copy link
Contributor Author

jgiannuzzi commented Oct 22, 2025

Thanks for the insight, @AntoinePrv! I have tested it locally and have updated #47811 so we can see it working in the CI.

@pitrou pitrou added the CI: Extra: C++ Run extra C++ CI label Oct 22, 2025
Copy link
Member

@pitrou pitrou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1, let's wait for CI

@pitrou pitrou merged commit a625340 into apache:main Oct 22, 2025
55 of 57 checks passed
@pitrou pitrou removed the awaiting committer review Awaiting committer review label Oct 22, 2025
@jgiannuzzi jgiannuzzi deleted the fix-msvc-arm64 branch October 22, 2025 15:51
@jgiannuzzi
Copy link
Contributor Author

Thanks for the merge @pitrou! I have just rebased #47811 and it's ready for review.

@conbench-apache-arrow
Copy link

After merging your PR, Conbench analyzed the 4 benchmarking runs that have been run so far on merge-commit a625340.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details. It also includes information about 15 possible false positives for unstable benchmarks that are known to sometimes produce them.

zanmato1984 pushed a commit to zanmato1984/arrow that referenced this pull request Nov 5, 2025
### Rationale for this change

apache#47573 broke the Windows ARM64 MSVC build by trying to compile xsimd even when `ARROW_SIMD_LEVEL` is set to `NONE`.

### What changes are included in this PR?

Make sure that xsimd is only included when SIMD is requested.

### Are these changes tested?

Yes, in the Windows ARM64 MSVC build pipeline that I was developing on apache#47811 when I noticed the change.

### Are there any user-facing changes?

No.
* GitHub Issue: apache#47909

Authored-by: Jonathan Giannuzzi <[email protected]>
Signed-off-by: Antoine Pitrou <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants