• v0.14.0 Stable

    petrbalvin released this 2026-07-19 13:58:48 +00:00 | 266 commits to main since this release

    The floating-point helper and conversion tail of the AVX-512 set, plus
    gather and scatter with VSIB addressing — every encoding verified byte for
    byte against the Go assembler.

    Added

    • asm: the floating-point helpers — reciprocals and reciprocal square
      roots (VRCP14/VRSQRT14 PD/PS/SD/SS), exponents and mantissas (VGETEXP*,
      VGETMANT*), scaling by powers of two (VSCALEF*), rounding (VRNDSCALE*),
      reduction (VREDUCE*), immediate fixup (VFIXUPIMM*) and range selection
      (VRANGE*), and floating-point class tests (VFPCLASSPD/PS X/Y/Z and
      VFPCLASSSD/SS — a new immediate form whose reg field carries the opmask
      destination).
    • asm: gather and scatter with VSIB addressing. The gathers take
      both Go spellings: the VEX form with a vector mask register (OP mask,
      vsib, dst) and the EVEX form with an explicit K mask (OP vsib, K, dst),
      where the EVEX L'L field follows the VSIB index register rather than the
      data register (a ZMM index with an YMM destination encodes L'L = 10, as
      the Go assembler emits). The scatters (VSCATTER*/VPSCATTER*) are EVEX
      only (OP src, K, vsib). All eight gather and eight scatter widths.
    • asm: the remaining conversions — VCVTQQ2PS (the 512-bit source sets
      the length), VCVTPD2QQ/UQQ, VCVTPS2QQ, VCVTUDQ2PD/PS, the half-precision
      VCVTPH2PS and VCVTPS2PH (the extract layout with an immediate).
    Downloads