-
Notifications
You must be signed in to change notification settings - Fork 273
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
Uncomment wasm32 bitmask instruction #1004
Conversation
r? @Amanieu (rust-highfive has picked a reviewer for you, use r? to override) |
cc @alexcrichton: This looks good to me but I want to run it by you first since it's WASM-related. |
Saw some other commented out lines for the |
The tests for WASM don't seem to be running. Is there a problem with them? |
I believe it was commented it in the CI configuration because it was failing and never got re-enabled. You can try re-enabling it. |
I'll have to play around with enabling and updating the CI config and I'll likely open another PR for that. Edit: PR at #1006 |
Can you rebase to see if it passes WASM CI? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great to me!
FWIW wasm simd and LLVM are still sort of constantly moving targets. The simd proposal for wasm is nearing the next phase of stabilization, however, so I hope that it will settle down in the near future. Once everything settles down again on the wasm side I plan to make another pass through this module so sync with the current state of the spec (which has renamed, added, and tweaked various instructions)
For now though looks great!
77b422c
to
d47c423
Compare
The reason why I want Running the CI (wasmtime) results in weird cranelift errors that look like:
Not sure what to do, as I'm not familiar with this. Edit: tried wasmer, but it isn't up to date as the bitmask operations aren't supported. Latest cranelift version seems to support them, though (https://github.com/bytecodealliance/wasmtime/blob/09b976e1d53a05150c7b8acd36a82b34cec787b3/cranelift/wasm/src/code_translator.rs#L1639), so I'm back to trying wasmtime. Regardless, |
Running tests with the latest wasmtime dev release results in these errors:
@alexcrichton any idea what is going on? |
The SIMD support in Wasmtime is still experimental and not fully fleshed out, so you're probably hitting a bug of a case that isn't implemented yet or just a bug in the implementation. If possible could you minimize the case and report it to rust-lang/rust? |
Another potential thing that should be fixed: missing target feature attributes for some WASM SIMD functions, which affects inlining. Though this should be less of a problem once rust-lang/rust#74320 is fixed. |
☔ The latest upstream changes (presumably 8724eb4) made this pull request unmergeable. Please resolve the merge conflicts. |
I believe that wasm simd stuff is all up to date by this point, so I think this can be closed now? |
#874 introduced some
iNNxMM_bitmask
instructions that were supposed to be supported in LLVM 11, but they were commented out. Since Rust is already on LLVM 11 (https://blog.rust-lang.org/2020/10/08/Rust-1.47.html), this PR uncomments those instructions so they can be used.