This release has an MSRV of 1.86.
Added
SimdBase::witnessto fetch theSimdimplementation associated with a
generic vector. (#76 by @Ralith)Selectis now available on native-width masks. (#77, #83 by @Ralith)Simd::shrv_*preforms a right shift with shift amount specified
per-lane. (#79 by @Ralith)- The
>>operator is implemented for SIMD vectors. (#79 by @Ralith) - Assignment operator implementations. (#80 by @Ralith)
SimdFromsplatting is available on native-width vectors. (#84 by @Ralith)- Left shift by u32. (#86 by @Ralith)
- Unary negation of signed integers. (#91 by @Ralith)
- A simpler
dispatchmacro to replacesimd_dispatch. (#96, #99 by @Ralith, @DJMcNab)
Fixed
Simdnow requires consistent mask types for native-width
vectors. (#75 by @Ralith)Simdnow requires consistentBytestypes for native-width vectors,
enablingBytes::bitcastin generic code. (#81 by @Ralith)- Scalar fallback now uses wrapping integer addition. (#85 by @Ralith)
Changed
- Breaking:
a.madd(b, c)anda.msub(b, c)now correspond toa * b + canda * b - cfor consistency withmul_addin
std. (#88 by @Ralith)
Previously,maddwasa + b * c, andmsubwasa - b * c.
Therefore, if you previously hada.madd(b, c), that's now written asb.madd(c, a).
And if you hada.msub(b, c), that's now writtenb.madd(-c, a). - Constructors for static SIMD levels are now
const(#93 by @Ralith)
Full Changelog: v0.2.0...v0.3.0