Releases: VcDevel/Vc
Vc 1.4.5
Vc is an open source library to ease explicit vectorization of C++ code. It has an intuitive API and provides portability between different compilers and compiler versions as well as portability between different vector instruction sets.
Vc 1.4.5 is a bugfix release most notably incorporating fixes for current compiler versions.
What's Changed
- Small CMake improvements by @gruenich in #360
- Replace uses exec_program with execute_process by @pikacic in #364
New Contributors
Full Changelog: 1.4.4...1.4.5
Vc 1.4.4
Vc is an open source library to ease explicit vectorization of C++ code. It has an intuitive API and provides portability between different compilers and compiler versions as well as portability between different vector instruction sets.
Vc 1.4.4 is a bugfix release most notably incorporating fixes for current compiler versions.
User Changelog
- Add missing vectorcall to isImplementationSupported by @bernhardmgruber in #347
- Adapt to cpp17: std::iterator is deprecated by @dpiparo in #356
- Rename None to NoTransformation in enum class Category to avoid a clash with X11 library by @dkonst13 in #354
- Fix horizontal min/max for uchar by @bernhardmgruber in #350
- Regenerate godbolt headers by @bernhardmgruber in #357
New Contributors
Full Changelog: 1.4.3...1.4.4
Developer Changelog
Vc 1.4.3
Vc is an open source library to ease explicit vectorization of C++ code. It has an intuitive API and provides portability between different compilers and compiler versions as well as portability between different vector instruction sets.
Vc 1.4.3 is a bugfix release most notably incorporating fixes for current compiler versions.
User Changelog
- Fix integer comparison warning by @bernhardmgruber in #281
- Fix vector call linking with trigonometric functions by @EricAtORS in #274
- Allow consumption in subprojects by @Corristo in #271
- Support GCC standard libraries which do not define __GLIBC_PREREQ by @bernhardmgruber in #282
- Vector: add index_type alias by @amyspark in #285
- Add github actions CI inspired by travis/appveyor scripts by @bernhardmgruber in #278
- Require at least VS2015 by @bernhardmgruber in #290
- MSVC: specify Vc_VDECL explicitly on a few functions by @amyspark in #291
- Treat GitHub Actions CI like travis/appveyor CI by @bernhardmgruber in #297
- Remove appveyor and travis CI by @bernhardmgruber in #293
- exp: adjust boundaries for single-precision floating point by @amyspark in #295
- Retrieve MSVC version from cl.exe by @bernhardmgruber in #298
- Vector: add constructor taking an element reference by @amyspark in #286
- Fix MaskBool initialization on SSE by @amyspark in #300
- Update godbolt headers by @bernhardmgruber in #305
- Add Vc_INTRINSIC to fixed_size_simd operators by @bmanga in #309
- Add nighly builds by @bernhardmgruber in #314
- Support AMD zen3 by @bernhardmgruber in #317
- Remove custom offsetof implementation by @hahnjo in #313
- Add clang-12 to CI by @bernhardmgruber in #315
- Fix zen3 flags for icc and support icelake by @bernhardmgruber in #321
- Add VS2019 to CI by @bernhardmgruber in #294
- Update README by @bernhardmgruber in #324
- CMake: add x86-64 feature levels by @stephanlachnit in #326
- Don't build tests by default by @bernhardmgruber in #325
- Add g++-11 to CI by @bernhardmgruber in #318
- Drop VS2017 by @bernhardmgruber in #328
- CMakeLists.txt: use CMAKE_CURRENT_LIST_DIR for module path by @htfy96 in #302
- Minor fixes for Intel C/C++ compilers by @amadio in #330
- Disable ctest submit by @bernhardmgruber in #336
- Make godbolt headers have all of Vc by @bernhardmgruber in #333
- Default to Vc_RECURSIVE_MEMORY 1 by @bernhardmgruber in #334
- Avoid assertion with MS STL in debug mode by @bernhardmgruber in #337
- Avoid Intel specific flags with icc by @bernhardmgruber in #322
- Fix out of bounds index when float_v is scalar by @bernhardmgruber in #340
- Run debug builds in CI by @bernhardmgruber in #338
- Revert "disable submitting to cdash" by @bernhardmgruber in #342
- Update README.md by @bernhardmgruber in #341
- Add maintenance mode warning to issue template by @bernhardmgruber in #344
- Fix warning on using TimeStampCounter uninitialized by @bernhardmgruber in #343
New Contributors
- @EricAtORS made their first contribution in #274
- @Corristo made their first contribution in #271
- @amyspark made their first contribution in #285
- @bmanga made their first contribution in #309
- @stephanlachnit made their first contribution in #326
- @htfy96 made their first contribution in #302
Full Changelog: 1.4.2...1.4.3
Developer Changelog
Vc 1.4.2
Vc is an open source library to ease explicit vectorization of C++ code. It has an intuitive API and provides portability between different compilers and compiler versions as well as portability between different vector instruction sets.
Vc 1.4.2 is a bugfix release most notably incorporating fixes for current compiler versions.
User Changelog
description | |
---|---|
Fixed a warning from cmake. (see #276) | |
Added a missing include for GCC11. (see #275) | |
Fixed a compilation error with MSVC. (see #272, #277) | |
Fixed a corner case in the unit tests. (see #262) | |
Fixed a warning in the unit tests. (see #261) | |
Fixed a unit test compilation error with clang. (see #260) | |
Removed the deprecated Vector<T, VectorAbi::Scalar>::reinterpretCast to fix a warning with GCC10. (see #254) |
|
Avoid potentially pessimizing std::move in return statements. (see #258) |
|
Avoid redefinition of bit_scan{forward,reverse} macros. (see #248 | |
Improved performance of simized random access containers. | |
Documentation and CI cleanup. (see #222, #223, #251, #259) |
Developer Changelog
Vc 1.4.1
Vc is an open source library to ease explicit vectorization of C++ code. It has an intuitive API and provides portability between different compilers and compiler versions as well as portability between different vector instruction sets.
Vc 1.4.1 is a bugfix release most notably incorporating improved codegen on gathers with AVX2 available.
User Changelog
description | |
---|---|
Gather operations that required implicit multiplication of the index vector (because of gather into an array of structure) will now do a more efficient vector multiplication or, if possible, use a larger stride in the gather instruction to avoid the multiplication (see #214) | |
Internal code cleanup (removal of dead code) to hit fewer compilation corner cases/errors. | |
Buildsystem fixes for i686 and libmvec. |
Developer Changelog
Vc 1.4.0
Vc is an open source library to ease explicit vectorization of C++ code. It has an intuitive API and provides portability between different compilers and compiler versions as well as portability between different vector instruction sets.
Vc 1.4.0 is a minor feature release with subtle changes in the interface and the start of an upgrade path to std::experimental::simd
.
User Changelog
Developer Changelog
Vc 1.3.3
Vc is an open source library to ease explicit vectorization of C++ code. It has an intuitive API and provides portability between different compilers and compiler versions as well as portability between different vector instruction sets.
Vc 1.3.3 is a minor bug fix release.
User Changelog
- Support for AVX2 gather instructions. Thanks to Kay F. Jahnke for the initial patch.
- Shift optimizations
- Preliminary support for compiling to non-x86 targets (uses only the
Scalar
ABI) - Resolve failing static assertions, moving the relevant tests to unit tests
- Fixed
is_simd_vector
andis_simd_mask
traits to consider theElementType
too. Thanks to Kay F. Jahnke.
Developer Changelog
Vc 1.3.2
Vc is an open source library to ease explicit vectorization of C++ code. It has an intuitive API and provides portability between different compilers and compiler versions as well as portability between different vector instruction sets.
Vc 1.3.2 is a small bug fix release.
User Changelog
- Resolve warnings from GCC 6 about ignored attributes.
- Support for Kaby Lake detection.
Developer Changelog
Vc 1.3.1
Vc is an open source library to ease explicit vectorization of C++ code. It has an intuitive API and provides portability between different compilers and compiler versions as well as portability between different vector instruction sets.
Vc 1.3.1 contains bug fixes, enables swap
on scalar subscripts, and resolves a licensing issue in the examples.
User Changelog
swap(v[i], v[j])
did not compile. Vc 1.3.1 overloads theswap
function and thus enables swapping scalars into/out of vector and mask objects.- The spline example has moved to the new Vc-examples-nonfree repository since it has a license that restricts redistribution.
Developer Changelog
Vc 1.3.0
Vc is an open source library to ease explicit vectorization of C++ code. It has an intuitive API and provides portability between different compilers and compiler versions as well as portability between different vector instruction sets.
Vc 1.3.0 contains API cleanups, bug fixes, important compiler-specific optimizations & workarounds, and finally supports MSVC again
User Changelog
- 64-bit MS VisualStudio 2015 support. (See #119 for some of the gory details.)
- ICC 17 support (#143).
- GCC 6 support (#125).
- Workarounds for bad ICC code-gen (#135). Now Vc not only works correctly when compiled with ICC, but also performs as good (or better) as GCC and Clang.
- Safer and more restrictive subscripting on
Vector
andMask
. There is a minor source compatibility break involved, sinceVector::operator[]
returned lvalue references before Vc 1.3 and returns a smart reference (rvalue) now. This change reduces the chance of miscompilation & internal compiler errors and reduces the reliance on non-standard C++ extensions. - Support for
x32
compilation (like x86_64 but with 32-bit pointers). - Added scatter interface to
SimdArray
(thanks to Kay Jahnke). simd_cast
properly works with ADL now (i.e. you don't have to write fully qualifiedVc::simd_cast
anymore).- Added
simd_for_each_n
(thanks to Hartmut Kaiser).