Rasmus Munk Larsen
d5e67adbe7
Clean up informal language, vague TODOs, and dead code in comments
...
libeigen/eigen!2191
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-02-22 18:32:10 -08:00
Rasmus Munk Larsen
e6accc73ff
Fix comment typos, doubled words, grammar errors, and copy-paste mistakes
...
libeigen/eigen!2173
Closes #3034
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-02-21 14:36:21 -08:00
Rasmus Munk Larsen
8eb6551a8a
Add support for complex numbers in the generic clang backend
...
libeigen/eigen!2078
Co-authored-by: Rasmus Munk Larsen <rmlarsen@google.com >
2025-11-20 00:26:37 +00:00
Rasmus Munk Larsen
23a5482fc0
Misc. packet math cleanups.
...
libeigen/eigen!2070
Co-authored-by: Rasmus Munk Larsen <rmlarsen@google.com >
2025-11-08 21:57:20 +00:00
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
Rasmus Munk Larsen
b6fcddccfc
Get rid of pblend packet op.
...
There was only a single code path left in TensorEvaluator using pblend. We can replace that with a call to the more general TernarySelectOp and get rid of pblend entirely from Core.
Closes #2998
See merge request libeigen/eigen!2056
Co-authored-by: Rasmus Munk Larsen <rmlarsen@google.com >
2025-11-03 23:27:50 +00:00
Rasmus Munk Larsen
2d170aea11
Define pcmp_le generically in terms of pcmp_eq and pcmp_lt.
2025-09-23 14:34:57 +00:00
Antonio Sánchez
2e8cc042a1
Replace calls to numext::fma with numext:madd.
2025-08-28 21:40:19 +00:00
Charles Schlosser
43a65a9cbd
add RealView api
2025-08-12 16:55:05 +00:00
Charles Schlosser
1e65707aa2
Suppress Warray-bounds warning in generic ploaduSegment, fix edge case for vectorized cast
2025-07-23 22:26:40 +00:00
Sean McBride
430e35fbd1
Fixed -Wshadow warning by renaming variables
2025-07-11 11:30:23 -04:00
Antonio Sánchez
db8bd5b825
Modify pselect and various masks to use Scalar(1) for true.
2025-06-20 22:40:46 +00:00
Charles Schlosser
21e89b930c
Enable default behavior for pmin<PropagateFast>, predux_min, etc
2025-06-02 17:23:37 +00:00
Rasmus Munk Larsen
7294434099
Avoid UB in ploaduSegment
2025-04-25 21:13:52 +00:00
Tyler Veness
d6689a15d7
Replace instances of EIGEN_CONSTEXPR macro
2025-04-18 08:27:52 -07:00
Rasmus Munk Larsen
33f5f59614
Vectorize cbrt for float and double.
2025-04-17 23:31:20 +00:00
Charles Schlosser
28c3b26d53
masked load/store framework
2025-04-12 00:31:10 +00:00
Antonio Sánchez
b860042263
Add postream for ostream-ing packets more reliably.
2025-04-01 22:12:00 +00:00
Antonio Sánchez
d935916ac6
Add numext::fma and missing pmadd implementations.
2025-03-23 01:05:53 +00:00
Charles Schlosser
754bd24f5e
fix 2828
2025-03-22 17:19:44 +00:00
Rasmus Munk Larsen
1ea61a5d26
Improve pow(x,y): 25% speedup, increase accuracy for integer exponents.
2024-11-26 06:13:48 +00:00
Rasmus Munk Larsen
3f067c4850
Add exp2() as a packet op and array method.
2024-10-22 22:09:34 +00:00
Frédéric Chapoton
6331da95eb
fixing a lot of typos
2024-07-30 22:15:49 +00:00
Charles Schlosser
2fae4d7a77
Revert "fix scalar pselect"
2024-06-15 20:02:28 +00:00
Charles Schlosser
02bcf9b591
fix scalar pselect
2024-06-10 17:30:22 +00:00
Rasmus Munk Larsen
9148c47d67
Vectorize isfinite and isinf.
2024-05-29 00:20:12 +00:00
Charles Schlosser
8e47971789
Bit shifting functions
2024-05-03 18:55:02 +00:00
Charles Schlosser
fb95e90f7f
Add truncation op
2024-04-29 23:45:49 +00:00
Antonio Sánchez
f0795d35e3
Fix new psincos for ppc and arm32.
2024-04-19 00:31:09 +00:00
Charles Schlosser
6ad2ccea4e
Eigen pblend
2024-04-15 16:19:53 +00:00
Charles Schlosser
122befe54c
Fix "unary minus operator applied to unsigned type, result still unsigned" on MSVC and other stupid warnings
2024-04-12 19:35:04 +00:00
Rasmus Munk Larsen
5226566a14
Speed up pldexp_generic.
2024-04-12 01:32:17 +00:00
Rasmus Munk Larsen
126ba1a166
Add Packet2l for SSE.
2024-03-11 19:54:55 +00:00
Antonio Sánchez
7b87b21910
Fix UB in bool packetmath test.
2024-02-09 19:46:45 +00:00
Antonio Sánchez
a2cf99ec6f
Fix GPU+clang+asan.
2024-01-04 17:29:37 +00:00
Tobias Wood
f38e16c193
Apply clang-format
2023-11-29 11:12:48 +00:00
Kyle Macfarlan
5de0f2f89e
Fixes #2735 : Component-wise cbrt
2023-10-25 03:06:13 +00:00
Antonio Sánchez
6e4d5d4832
Add IWYU private pragmas to internal headers.
2023-08-21 16:25:22 +00:00
Charles Schlosser
5527e78a64
Add missing x86 pcasts
2023-07-28 23:41:38 +00:00
Charles Schlosser
1a2bfca8f0
Fix annoying warnings
2023-07-07 20:19:58 +00:00
Chip Kerchner
211c5dfc67
Add optional offset parameter to ploadu_partial and pstoreu_partial
2023-06-23 19:53:05 +00:00
Charles Schlosser
59b3ef5409
Partially Vectorize Cast
2023-06-09 16:54:31 +00:00
Rasmus Munk Larsen
a347dbbab2
Delete last few occurences of HasHalfPacket.
2023-04-19 10:36:59 -07:00
Rasmus Munk Larsen
0488b708b4
Vectorize tensor.isnan() by using typed predicates.
2023-03-16 04:04:22 +00:00
Rasmus Munk Larsen
ce62177b5b
Vectorize atanh & add a missing definition and unit test for atan.
2023-02-21 03:14:05 +00:00
Charles Schlosser
94b19dc5f2
Add CArg
2023-02-15 21:33:06 +00:00
Rasmus Munk Larsen
37b2e97175
Tweak special case handling in atan2.
2023-01-31 17:48:00 -08:00
Charles Schlosser
0471e61b4c
Optimize various mathematical packet ops
2023-01-28 01:34:26 +00:00
Charles Schlosser
6d9f662a70
Tweak atan2
2023-01-26 17:38:21 +00:00
Charles Schlosser
82b152dbe7
Add signbit function
2022-11-04 00:31:20 +00:00