Skip to content

[6.40] [mathcore] Work around libstdc++ \<experimental/simd>\ AVX-512 bug#22456

Merged
guitargeek merged 1 commit into
root-project:v6-40-00-patchesfrom
root-project-bot:BP_6.40_pull_22437
Jun 2, 2026
Merged

[6.40] [mathcore] Work around libstdc++ \<experimental/simd>\ AVX-512 bug#22456
guitargeek merged 1 commit into
root-project:v6-40-00-patchesfrom
root-project-bot:BP_6.40_pull_22437

Conversation

@root-project-bot
Copy link
Copy Markdown

Backport of #22437, requested by @guitargeek.

The `libstdc++`'s `_VecBltnBtmsk` (AVX-512 mask) ABI fails to compile
with non-GCC front ends (Clang, Intel icpx) due to a static_assert
requiring `long long` and `long` to be the same type, reproducible at
least with GCC 15 and 16.

Detect this in CMake and, when the AVX-512 path is broken but the
256-bit AVX path compiles, pin ROOT's SIMD alias in `Math/Types.h` to
`simd_abi::__avx` (which corresponds to AVX-256). ABI stays consistent
across all translation units and interpreted contexts, no `-mno-avx512f`
is needed, and the rest of ROOT keeps native AVX-512 codegen.

Closes root-project#22370.

(cherry picked from commit 83dd2e4)
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 2, 2026

Test Results

    22 files      22 suites   3d 9h 56m 8s ⏱️
 3 857 tests  3 857 ✅ 0 💤 0 ❌
76 165 runs  76 165 ✅ 0 💤 0 ❌

Results for commit 0b93453.

@guitargeek guitargeek merged commit 0fd2998 into root-project:v6-40-00-patches Jun 2, 2026
41 checks passed
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