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.