Commit 719d8a3
Migrate from VecCore and Vc to
Use `std::experimental::simd` for the vectorized TMath and vectorized
TFormula backend if available. We assume it's available if ROOT is
compiled with C++20 or later on Linux. In reality, it is avialble for
new-enough Clang and GCC compilers (GCC >= 11), but it is not worth it
at this point to check the compiler version explicitly, to keep things
simple. People who build with C++20 are also expected to use new
compilers.
The fact that ROOT C++17 users lose the vectorized TMath and TFormula
features is an acceptable collateral damage of this migration, as the
features are rarely used and the code/build system simplification is
significant. If users really relied on these niche features, they are
expected to build with C++20.
Windows and Apple silicon users are unaffected by this migration. The
VecCore+Vc combination did not compile on Windows before anyway, and Vc
does not support Apple silicon as Vc didn't support vectorization on ARM
via Neon (it was [in developement](https://github.com/VcDevel/Vc?tab=readme-ov-file#vc-portable-zero-overhead-c-types-for-explicitly-data-parallel-programming) but never finished).
As a result of this migration, the `vc`, `veccore`, `builtin_vc`, and
`builtin_veccore` build options are deprecated.
The migration also fixes this long-standing JIRA issue about failing
TFormula vectorization tests, because Vc symbols could not be resolved:
https://its.cern.ch/jira/browse/ROOT-10614
This was a fundamental limitation of the statically-linked Vc library,
as symbols could not be looked up by the interpreter at runtime. This
limitation is gone with the migration to `std::experimental::simd`.
The unit test that checks if GenVector works with Vc types was changed
to use `std::experimental::simd` types instead.std::experimental::simd
1 parent 9f8a224 commit 719d8a3
1 file changed
+0
-8
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | 61 | | |
66 | 62 | | |
67 | 63 | | |
| |||
375 | 371 | | |
376 | 372 | | |
377 | 373 | | |
378 | | - | |
379 | | - | |
380 | | - | |
381 | | - | |
382 | 374 | | |
383 | 375 | | |
384 | 376 | | |
| |||
0 commit comments