Skip to content

v0.3.0

Latest

Choose a tag to compare

@raphlinus raphlinus released this 14 Oct 15:10
· 4 commits to main since this release
0a3ac74

Crates.io | Docs

This release has an MSRV of 1.86.

Added

  • SimdBase::witness to fetch the Simd implementation associated with a
    generic vector. (#76 by @Ralith)
  • Select is 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)
  • SimdFrom splatting 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 dispatch macro to replace simd_dispatch. (#96, #99 by @Ralith, @DJMcNab)

Fixed

  • Simd now requires consistent mask types for native-width
    vectors. (#75 by @Ralith)
  • Simd now requires consistent Bytes types for native-width vectors,
    enabling Bytes::bitcast in generic code. (#81 by @Ralith)
  • Scalar fallback now uses wrapping integer addition. (#85 by @Ralith)

Changed

  • Breaking: a.madd(b, c) and a.msub(b, c) now correspond to a * b + c and a * b - c for consistency with mul_add in
    std. (#88 by @Ralith)
    Previously, madd was a + b * c, and msub was a - b * c.
    Therefore, if you previously had a.madd(b, c), that's now written as b.madd(c, a).
    And if you had a.msub(b, c), that's now written b.madd(-c, a).
  • Constructors for static SIMD levels are now const (#93 by @Ralith)

Full Changelog: v0.2.0...v0.3.0