From: Sudakshina Das <Sudi.Das@arm.com>
To: Elen Kalda <Elen.Kalda@arm.com>,
"gcc-patches@gcc.gnu.org" <gcc-patches@gcc.gnu.org>
Cc: nd <nd@arm.com>, Richard Earnshaw <Richard.Earnshaw@arm.com>,
James Greenhalgh <James.Greenhalgh@arm.com>,
Marcus Shawcroft <Marcus.Shawcroft@arm.com>
Subject: Re: [PATCH][AArch64] Make use of FADDP in simple reductions
Date: Thu, 30 May 2019 14:03:00 -0000 [thread overview]
Message-ID: <09eb5523-4532-06ee-26f0-c005af07b50a@arm.com> (raw)
In-Reply-To: <VI1PR08MB33733AE5057E893A57B245FC84320@VI1PR08MB3373.eurprd08.prod.outlook.com>
Hi Elen
Thank you for doing this. You will need a maintainer's approval but I
would like to add a couple of comments. Please find them inline.
On 08/05/2019 14:36, Elen Kalda wrote:
> Hi,
>
> This patch adds a pattern to support the FADDP (scalar) instruction.
>
> Before the patch, the C code
>
> typedef double v2df __attribute__((vector_size (16)));
>
> double
> foo (v2df x)
> {
> return x[1] + x[0];
> }
>
> generated:
> foo:
> dup d1, v0.d[0]
> dup d0, v0.d[1]
> fadd d0, d1, d0
> ret
>
> After patch:
> foo:
> faddp d0, v0.2d
> ret
>
>
> Bootstrapped and done regression tests on aarch64-none-linux-gnu -
> no issues found.
>
> Best wishes,
> Elen
>
>
> gcc/ChangeLog:
>
> 2019-04-24 Elen Kalda <elen.kalda@arm.com>
>
> * config/aarch64/aarch64-simd.md (*aarch64_faddp<mode>): New.
>
> gcc/testsuite/ChangeLog:
>
> 2019-04-24 Elen Kalda <elen.kalda@arm.com>
>
> * gcc.target/aarch64/simd/scalar_faddp.c: New test.
>
> diff --git a/gcc/config/aarch64/aarch64-simd.md
b/gcc/config/aarch64/aarch64-simd.md
> index
e3852c5d182b70978d7603225fce55c0b8ee2894..89fedc6cb3f0c6eb74c6f8d0b21cedb5ae20a095
100644
> --- a/gcc/config/aarch64/aarch64-simd.md
> +++ b/gcc/config/aarch64/aarch64-simd.md
> @@ -2372,6 +2372,21 @@
> [(set_attr "type" "neon_fp_reduc_add_<stype><q>")]
> )
>
> +(define_insn "*aarch64_faddp<mode>"
> + [(set (match_operand:<VEL> 0 "register_operand" "=w")
> + (plus:<VEL>
> + (vec_select:<VEL> (match_operand:VHSDF 1 "register_operand" "w")
I do not think the VHSDF mode should be used here. I believe you may
have taken this from the vector form of this instruction but that seems
to be different than the scalar one. Someone with more floating point
instruction experience can chime in here.
> + (parallel[(match_operand 2 "const_int_operand" "n")]))
> + (vec_select:<VEL> (match_dup:VHSDF 1)
> + (parallel[(match_operand 3 "const_int_operand" "n")]))))]
> + "TARGET_SIMD
> + && ((INTVAL (operands[2]) == 0 && INTVAL (operands[3]) == 1)
Just some minor indentation issue. The && should be below T
> + || (INTVAL (operands[2]) == 1 && INTVAL (operands[3]) == 0))"
Likewise this should be below the second opening brace '('
...
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/aarch64/simd/scalar_faddp.c
> @@ -0,0 +1,31 @@
> +/* { dg-do assemble } */
This can be dg-do compile since you only want an assembly file
> +/* { dg-require-effective-target arm_v8_2a_fp16_scalar_ok } */
> +/* { dg-add-options arm_v8_2a_fp16_scalar } */
> +/* { dg-additional-options "-save-temps -O1" } */
The --save-temps can then be removed as the dg-do compile will produce
the .s file for you
> +/* { dg-final { scan-assembler-not "dup" } } */
...
Thanks
Sudi
next prev parent reply other threads:[~2019-05-30 13:43 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-08 13:36 Elen Kalda
2019-05-30 14:03 ` Sudakshina Das [this message]
2021-09-01 9:59 [PATCH]AArch64 " Tamar Christina
2021-09-08 12:38 ` Tamar Christina
2021-10-08 16:24 ` Richard Sandiford
2021-11-01 7:39 ` Tamar Christina
2021-11-01 8:49 ` Richard Sandiford
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=09eb5523-4532-06ee-26f0-c005af07b50a@arm.com \
--to=sudi.das@arm.com \
--cc=Elen.Kalda@arm.com \
--cc=James.Greenhalgh@arm.com \
--cc=Marcus.Shawcroft@arm.com \
--cc=Richard.Earnshaw@arm.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=nd@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).