-
Notifications
You must be signed in to change notification settings - Fork 291
Add vrndn neon instructions #1086
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
Conversation
r? @Amanieu (rust-highfive has picked a reviewer for you, use r? to override) |
These methods are also available on 32-bit ARM when the "v8" feature is enabled. |
It doesn't seem like Rust ships any target for AArch32. I guess this is meant for when you build std yourself then? (Update: I believe stdarch shouldn't be cfg gating any of this anyway, so there shouldn't be a need for its own target) The more I look at it, the more I feel like stdarch doesn't support 32-bit v8 properly anyway. float64x2_t isn't even defined for the ARM target for example (update: even if it did, LLVM can't even handle it, it seems?! Is this an LLVM bug or a NEON docs bug?). |
AArch32 NEON still only supports a subset of AArch64 NEON. In particular AArch32 and AArch64 should be treated as distinct architectures, they have completely different instruction sets. They just happen to share the same intrinsics for NEON. |
Yeah seems like the docs are just wrong then. |
Mmh it seems the remaining CI failures might be because it detects NEON at runtime in the tests which generates too many instructions (and for some it then also optimizes the instruction away?!) |
I think the ARM/AArch64 code needs to be reorganized into separate |
☔ The latest upstream changes (presumably 0117f10) made this pull request unmergeable. Please resolve the merge conflicts. |
281da2c
to
9b08785
Compare
Seems like most of this PR has actually already been done in the meantime, even the instruction got added. Though when it was added AArch32 support was forgotten about, so I reduced this PR to that change. It's ready for review again. |
This adds the neon instructions for lane-wise rounding without actually converting the lanes to integers.
This adds the neon instructions for lane-wise rounding without actually converting the lanes to integers.