-
Notifications
You must be signed in to change notification settings - Fork 270
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
vld1q_u32/vst1q_u32 etc. #429
Comments
Also, is there a simple way to locate the relevant LLVM intrinsic for a known instruction? |
Perhaps #40 (comment)? |
I'm closing this as a duplicate of #148.
These are
The LLVM ARM neon intrinsics start with Otherwise you can try to check if clang has any code-gen tests for the Check out the One trick that is helpful if you don't have access to an arm machine is adding the intrinsic to point to some LLVM function, exporting an |
@TheIronBorn Thanks, I hadn't seen those particular links (LLVM intrinsic dump). @gnzlbg Thanks! I have access to a Cavium ThunderX machine so should get some real tests working. Hopefully I can just compile for both arm and aarch64 targets and that should be sufficient to test. |
@jasondavies that should allow you to run the tests locally and speed things up! Typically when building coresimd no errors happen even if the Just note that for the armv7-.. targets to work properly you need to enable NEON at compile-time ( Also, if you get stuck, just open a PR so that we can look into it, and include the LLVM errors that you get in the comments, if any. You already know the drill :P |
Hmm, perhaps I don't actually need these ld/st intrinsics for my purposes (though it would be nice to have them eventually). My reasoning is that if I simply use Quick question for you: is |
Write a small function that does that,
LLVM is able to do amazing things here while at the same time also missing some of the most simplest cases. If that doesn't work as you expect. Fill it as a bug here, and I'll report it to LLVM upstream. |
I switched to using |
Good to know, just keep in mind that those types are not hitting stable rust in the immediate future. There is an RFC but that's still under review and there is still a lot of work to be done. |
If you're interested, I just published my code for hardware-accelerated iterated SHA-256 here: https://github.com/plutomonkey/verify-beacon. I expect/hope that eventually the hardware-accelerated portions can be moved entirely to the rust-crypto crates, but I just wanted to get the job done in the most straightforward way to start with. The Intel/ARM implementations can probably be merged together quite easily too. The only thing I wasn't quite sure about was instructing users about how to build the binary tool with the right features enabled. In both Intel/ARM cases I've put custom As for use of One more thing: I'm using stdsimd directly as a dependency but IIUC this will no longer be required when the next nightly is available. |
Specifying What libraries can do is fail in some way if the features that they require are not available. For example, you could use run-time feature detection for You can also add a fallback algorithm that uses no features, and is invoked if the CPU does not support what the other algorithms need. The
I don't know which |
Would be great to have support for these.
I assume they simply need to be added under
coresimd::arm::neon
?The text was updated successfully, but these errors were encountered: