We currently use asm! for both algorithms to "emulate" the relevant unstable intrinsics.
It probably doesn't make sense to switch only SHA-256 to the intrinsics, which would necessitate what's currently an aggressive MSRV bump to 1.76, but wouldn't completely get rid of the asm!.
When the SHA-512 intrinsics have been stabilized and we're ready to bump MSRV, we can migrate both implementations.
As of Rust 1.76, the SHA-256 NEON intrinsics are stable, but the SHA-512 ones are not. See tracking issue here: https://github.com/rust-lang/rust/issues/117225
We currently use
asm!
for both algorithms to "emulate" the relevant unstable intrinsics.It probably doesn't make sense to switch only SHA-256 to the intrinsics, which would necessitate what's currently an aggressive MSRV bump to 1.76, but wouldn't completely get rid of the
asm!
.When the SHA-512 intrinsics have been stabilized and we're ready to bump MSRV, we can migrate both implementations.