Skip to content

GH-49325: [C++] Check if YMM register saving is OS enabled#49326

Merged
pitrou merged 1 commit intoapache:mainfrom
AntoinePrv:ymm
Feb 18, 2026
Merged

GH-49325: [C++] Check if YMM register saving is OS enabled#49326
pitrou merged 1 commit intoapache:mainfrom
AntoinePrv:ymm

Conversation

@AntoinePrv
Copy link
Contributor

@AntoinePrv AntoinePrv commented Feb 18, 2026

Rationale for this change

Current behaviour is not correct.

What changes are included in this PR?

Check if YMM register saving is enabled by the OS before enabling AVX detection.

Are these changes tested?

Hard to, because we cannot set the value being read manually.

Are there any user-facing changes?

No.

@github-actions
Copy link

Thanks for opening a pull request!

If this is not a minor PR. Could you open an issue for this pull request on GitHub? https://github.com/apache/arrow/issues/new/choose

Opening GitHub issues ahead of time contributes to the Openness of the Apache Arrow project.

Then could you also rename the pull request title in the following format?

GH-${GITHUB_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

or

MINOR: [${COMPONENT}] ${SUMMARY}

See also:

@AntoinePrv AntoinePrv changed the title Check if YMM register saving is OS enabled GH-49325: [C++] Check if YMM register saving is OS enabled Feb 18, 2026
@github-actions
Copy link

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

@AntoinePrv AntoinePrv force-pushed the ymm branch 2 times, most recently from 282cb6c to afba88b Compare February 18, 2026 13:35
@pitrou
Copy link
Member

pitrou commented Feb 18, 2026

@github-actions crossbow submit -g cpp

@github-actions
Copy link

Revision: 87ff21c

Submitted crossbow builds: ursacomputing/crossbow @ actions-895c581763

Task Status
example-cpp-minimal-build-static GitHub Actions
example-cpp-minimal-build-static-system-dependency GitHub Actions
example-cpp-tutorial GitHub Actions
test-build-cpp-fuzz GitHub Actions
test-conda-cpp GitHub Actions
test-conda-cpp-valgrind GitHub Actions
test-debian-13-cpp-amd64 GitHub Actions
test-debian-13-cpp-i386 GitHub Actions
test-debian-experimental-cpp-gcc-15 GitHub Actions
test-fedora-42-cpp GitHub Actions
test-ubuntu-22.04-cpp GitHub Actions
test-ubuntu-22.04-cpp-20 GitHub Actions
test-ubuntu-22.04-cpp-bundled GitHub Actions
test-ubuntu-22.04-cpp-emscripten GitHub Actions
test-ubuntu-22.04-cpp-no-threading GitHub Actions
test-ubuntu-24.04-cpp GitHub Actions
test-ubuntu-24.04-cpp-bundled-offline GitHub Actions
test-ubuntu-24.04-cpp-gcc-13-bundled GitHub Actions
test-ubuntu-24.04-cpp-gcc-14 GitHub Actions
test-ubuntu-24.04-cpp-minimal-with-formats GitHub Actions
test-ubuntu-24.04-cpp-thread-sanitizer GitHub Actions

@pitrou
Copy link
Member

pitrou commented Feb 18, 2026

@github-actions crossbow submit win

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.

LGTM and it seems to conform to Intel's own recommendations. Let's just wait for CI

@github-actions
Copy link

Revision: 87ff21c

Submitted crossbow builds: ursacomputing/crossbow @ actions-8b588b027e

Task Status
test-build-vcpkg-win GitHub Actions
verify-rc-source-windows GitHub Actions
wheel-windows-cp310-cp310-amd64 GitHub Actions
wheel-windows-cp311-cp311-amd64 GitHub Actions
wheel-windows-cp312-cp312-amd64 GitHub Actions
wheel-windows-cp313-cp313-amd64 GitHub Actions
wheel-windows-cp313-cp313t-amd64 GitHub Actions
wheel-windows-cp314-cp314-amd64 GitHub Actions
wheel-windows-cp314-cp314t-amd64 GitHub Actions

@github-actions github-actions bot added awaiting committer review Awaiting committer review and removed awaiting review Awaiting review labels Feb 18, 2026
@AntoinePrv
Copy link
Contributor Author

Actually it seems we should also check a flag for SSE.

@pitrou
Copy link
Member

pitrou commented Feb 18, 2026

Actually it seems we should also check a flag for SSE.

I don't think that's necessary, we consider SSE mandatory.

Copy link
Member

@raulcd raulcd left a comment

Choose a reason for hiding this comment

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

Not sure if that's relevant as I am not an expert on this area but should we also check Xmm for SSE?
I was reading the info shared on the issue and found they are checking it there:
https://github.com/google/cpu_features/blob/545431d64a43f683d75e51c36df19f90afe82752/src/impl_x86__base_implementation.inl#L403-L426

@AntoinePrv
Copy link
Contributor Author

@pitrou I believe this is all OK

@raulcd
Copy link
Member

raulcd commented Feb 18, 2026

ok, just saw the rest of the comments, seems fine as you are the experts here :)

@github-actions github-actions bot added awaiting changes Awaiting changes and removed awaiting committer review Awaiting committer review labels Feb 18, 2026
@pitrou pitrou merged commit aea1ad3 into apache:main Feb 18, 2026
55 of 56 checks passed
@pitrou pitrou removed the awaiting changes Awaiting changes label Feb 18, 2026
@AntoinePrv AntoinePrv deleted the ymm branch February 18, 2026 17:11
@conbench-apache-arrow
Copy link

After merging your PR, Conbench analyzed the 1 benchmarking run that has been run so far on merge-commit aea1ad3.

There were no benchmark performance regressions. 🎉

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Comments