Skip to content

Simd{U,I}128 blocked on... LLVM maybe? #108

Open
@workingjubilee

Description

@workingjubilee

Obstacles to an effective implementation of SimdU128 and SimdI128:

Accordingly, it was removed in 92d643b, preventing any soundness issues but leaving several questions open.

This technically is a primitive type according to Rust, so we could probably figure out a way to get vectorized arithmetic on them anyways, LLVM notwithstanding.

  • Bitops can probably be managed via transmutation
  • We can use a vector as a "bigint" for addition.
  • We could yield them to FFI as fairly opaque bit-vector types, which is probably what we'd have to do anyway for most SIMD FFI, if memory serves.

But as-is, using them is a performance hazard, which is counterproductive to the purpose of this library. The standard library does not support AtomicU128 on many targets either, so we're not exactly taking a huge hit in portability here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: BugC-tracking-issueOngoing issue with checkboxes for partial progress and suchE-needs-designCall for participation: Needs design.I-slowImpact: SlowwwI-unsound💥Warning! Warning! Danger

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions