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

Rewire MMX intrinsics to SSE2 instructions #58168

Closed
the8472 opened this issue Feb 4, 2019 · 3 comments
Closed

Rewire MMX intrinsics to SSE2 instructions #58168

the8472 opened this issue Feb 4, 2019 · 3 comments
Labels
A-simd Area: SIMD (Single Instruction Multiple Data) C-feature-request Category: A feature request, i.e: not implemented / a PR. O-x86_32 Target: x86 processors, 32 bit (like i686-*) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@the8472
Copy link
Member

the8472 commented Feb 4, 2019

GCC just implemented rewiring the MMX intrinsics to 8byte SSE2 equivalents. Rust could do the same to avoid emitting MMX instructions and the associated pitfalls such as #57831 while still offering __m64 vector types.

@jonas-schievink jonas-schievink added O-x86 T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. C-feature-request Category: A feature request, i.e: not implemented / a PR. A-simd Area: SIMD (Single Instruction Multiple Data) labels Feb 4, 2019
@the8472 the8472 changed the title Rewire MMX intrinsics to SSE2 instrunctions Rewire MMX intrinsics to SSE2 instructions Feb 5, 2019
@workingjubilee
Copy link
Member

This is an understandable request but it seems sanest to simply Not, as core::arch has recently completely removed MMX support. While it is technically possible to completely replace it with SSE2 capabilities, it seems like adding unnecessary confusion as we would then have emulated SSE2-dependent MMX but not real MMX.

@mati865
Copy link
Contributor

mati865 commented Sep 18, 2020

This issue was opened when removal was not yet considered viable option.
GCC and Clang reimplemented MMX with SSE because they did not want to break old code.

In our case MMX was never stabilised (and never would have been) so the removal is pretty straightforward.
As bonus with CPUs available today MMX is hardly ever the best option.

@the8472
Copy link
Member Author

the8472 commented Sep 18, 2020

Good points. The only remaining use-cases I see is if someone tried to mechanically translate existing code using intrinsics. But that'sprobably niche enough that we don't need it in std.

Closing.

@the8472 the8472 closed this as completed Sep 18, 2020
@Noratrieb Noratrieb added O-x86_32 Target: x86 processors, 32 bit (like i686-*) and removed O-x86-all labels Oct 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-simd Area: SIMD (Single Instruction Multiple Data) C-feature-request Category: A feature request, i.e: not implemented / a PR. O-x86_32 Target: x86 processors, 32 bit (like i686-*) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

5 participants