Repository navigation
·
5 commits
to main
since this release
This release has an MSRV of 1.89.
Added
- Added the
SimdIntWidentrait withwidening_mulandwidening_addfor signed and unsigned 8-, 16-, and 32-bit integer vectors. These operations compute exact results in lanes twice as wide, returning the lower and upper halves as two vectors. (#415 by @Shnatsel, #425 and #426 by @RunDevelopment) - Added
SimdIntWiden::pairwise_dot_product, multiplying corresponding integer lanes and summing adjacent pairs of products into lanes twice as wide. Multiplication is exact; addition wraps in the widened type. (#415 by @Shnatsel, #425 and #426 by @RunDevelopment) - Added
SimdIntWiden::pairwise_widening_add, summing adjacent integer lanes into lanes twice as wide without overflow. (#416 by @Shnatsel) - Added
SimdFloat::to_bits,SimdFloat::from_bits, and the associatedBitstypes onSimdFloatandSimdFloatElement, enabling conversions between floating-point vectors and their unsigned integer bit representations in generic code. (#420 by @RunDevelopment) - Added
SimdBase::clampfor all integer and floating-point vectors, clamping each lane to the inclusive interval[min, max]. NaN input lanes remain NaN; invalid bounds panic when debug assertions are enabled and otherwise produce implementation-defined results. (#421, #427 by @RunDevelopment, @Shnatsel)
Changed
- Integer narrowing has been optimized on x86, particularly saturating narrowing on AVX-512 and relaxed narrowing when inputs fit in the destination type. (#414 by @Shnatsel)
SimdIntoandSimdFromblanket implementations are now marked#[inline(always)], avoiding out-of-line conversion calls and performance losses withlto = "off"oropt-level = 1. (#417 by @Novum)from_bitmaskhas been optimized for 8-bit masks on NEON. (#418 by @mightsleep)
Full Changelog: fearless_simd-v1.1.0...fearless_simd-v1.2.0