This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][AArch64] Implement new intrinsics vabsd_s64 and vnegd_s64
- From: James Greenhalgh <james dot greenhalgh at arm dot com>
- To: Vlad Lazar <Vlad dot Lazar at arm dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>, nd <nd at arm dot com>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>
- Date: Tue, 31 Jul 2018 22:48:39 +0100
- Subject: Re: [PATCH][AArch64] Implement new intrinsics vabsd_s64 and vnegd_s64
- References: <f382c802-401c-901e-ead8-0d2188cf151c@arm.com>
On Fri, Jul 20, 2018 at 04:37:34AM -0500, Vlad Lazar wrote:
> Hi,
>
> The patch adds implementations for the NEON intrinsics vabsd_s64 and vnegd_s64.
> (https://developer.arm.com/products/architecture/cpu-architecture/a-profile/docs/ihi0073/latest/arm-neon-intrinsics-reference-architecture-specification)
>
> Bootstrapped and regtested on aarch64-none-linux-gnu and there are no regressions.
>
> OK for trunk?
>
> +__extension__ extern __inline int64_t
> +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> +vnegd_s64 (int64_t __a)
> +{
> + return -__a;
> +}
Does this give the correct behaviour for the minimum value of int64_t? That
would be undefined behaviour in C, but well-defined under ACLE.
Thanks,
James