On Wed, 10 Jul 2024, Richard Sandiford wrote:

> Richard Sandiford <richard.sandif...@arm.com> writes:
> > Jennifer Schmitz <jschm...@nvidia.com> writes:
> >> As a follow-up to adding a pattern that folds x/sqrt(x) to sqrt(x) in 
> >> match.pd, this patch adds a test case for type Float16 for armv8.2-a+fp16.
> >>
> >> The patch was bootstrapped and regtested on aarch64-linux-gnu, no 
> >> regression.
> >> Ok for mainline?
> >>
> >> Signed-off-by: Jennifer Schmitz <jschm...@nvidia.com>
> >>
> >> gcc/testsuite/
> >>
> >> * gcc.target/aarch64/sqrt_div_float16.c: New test.
> >>
> >> commit f909f882dda56e33fde2a06f4c1318d7e691e5c9
> >> Author: Jennifer Schmitz <jschm...@nvidia.com>
> >> Date:   Mon Jul 8 18:54:54 2024 +0530
> >>
> >>     [PATCH] testsuite: Test the pattern folding x/sqrt(x) to sqrt(x) for 
> >> Float16
> >>     
> >>     As a follow-up to adding a pattern that folds x/sqrt(x) to sqrt(x) in 
> >> match.pd,
> >>     this patch adds a test case for type Float16 for armv8.2-a+fp16.
> >>     
> >>     The patch was bootstrapped and regtested on aarch64-linux-gnu, no 
> >> regression.
> >>     Ok for mainline?
> >>     
> >>     Signed-off-by: Jennifer Schmitz <jschm...@nvidia.com>
> >>     
> >>     gcc/testsuite/
> >>     
> >>             * gcc.target/aarch64/sqrt_div_float16.c: New test.
> >>
> >> diff --git a/gcc/testsuite/gcc.target/aarch64/sqrt_div_float16.c 
> >> b/gcc/testsuite/gcc.target/aarch64/sqrt_div_float16.c
> >> new file mode 100644
> >> index 00000000000..c4f297ef17a
> >> --- /dev/null
> >> +++ b/gcc/testsuite/gcc.target/aarch64/sqrt_div_float16.c
> >> @@ -0,0 +1,14 @@
> >> +/* { dg-do compile } */
> >> +/* { dg-options "-O2 -ffast-math -fdump-tree-forwprop-details" } */
> >> +/* { dg-require-effective-target c99_runtime } */
> >> +
> >> +#pragma GCC target ("arch=armv8.2-a+fp16")
> >> +
> >> +_Float16 f (_Float16 x) 
> >> +{
> >> +  _Float16 t1 = __builtin_sqrt (x);
> >> +  _Float16 t2 = x / t1;
> >> +  return t2;
> >> +}
> >> +
> >> +/* { dg-final { scan-tree-dump "gimple_simplified to t2_\[0-9\]+ = .SQRT 
> >> .x_\[0-9\]*.D.." "forwprop1" } } */
> >
> > I'm a bit nervous about tying a match.pd test to a specific dump file,
> > since match.pd is indirectly used by many passes.  How about instead
> > matching the end result, with:
> >
> > /* { dg-options "-O2 -ffast-math" } */
> > /* { dg-final { check-function-bodies "**" "" } } */
> >
> > #pragma ...
> >
> > /*
> > ** f:
> > **  fsqrt   h0, h0
> > **  ret
> > */
> > _Float16 f (_Float16 x) 
> > ...
> >
> > (tabs rather than spaces in the asm quote).
> >
> > OK with that change if you agree.
> 
> Sorry, the above collided with Kyrill's review, so please stick with
> the committed version.

Just to add we're generally using the first forwprop dump for
match.pd tests that require SSA use-def chains, so I think the
test is fine.

Richard.

Reply via email to