Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
3 tasks
workingjubilee opened this issue Apr 25, 2021 · 0 comments
Open
3 tasks

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

workingjubilee opened this issue Apr 25, 2021 · 0 comments
Labels
C-bug Category: Bug C-tracking-issue Ongoing issue with checkboxes for partial progress and such E-needs-design Call for participation: Needs design. I-slow Impact: Slowww I-unsound💥 Warning! Warning! Danger

Comments

@workingjubilee
Copy link
Contributor

workingjubilee commented Apr 25, 2021

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.

@workingjubilee workingjubilee added C-bug Category: Bug C-tracking-issue Ongoing issue with checkboxes for partial progress and such O-PowerPC I-slow Impact: Slowww I-unsound💥 Warning! Warning! Danger and removed O-PowerPC labels Apr 25, 2021
@workingjubilee workingjubilee added the E-needs-design Call for participation: Needs design. label May 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: Bug C-tracking-issue Ongoing issue with checkboxes for partial progress and such E-needs-design Call for participation: Needs design. I-slow Impact: Slowww I-unsound💥 Warning! Warning! Danger
Projects
None yet
Development

No branches or pull requests

1 participant