74 Commits
Author SHA1 Message Date
Rasmus Munk LarsenandRasmus Munk Larsen 48682c4bf3 Test: Pin Reshaped and Replicate traversal strategies in vectorization_logic
libeigen/eigen!2790

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-08-13 14:16:38 -07:00
Charles Schlosser e943ebae60 Fix compiler warnings in cross-compile CI jobs
libeigen/eigen!2667
2026-06-28 00:49:44 +00:00
Rasmus Munk LarsenandRasmus Munk Larsen 2c95e5508e Test: relax vectorization_logic_half unrolling expectation broken on AVX-512
libeigen/eigen!2633

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-06-09 20:15:46 -07:00
d3cfde9db1 Core: fix small fixed-size kernel regressions (#3083)
libeigen/eigen!2581

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
Co-authored-by: Rasmus Munk Larsen <rlarsen@nvidia.com>
2026-06-06 22:59:46 -07:00
Florian Maurin 83184e67da Cleanup: Modernize internal utilities for C++14
libeigen/eigen!2518
2026-05-07 16:43:22 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen 8a3d61c790 Licensing: SPDX identifiers, REUSE.toml, and checkformat:reuse CI job
libeigen/eigen!2509

Closes #2868

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-05-04 00:36:12 +00:00
Florian Maurin 8a910e308a Avoid vectorizing tiny fixed-size assignments
libeigen/eigen!2480

Closes #1342
2026-04-28 00:07:19 +00:00
Rasmus Munk LarsenandRasmus Munk Larsen f574cb9b18 Fix vectorization_logic test for generic clang backend
libeigen/eigen!2333

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-03-22 22:12:57 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen dd81698aed Fix vectorization_logic test for wide SIMD widths
libeigen/eigen!2266

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-03-08 12:11:33 -07:00
Charles Schlosser 151f6127df Fix Warray-bounds warning for fixed-size assignments 2025-02-18 19:23:14 +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
Antonio Sánchez 46e9cdb7fe Clang-format tests, examples, libraries, benchmarks, etc. 2023-12-05 21:22:55 +00:00
Rasmus Munk Larsen 8c43bf2b5b Clean up Redux.h and fix vectorization_logic test after changes to traversal order in Redux. 2023-05-24 20:26:52 +00:00
Sean McBride d70b4864d9 issue #2581: review and cleanup of compiler version checks 2023-01-17 18:58:34 +00:00
Antonio Sánchez 27d8f29be3 Update vectorization_logic tests for all platforms. 2022-03-03 19:54:15 +00:00
David Tellenbach d705eb5f86 Revert "Select AVX2 even if the data size is not a multiple of 8"
Tests are failing for AVX and NEON.

This reverts commit eb85b97339.
2021-12-28 23:57:06 +01:00
David Tellenbach 6e95c0cd9a Add missing internal namespace
The vectorization logic tests miss some namespace internal qualifiers.
2021-12-27 23:50:32 +00:00
Erik Schultheis c20e908ebc turn some macros intro constexpr functions 2021-12-10 19:27:01 +00:00
Francesco Mazzoli eb85b97339 Select AVX2 even if the data size is not a multiple of 8 2021-11-29 21:13:24 +00:00
Jakub Lichman dc5b1f7d75 AVX512 and AVX2 support for Packet16i and Packet8i added 2021-08-25 19:38:23 +00:00
Rasmus Munk Larsen 13fb5ab92c Fix more enum arithmetic. 2021-06-15 09:09:31 -07:00
Rasmus Munk Larsen f64b2954c7 Fix c++20 warnings about using enums in arithmetic expressions. 2021-06-10 17:17:39 -07:00
Kan Chen 8731452b97 Delete duplicate test cases in vectorization_logic.cpp 2020-07-01 00:51:15 +00:00
Rasmus Munk Larsen 6ac37768a9 Revert "add some static checks for packet-picking logic"
This reverts commit 7769600245
2020-02-25 01:07:04 +00:00
Rasmus Munk Larsen 87cfa4862f Revert "Disable test in test/vectorization_logic.cpp, which is currently failing with AVX."
This reverts commit b625adffd8
2020-02-25 01:04:56 +00:00
Rasmus Munk Larsen b625adffd8 Disable test in test/vectorization_logic.cpp, which is currently failing with AVX. 2020-02-24 23:28:25 +00:00
Francesco Mazzoli 7769600245 add some static checks for packet-picking logic 2020-02-07 18:16:16 +01:00
Gael Guennebaud aab749b1c3 fix test regarding AVX512 vectorization of complexes. 2018-12-06 16:55:00 +01:00
Christoph Hertzberg e3c8289047 Replace unused PREDICATE by corresponding STATIC_ASSERT 2018-09-21 21:15:51 +02:00
Gael Guennebaud 91716f03a7 Fix vectorization logic unit test for AVX512 2018-09-21 14:32:24 +02:00
Gael Guennebaud b00e48a867 Improve slice-vectorization logic for redux (significant speed-up for reduxion of blocks) 2018-09-21 13:45:56 +02:00
Gael Guennebaud 2cf6d3050c Disable ignoring attributes warning 2018-09-20 11:38:19 +02:00
Gael Guennebaud 82f0ce2726 Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }.
This provide several advantages:
- more flexibility in designing unit tests
- unit tests can be glued to speed up compilation
- unit tests are compiled with same predefined macros, which is a requirement for zapcc
2018-07-17 14:46:15 +02:00
Gael Guennebaud 9c3aed9d48 Fix packet and alignment propagation logic of Block<Xpr> expressions. In particular, (A+B).col(j) lost vectorisation. 2017-12-14 14:24:33 +01:00
Gael Guennebaud 5ca2457fa5 Fix unit test. 2016-07-06 22:25:24 +02:00
Gael Guennebaud 66e99ab6a1 Relax mixing-type constraints for binary coefficient-wise operators:
- Replace internal::scalar_product_traits<A,B> by Eigen::ScalarBinaryOpTraits<A,B,OP>
- Remove the "functor_is_product_like" helper (was pretty ugly)
- Currently, OP is not used, but it is available to the user for fine grained tuning
- Currently, only the following operators have been generalized: *,/,+,-,=,*=,/=,+=,-=
- TODO: generalize all other binray operators (comparisons,pow,etc.)
- TODO: handle "scalar op array" operators (currently only * is handled)
- TODO: move the handling of the "void" scalar type to ScalarBinaryOpTraits
2016-06-06 15:11:41 +02:00
Gael Guennebaud e68e165a23 bug #256: enable vectorization with unaligned loads/stores.
This concerns all architectures and all sizes.
This new behavior can be disabled by defining EIGEN_UNALIGNED_VECTORIZE=0
2016-05-24 21:54:03 +02:00
Gael Guennebaud a95e1a273e Fix warning in unit tests 2016-04-13 22:00:38 +02:00
Gael Guennebaud 512ba0ac76 Add regression unit tests for half-packet vectorization 2016-04-13 18:16:35 +02:00
Benoit Steiner 25d05c4b8f Fixed the vectorization logic test 2016-04-12 14:13:25 -07:00
Gael Guennebaud 836da91b3f Fix unit tests wrt EIGEN_DEFAULT_TO_ROW_MAJOR 2015-12-11 10:06:28 +01:00
Gael Guennebaud 0fc8954282 Improve readibility of EIGEN_DEBUG_ASSIGN mode. 2015-10-27 10:38:49 +01:00
Gael Guennebaud febcce34f1 Enable vectorization with half-packets 2015-08-07 20:05:31 +02:00
Gael Guennebaud 1f5024332e First part of a big refactoring of alignment control to enable the handling of arbitrarily aligned buffers. It includes:
- AlignedBit flag is deprecated. Alignment is now specified by the evaluator through the 'Alignment' enum, e.g., evaluator<Xpr>::Alignment. Its value is in Bytes.
 - Add several enums to specify alignment: Aligned8, Aligned16, Aligned32, Aligned64, Aligned128. AlignedMax corresponds to EIGEN_MAX_ALIGN_BYTES. Such enums are used to define the above Alignment value, and as the 'Options' template parameter of Map<> and Ref<>.
 - The Aligned enum is now deprecated. It is now an alias for Aligned16.
 - Currently, traits<Matrix<>>, traits<Array<>>, traits<Ref<>>, traits<Map<>>, and traits<Block<>> also expose the Alignment enum.
2015-08-06 15:31:07 +02:00
Gael Guennebaud 1330f8bbd1 bug #973, improve AVX support by enabling vectorization of Vector4i-like types, and enforcing alignement of Vector4f/Vector2d-like types to preserve compatibility with SSE and future Eigen versions that will vectorize them with AVX enabled. 2015-03-13 21:15:50 +01:00
Gael Guennebaud 0ca43f7e9a Remove deprecated code not used by evaluators 2014-09-18 15:15:27 +02:00
Gael Guennebaud c83e01f2d6 Favor column major storage for inner products 2014-09-14 19:38:49 +02:00
Gael Guennebaud 3c7686630d merge with default branch 2014-07-15 10:55:03 +02:00
Christoph Hertzberg 4f440b8123 Test vectorization logic for int 2014-07-14 14:36:20 +02:00
Gael Guennebaud ec0a8b2e6d rm conflict 2014-06-20 16:30:34 +02:00