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

remove std::simd #528

Merged
merged 2 commits into from
Jul 18, 2018
Merged

remove std::simd #528

merged 2 commits into from
Jul 18, 2018

Conversation

gnzlbg
Copy link
Contributor

@gnzlbg gnzlbg commented Jul 18, 2018

Closes #525 .

@gnzlbg
Copy link
Contributor Author

gnzlbg commented Jul 18, 2018

I've run out of CI capacity so I am posting this here a bit early, its still WIP but most things build already and most tests on most targets pass.

I won't merge this till the ppv crate can be used as a fallback, but right now the only feature missing is the FromBits/IntoBits traits, which are not part of the RFC. My plan is to add those behind a feature flag, and then release the crate.

@lu-zero
Copy link
Contributor

lu-zero commented Jul 18, 2018

Keeping FromBits and IntoBits would be less painful for our theoretical users (and for us when writing the tests) :)

@gnzlbg
Copy link
Contributor Author

gnzlbg commented Jul 18, 2018

Keeping FromBits and IntoBits would be less painful for our theoretical users (and for us when writing the tests) :)

Since we are removing all portable vector types from here, it is going to be painful anyways.

For us.. we can just use transmute for the time being, I don't personally think that the gazillion FromBits/IntoBits implementations that are required to make this ergonomic are worth it.

If someone wants to send a PR adding them for the types in the new simd.rs module, I can review that, but the biggest offenders needed these are the arm/aarch64/ppc modules, x86 for example does not really use them.

An alternative is to just abbreviate transmute to ::t(...) or similar, instead of using ::mem::transmute everywhere...

For this to land, the ppv crate will need to implement the FromBits/IntoBits traits first though.

@CryZe
Copy link
Contributor

CryZe commented Jul 18, 2018

This has the downside that you can't experiment with portable SIMD on Godbolt anymore, which was very useful. I guess someone should just add the ability to use crates to Godbolt though instead.

@gnzlbg
Copy link
Contributor Author

gnzlbg commented Jul 18, 2018

@CryZe yeah that was very useful, godbolt supports using libraries for other languages (e.g. C++) so maybe we should open an issue there. Now that godbolt has gained cross-compilation support, this would be very very useful.

@alexcrichton
Copy link
Member

@gnzlbg would you be ok merging this for now to get CI green again, but we'll hold off on updating the submodule in rust-lang/rust until you've published?

@gnzlbg gnzlbg merged commit 97742f0 into rust-lang:master Jul 18, 2018
@gnzlbg
Copy link
Contributor Author

gnzlbg commented Jul 18, 2018

Done, I might get time to get the From/IntoBits impl ported tomorrow. The submodule update will still take a while but maybe we could start doing that at the end of this week, since that should fix all of the linker errors that people were seeing due to missing definitions of some of the vector functions.

yvt added a commit to yvt/ngspades that referenced this pull request Apr 25, 2020
`std::simd` (feature-gated with `stdsimd`) was removed by this pull
request: <rust-lang/stdarch#528>.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants