Implement fjcvtzs under the name __jcvt like the C intrinsic

This instruction is only available when the jsconv target_feature is available,
so on ARMv8.3 or higher.

It is used e.g. by Ruffle[0] to speed up its conversion from f64 to i32, or by
any JS engine probably.

I’ve picked the stdarch_aarch64_jscvt feature because it’s the name of the
FEAT_JSCVT, but hesitated with naming it stdarch_aarch64_jsconv (the name of
the target_feature) or stdarch_aarch64_jcvt (the name of the C intrinsic) or
stdarch_aarch64_fjcvtzs (the name of the instruction), this choice is purely
arbitrary and I guess it could be argued one way or another.  I wouldn’t expect
it to stay unstable for too long, so ultimately this shouldn’t matter much.

This feature is now tracked in this issue[1].

[0] https://github.com/ruffle-rs/ruffle/pull/21780
[1] https://github.com/rust-lang/rust/issues/147555
4 files changed
tree: 9015992bbcf94401116e6c1f7bcf0a9fa0c8d7f9
  1. .github/
  2. ci/
  3. crates/
  4. examples/
  5. intrinsics_data/
  6. .git-blame-ignore-revs
  7. .gitignore
  8. .gitmodules
  9. Cargo.lock
  10. Cargo.toml
  11. CONTRIBUTING.md
  12. josh-sync.toml
  13. LICENSE-APACHE
  14. LICENSE-MIT
  15. README.md
  16. rust-version
  17. rustfmt.toml
  18. triagebot.toml
  19. vendor.yml
README.md

stdarch - Rust's standard library SIMD components

Actions Status

This repository contains the core_arch crate, which implements core::arch - Rust's core library architecture-specific intrinsics.

The std::simd component now lives in the packed_simd_2 crate.

Synchronizing josh subtree with rustc

This repository is linked to rust-lang/rust as a josh subtree. You can use the rustc-josh-sync tool to perform synchronization.

You can find a guide on how to perform the synchronization here.