arm: MVE: Factorize all vcmp* integer patterns
authorChristophe Lyon <christophe.lyon@linaro.org>
Mon, 10 May 2021 12:52:02 +0000 (12:52 +0000)
committerChristophe Lyon <christophe.lyon@linaro.org>
Mon, 10 May 2021 12:56:16 +0000 (12:56 +0000)
commitd083fbf72d4533d2009c725524983e1184981e74
tree6923ea3cd5686a9a89a0a1e8525f14ef4381356d
parent929056a7689bead913be686c3581bb8a8599acb6
arm: MVE: Factorize all vcmp* integer patterns

After removing the signed and unsigned suffixes in the previous
patches, we can now factorize the vcmp* patterns: there is no longer
an asymmetry where operators do not have the same set of signed and
unsigned variants.

The will make maintenance easier.

MVE has a different set of vector comparison operators than Neon,
so we have to introduce dedicated iterators.

2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/
* config/arm/iterators.md (MVE_COMPARISONS): New.
(mve_cmp_op): New.
(mve_cmp_type): New.
* config/arm/mve.md (mve_vcmp<mve_cmp_op>q_<mode>): New, merge all
mve_vcmp patterns.
(mve_vcmpneq_<mode>, mve_vcmpcsq_n_<mode>, mve_vcmpcsq_<mode>)
(mve_vcmpeqq_n_<mode>, mve_vcmpeqq_<mode>, mve_vcmpgeq_n_<mode>)
(mve_vcmpgeq_<mode>, mve_vcmpgtq_n_<mode>, mve_vcmpgtq_<mode>)
(mve_vcmphiq_n_<mode>, mve_vcmphiq_<mode>, mve_vcmpleq_n_<mode>)
(mve_vcmpleq_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
(mve_vcmpneq_n_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
(mve_vcmpneq_n_<mode>): Remove.
gcc/config/arm/iterators.md
gcc/config/arm/mve.md