Rasmus Munk Larsen
ed9a0e59ba
Fix more bugs in !2052
...
Fixes #2998
Closes #2998
See merge request libeigen/eigen!2057
Co-authored-by: Rasmus Munk Larsen <rmlarsen@google.com >
2025-11-03 20:26:17 +00:00
Rasmus Munk Larsen
bfdbc031c2
Fixes #2998 .
2025-11-02 23:58:16 +00:00
Rasmus Munk Larsen
8716f109e4
Implement assume_aligned using the standard API
...
This implements `Eigen::internal::assume_aligned` to match the API for C++20 standard as best as possible using either `std::assume_aligned` or `__builtin_assume_aligned` if available. If neither is available, the function is a no-op.
The override macro `EIGEN_ASSUME_ALIGNED` was changed to a `EIGEN_DONT_ASSUME_ALIGNED`, which now forces the function to be a no-op.
See merge request libeigen/eigen!2052
2025-11-01 12:04:19 +00:00
Rasmus Munk Larsen
ce70a507c0
Enable more generic packet ops for double.
...
See merge request libeigen/eigen!2050
2025-10-30 19:14:43 +00:00
Rasmus Munk Larsen
ece9a4c0b6
Always vectorize abs2() for non-complex types.
...
For several packet types, `abs2` was not vectorized even if it only requires `pmul`. Get rid of the confusing and redundant `HasAbs2` enum and instead check `HasMul` in addition to making sure the scalar type is not complex.
See merge request libeigen/eigen!2048
2025-10-30 02:42:56 +00:00
Rasmus Munk Larsen
97c7cc6200
Explicitly use the packet trait HasPow to control whether Pow is vectorized.
2025-07-18 21:51:42 +00:00
Charles Schlosser
302fc46bc3
arm packet alignment requirements and aligned loads/stores
2025-07-15 23:49:04 +00:00
Charles Schlosser
d228bcdf8f
Fix neon compilation bug
2025-06-10 21:52:01 +00:00
Charles Schlosser
994f3d107a
Fix neon packet math tests, add missing neon intrinsics
2025-06-09 17:13:31 +00:00
Rasmus Munk Larsen
33f5f59614
Vectorize cbrt for float and double.
2025-04-17 23:31:20 +00:00
Antonio Sánchez
d935916ac6
Add numext::fma and missing pmadd implementations.
2025-03-23 01:05:53 +00:00
Rasmus Munk Larsen
5133c836c0
Vectorize erf(x) for double.
2024-11-16 19:05:16 +00:00
Rasmus Munk Larsen
0d366f6532
Vectorize erfc(x) for double and improve erfc(x) for float.
2024-11-08 17:21:11 +00:00
Rasmus Munk Larsen
bbdabebf44
Vectorize atanh<double>. Make atanh(x) standard compliant for |x| >= 1.
2024-08-30 17:27:55 +00:00
Tobias Wood
2bf8fe1489
NEON Complex Intrinsics
2024-08-22 22:46:16 +00:00
Rasmus Munk Larsen
32d95bb097
Add vectorized implementation of tanh<double>
2024-08-21 02:29:45 +00:00
Frédéric Chapoton
6331da95eb
fixing a lot of typos
2024-07-30 22:15:49 +00:00
Charles Schlosser
fb95e90f7f
Add truncation op
2024-04-29 23:45:49 +00:00
Damiano Franzò
888fca0e2b
Simd sincos double
2024-04-15 21:12:32 +00:00
Antonio Sánchez
a73970a864
Fix arm32 issues.
2024-01-23 22:04:55 +00:00
Tobias Wood
f38e16c193
Apply clang-format
2023-11-29 11:12:48 +00:00
Charles Schlosser
81b48065ea
Fix arm32 float division and related bugs
2023-08-29 00:36:07 +00:00
Antonio Sánchez
6e4d5d4832
Add IWYU private pragmas to internal headers.
2023-08-21 16:25:22 +00:00
Antonio Sánchez
7465b7651e
Disable FP16 arithmetic for arm32.
2023-06-26 18:39:42 +00:00
Rasmus Munk Larsen
df1049ddf4
Small packet math cleanup.
2023-04-04 16:14:32 +00:00
Antonio Sánchez
2c8011c2dd
Fix arm builds.
2023-03-20 16:59:38 +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
Antonio Sánchez
384269937f
More NEON packetmath fixes.
2023-02-14 21:45:25 +00:00
Antonio Sánchez
2dfbf1b251
Fix NEON make_packet2f.
2023-02-14 16:52:07 +00:00
Antonio Sánchez
0a5392d606
Fix MSVC arm build.
2023-02-08 21:46:37 +00:00
Sean McBride
d70b4864d9
issue #2581 : review and cleanup of compiler version checks
2023-01-17 18:58:34 +00:00
Arthur
311cc0f9cc
Enable NEON pcmp, plset, and complex psqrt
2022-12-22 05:38:34 +00:00
Arthur Feeney
c4fb6af24b
Enable NEON pabs for unsigned int types
2022-12-19 17:07:36 +00:00
Charles Schlosser
9b6d624eab
fix neon
2022-11-08 20:03:01 +00:00
Rasmus Munk Larsen
7e398e9436
Add missing return keyword in psignbit for NEON.
2022-11-04 16:13:09 +00:00
Charles Schlosser
82b152dbe7
Add signbit function
2022-11-04 00:31:20 +00:00
Rasmus Munk Larsen
c475228b28
Vectorize atan() for double.
2022-10-01 01:49:30 +00:00
Rasmus Munk Larsen
bd393e15c3
Vectorize acos, asin, and atan for float.
2022-08-29 19:49:33 +00:00
Antonio Sánchez
28e008b99a
Fix sqrt/rsqrt for NEON.
2022-02-15 21:31:51 +00:00
Antonio Sánchez
6b60bd6754
Fix 32-bit arm int issue.
2022-02-04 21:59:33 +00:00
Kolja Brix
8d81a2339c
Reduce usage of reserved names
2022-01-10 20:53:29 +00:00
Erik Schultheis
cc11e240ac
Some further cleanup
2021-12-06 18:01:15 +00:00
Alex Druinsky
6bb6a6bf53
Vectorize fp16 tanh and logistic functions on Neon
...
Activates vectorization of the Eigen::half versions of the tanh and
logistic functions when they run on Neon. Both functions convert their
inputs to float before computing the output, and as a result of this
commit, the conversions and the computation in float are vectorized.
2021-10-27 16:09:16 +00:00
Kolja Brix
afa616bc9e
Fix some typos found
2021-09-23 15:22:00 +00:00
Rasmus Munk Larsen
d7d0bf832d
Issue an error in case of direct inclusion of internal headers.
2021-09-10 19:12:26 +00:00
Antonio Sanchez
ff07a8a639
GCC 4.8 arm EIGEN_OPTIMIZATION_BARRIER fix ( #2315 ).
...
GCC 4.8 doesn't seem to like the `g` register constraint, failing to
compile with "error: 'asm' operand requires impossible reload".
Tested `r` instead, and that seems to work, even with latest compilers.
Also fixed some minor macro issues to eliminate warnings on armv7.
Fixes #2315 .
2021-08-31 20:20:47 +00:00
Han-Kuan Chen
ab28419298
optimize predux if architecture is aarch64
2021-08-25 19:18:54 +00:00
derekjchow
66ca41bd47
Add support for vectorizing logical comparisons.
2021-07-23 20:07:48 +00:00
大河メタル
c81da59a25
Correct declarations for aarch64-pc-windows-msvc
2021-06-30 04:09:46 +00:00
Rasmus Munk Larsen
bffd267d17
Small cleanup: Get rid of the macros EIGEN_HAS_SINGLE_INSTRUCTION_CJMADD and CJMADD, which were effectively unused, apart from on x86, where the change results in identically performing code.
2021-06-24 18:52:17 -07:00