Pmull

Mojo trait 🡭

Pmull

A 64×64 → 128-bit carry-less multiply backend.

Provided as a type parameter (rather than a capturing function value) so that _PolyvalRf’s methods stay non-capturing and can satisfy the UniversalHashable trait. Backends (PolyvalAarch64, PolyvalX86) supply the platform PMULL/PCLMULQDQ intrinsic as a static method.

Implemented traits

AnyType

Methods

mul

@staticmethod
fn def mul(a: UInt64, b: UInt64) -> SIMD[.uint64, 2]

Carry-less product of the low 64 bits of a and b.

Args:

  • a (UInt64)
  • b (UInt64)

Returns:

SIMD[.uint64, 2]