[docs inaccurate] Not all the `addcarry` intrinsics are marked with the appropriate required CPU feature
Lokathor opened this issue · 3 comments
The following functions use the adx
CPU feature but in their docs they aren't marked as such:
- core::arch::x86::_addcarry_u32
- core::arch::x86_64::_addcarry_u32
- core::arch::x86_64::_addcarry_u64
- core::arch::x86::_subborrow_u32
- core::arch::x86_64::_subborrow_u32
- core::arch::x86_64::_subborrow_u64
This issue has been assigned to @creativcoder via this comment.
@rustbot claim
Are you sure these require the adx
feature? Their definitions in core::arch doesn't seem to enable the feature, and I don't think it's "implicitly" required either (in the sense that not having it will lead to errors or super slow software emulation when using the intrinics). These intrinsics are supposed to map to the much older and ubiquitous adc
instruction, the newer adx
instruction family is just sometimes preferable and therefore may be used instead, at the compiler's discretion, if it's available. But these intrinsics ought to work without the adx
target feature, too.
Ah, I understand the distinction now. I'll close this up.