arm: Fix some more vec-common.md patterns for iwmmxt [PR99724]
authorJakub Jelinek <jakub@redhat.com>
Wed, 24 Mar 2021 10:22:35 +0000 (11:22 +0100)
committerJakub Jelinek <jakub@redhat.com>
Wed, 24 Mar 2021 10:22:35 +0000 (11:22 +0100)
commit4f992de4f369e17b64a66246ec35bf75f41dc98d
treee8bd9e777bc7fc294013dc6ea2d13cb1f0b3132e
parent65cfa2fed39c76498e7c3dfe138bddb049d60dd7
arm: Fix some more vec-common.md patterns for iwmmxt [PR99724]

The following patch fixes similar issues as in PR98849;
in older gcc versions, the expanders were present in neon.md guarded
with TARGET_NEON, but they got moved to vec-common.md and guarded with
ARM_HAVE_<MODE>_ARITH so that they handle both MVE and Neon.
The macros are enabled for some modes even for iwmmxt which has some
vector support for those modes, but only limited.  In particular,
neither the one_cmpl, nor neg, nor movmisalign patterns are present.
For some reason I've failed to construct something that ICEs with
movmisalign, so that is not covered by the testsuite, but both
one_cmpl and neg ICE.

2021-03-24  Jakub Jelinek  <jakub@redhat.com>

PR target/99724
* config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2,
movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT.

* gcc.target/arm/pr99724.c: New test.
gcc/config/arm/vec-common.md
gcc/testsuite/gcc.target/arm/pr99724.c [new file with mode: 0644]