This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [AArch64] Implement vector float->double widening and double->float narrowing.
- From: Marcus Shawcroft <marcus dot shawcroft at gmail dot com>
- To: James Greenhalgh <james dot greenhalgh at arm dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>, Marcus Shawcroft <marcus dot shawcroft at arm dot com>
- Date: Mon, 29 Apr 2013 10:54:24 +0100
- Subject: Re: [AArch64] Implement vector float->double widening and double->float narrowing.
- References: <1366982721-22789-1-git-send-email-james dot greenhalgh at arm dot com>
On 26 April 2013 14:25, James Greenhalgh <james.greenhalgh@arm.com> wrote:
>
> Hi,
>
> gcc.dg/vect/vect-float-truncate-1.c and
> gcc.dg/vect/vect-float-extend-1.c
>
> Were failing because widening and narrowing of floats to doubles was
> not wired up.
>
> This patch fixes that by implementing the standard names:
>
> vec_pack_trunc_v2df
> Taking two vectors of V2DFmode and returning one vector of V4SF mode.
>
> `vec_unpacks_float_hi_v4sf', `vec_unpacks_float_lo_v4sf'
> Taking one vector of V4SF mode and splitting it to two vectors of V2DF mode.
>
> Patch regression tested on aarch64-none-elf with no regressions,
> and shown to fix the bug.
>
> Thanks,
> James
> ---
> gcc/
>
> 2013-04-26 James Greenhalgh <james.greenhalgh@arm.com>
>
> * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
> (float_truncate_hi_): Likewise.
> (float_extend_lo_): Likewise.
> (float_truncate_lo_): Likewise.
> * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
> (aarch64_float_extend_lo_v2df): Likewise.
> (vec_unpacks_hi_v4sf): Likewise.
> (aarch64_float_truncate_lo_v2sf): Likewise.
> (aarch64_float_truncate_hi_v4sf): Likewise.
> (vec_pack_trunc_v2df): Likewise.
> (vec_pack_trunc_df): Likewise.
OK
/Marcus