On Mon, Sep 02, 2019 at 01:16:32PM +0100, Kyrill Tkachov wrote: > Hi all, > > This patch implements the __jcvt ACLE intrinsic [1] that maps down to > the FJCVTZS [2] instruction from Armv8.3-a. > No fancy mode iterators or nothing. Just a single builtin, UNSPEC and > define_insn and the associate plumbing. > This patch also defines __ARM_FEATURE_JCVT to indicate when the > intrinsic is available. > > Bootstrapped and tested on aarch64-none-linux-gnu. > > Ok for trunk?
OK. Thanks, James > Thanks, > Kyrill > > [1] https://developer.arm.com/docs/101028/latest/data-processing-intrinsics > [2] > https://developer.arm.com/docs/ddi0596/latest/simd-and-floating-point-instructions-alphabetic-order/fjcvtzs-floating-point-javascript-convert-to-signed-fixed-point-rounding-toward-zero > > 2019-09-02 Kyrylo Tkachov <kyrylo.tkac...@arm.com> > > * config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define. > (aarch64_fjcvtzs): New define_insn. > * config/aarch64/aarch64.h (TARGET_JSCVT): Define. > * config/aarch64/aarch64-builtins.c (aarch64_builtins): > Add AARCH64_JSCVT. > (aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs. > (aarch64_expand_builtin): Handle AARCH64_JSCVT. > * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define > __ARM_FEATURE_JCVT where appropriate. > * config/aarch64/arm_acle.h (__jcvt): Define. > > 2019-09-02 Kyrylo Tkachov <kyrylo.tkac...@arm.com> > > * gcc.target/aarch64/acle/jcvt_1.c: New test. >