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. Richard