Emmanuel Gil Peyrot 6039ddea09 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
2025-10-10 13:29:42 +00:00
..
2025-07-23 11:40:44 +03:00
2025-07-07 21:51:29 +00:00

Generate and run programs using equivalent C and Rust intrinsics, checking that each produces the same result from random inputs.

Usage

USAGE:
    intrinsic-test [FLAGS] [OPTIONS] <INPUT>

FLAGS:
        --a32              Run tests for A32 intrinsics instead of A64
        --generate-only    Regenerate test programs, but don't build or run them
    -h, --help             Prints help information
    -V, --version          Prints version information

OPTIONS:
        --cppcompiler <CPPCOMPILER>    The C++ compiler to use for compiling the c++ code [default: clang++]
        --runner <RUNNER>              Run the C programs under emulation with this command
        --skip <SKIP>                  Filename for a list of intrinsics to skip (one per line)
        --toolchain <TOOLCHAIN>        The rust toolchain to use for building the rust code

ARGS:
    <INPUT>    The input file containing the intrinsics