0
0
mirror of https://gitlab.com/libeigen/eigen.git synced 2026-01-18 17:31:19 +01:00
Files
eigen/test
Rasmus Munk Larsen ec93a6d098 Add a generic Eigen backend based on clang vector extensions
The goal of this MR is to implement a generic SIMD backend (packet ops) for Eigen that uses clang vector extensions instead of platform-dependent intrinsics. Ideally, this should make it possible to build Eigen and achieve reasonable speed on any platform that has a recent clang compiler, without having to write any inline assembly or intrinsics.

Caveats:

* The current implementation is a proof of concept and supports vectorization for float, double, int32_t, and int64_t using fixed-size 512-bit vectors (a somewhat arbitrary choice). I have not done much to tune this for speed yet.
* For now, there is no way to enable this other than setting -DEIGEN_VECTORIZE_GENERIC on the command line.
* This only compiles with newer versions of clang. I have tested that it compiles and all tests pass with clang 19.1.7.

https://clang.llvm.org/docs/LanguageExtensions.html#vectors-and-extended-vectors

Closes #2998 and #2997

See merge request libeigen/eigen!2051

Co-authored-by: Rasmus Munk Larsen <rmlarsen@google.com>
Co-authored-by: Antonio Sánchez <cantonios@google.com>
2025-11-06 21:52:19 +00:00
..
2025-08-10 17:44:09 +00:00
2024-02-15 23:53:59 +00:00
2024-10-26 00:08:25 +00:00
2024-11-22 03:39:19 +00:00
2023-12-11 21:03:09 +00:00
2025-10-13 17:35:03 +00:00
2025-10-24 20:54:54 +00:00
2025-08-10 17:44:09 +00:00
2024-11-22 03:39:19 +00:00
2024-05-03 18:55:02 +00:00
2024-03-29 21:49:27 +00:00
2025-08-12 16:55:05 +00:00
2025-10-07 22:47:35 +00:00
2024-10-29 18:19:02 +00:00
2024-03-29 21:49:27 +00:00
2024-03-27 17:44:50 +00:00
2024-01-19 20:22:47 +00:00
2024-10-14 15:51:40 +00:00
2024-03-11 19:08:30 +00:00
2025-08-07 16:58:22 +00:00