-
Notifications
You must be signed in to change notification settings - Fork 278
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
Remove the MMX intrinsics #823
Comments
I would even argue they are impossible to use correctly in several circumstances:
So if you're on one of these targets, and use certain operations on floats anywhere in the program, you're basically entirely at the mercy of LLVM not getting too aggressive with reordering code. |
LLVM developers are wondering about removing MMX: https://www.phoronix.com/scan.php?page=news_item&px=LLVM-Goodbye-MMX-Maybe |
It seems that LLVM's main concern is backwards compatibility with existing code that uses I propose simply removing the MMX intrinsics and MMX types. I don't think there is much value in emulating them on top of SSE2 since anyone writing new code should not be using MMX intrinsics. Note that there is still an issue with inline asm in that it can't properly express clobbers of the FP/MMX registers, so you currently can't use it with MMX instructions. |
Sounds a good idea given the potential harm. |
I could prepare PR but what to do with |
It's fine to have feature detection for a feature even if we don't support codegen for it. |
This is necessary, because support for `__m64` was removed from nighly Rust [1]. Fixes rust-random#1050. [1] rust-lang/stdarch#823
This is necessary, because support for `__m64` was removed from nighly Rust [1]. Fixes #1050. [1] rust-lang/stdarch#823
This will need some motivation and rationale, but the TL;DR is that they are very hard to use correctly, and they cause subtle bugs that take a lot of people a lot of time to debug. They aren't in the path towards stabilization either, so those who really need them can migrate towards using inline assembly instead, which is just as unstable.
We should probably phase in a deprecation warning first, and remove them some time later.
The text was updated successfully, but these errors were encountered: