<saurabh....@arm.com> writes:
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/amax_f16.c 
> b/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/amax_f16.c
> new file mode 100644
> index 00000000000..de4a6f8efaa
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/amax_f16.c
> @@ -0,0 +1,312 @@
> [...]
> +/*
> +** amax_h4_f16_m_untied:
> +**   mov     (z[0-9]+\.h), h4
> +**   movprfx z0, z1
> +**   famax   z0\.h, p0/m, z0\.h, \1
> +**   ret
> +*/
> +TEST_UNIFORM_ZD (amax_h4_f16_m_untied, svfloat16_t, __fp16,
> +              z0 = svamax_n_f16_m (p0, z1, d4),
> +              z0 = svamax_m (p0, z1, d4))
> +
> +/*
> +** amax_2_f16_m:
> +**   fmov    (z[0-9]+\.h), #2\.0(?:e\+0)?
> +**   famax   z0\.h, p0/m, z0\.h, \1
> +**   ret
> +*/
> +TEST_UNIFORM_Z (amax_2_f16_m, svfloat16_t,
> +             z0 = svamax_n_f16_m (p0, z0, 2),
> +             z0 = svamax_m (p0, z0, 2))

Rather than dropping the tests for 0 and 1, I think we should keep
them and verify that we don't try to use non-existent immediate forms.
(It would be easy for that to happen, if they were added to the wrong
iterators.)

Maybe:

/*
** amax_0_f16_m_tied1:
**      ...
**      famax   z0\.h, p0/m, z0\.h, z[0-9]+\.h
**      ret
*/
TEST_UNIFORM_Z (amax_0_f16_m_tied1, svfloat16_t,
                z0 = svamax_n_f16_m (p0, z0, 0),
                z0 = svamax_m (p0, z0, 0))

/*
** amax_1_f16_m_tied1:
**      ...
**      famax   z0\.h, p0/m, z0\.h, z[0-9]+\.h
**      ret
*/
TEST_UNIFORM_Z (amax_1_f16_m_tied1, svfloat16_t,
                z0 = svamax_n_f16_m (p0, z0, 1),
                z0 = svamax_m (p0, z0, 1))

(untested).  Similarly for the other files, and for _z and _x.

Thanks,
Richard

Reply via email to