-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Whitelist v7 feature for ARM and AARCH64. #47826
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
Needed for `v7` features in `coresimd`. See https://github.com/rust-lang-nursery/stdsimd/blob/b2f7be24d5043a88427f9a5258ca9a51ede6d029/coresimd/src/arm/v7.rs#L40 which used to work but doesn't anymore. r? alexcrichton
(rust_highfive has picked a reviewer for you, use r? to override) |
@bors: r+ rollup |
📌 Commit b32dbbc has been approved by |
Whitelist v7 feature for ARM and AARCH64. Needed for `v7` features in `coresimd`. See https://github.com/rust-lang-nursery/stdsimd/blob/b2f7be24d5043a88427f9a5258ca9a51ede6d029/coresimd/src/arm/v7.rs#L40 which used to work but doesn't anymore. r? alexcrichton
Whitelist v7 feature for ARM and AARCH64. Needed for `v7` features in `coresimd`. See https://github.com/rust-lang-nursery/stdsimd/blob/b2f7be24d5043a88427f9a5258ca9a51ede6d029/coresimd/src/arm/v7.rs#L40 which used to work but doesn't anymore. r? alexcrichton
Why was the |
What should: #[target_feature(enabled = "v7")] unsafe fn foo() {} do on AArch64? If the #[cfg_attr(target_arch = "arm", target_feature(enabled = "v7")]
unsafe fn foo() {} |
It should fail to compile. You should use |
I would be fine with that, but the original reason this was white-listed was for code that works on ARM to work on AArch64 "as is", without modifications. |
If this is an issue, probably this should be made consistent for x86 as well. There are many features in |
I don't think this really makes sense for ARM. x86 and x86_64 are practically identical instruction sets and share the same features. However ARM and AArch64 are effectively completely different instruction sets, and have very different feature lists. |
Isn't AArch64 a super-set of ARM ? All the ARM intrinsics that we have currently implemented are available on AArch64 as well (same name, same llvm intrinsic name, same assembly instruction name, etc.). |
So exactly what is the issue with this coding?? Asking strictly out of curiosity. |
IIUC the problem is that |
This is only actually true for the NEON intrinsics. Many of the remaining intrinsics are only available in the 32-bit instruction set, e.g. DSP ( |
The bit manipulation intrinsics ( |
Needed for
v7
features incoresimd
.See https://github.com/rust-lang-nursery/stdsimd/blob/b2f7be24d5043a88427f9a5258ca9a51ede6d029/coresimd/src/arm/v7.rs#L40 which used to work but doesn't anymore.
r? alexcrichton