]> git.ipfire.org Git - thirdparty/gcc.git/commit
arm: Add missing early clobber to MVE vrev64q_m patterns
authorChristophe Lyon <christophe.lyon@arm.com>
Mon, 3 Oct 2022 10:26:03 +0000 (12:26 +0200)
committerChristophe Lyon <christophe.lyon@arm.com>
Mon, 3 Oct 2022 13:13:10 +0000 (15:13 +0200)
commit06aa66af7d0dacc1b247d9e38175e789ef159191
tree39b31f394cd4e06953f9043295a0148399b68c3c
parent53acc10ee81116536d4eb6fbba62a90f329b75ce
arm: Add missing early clobber to MVE vrev64q_m patterns

Like the non-predicated vrev64q patterns, mve_vrev64q_m_<supf><mode>
and mve_vrev64q_m_f<mode> need an early clobber constraint, otherwise
we can generate an unpredictable instruction:

Warning: 64-bit element size and same destination and source operands makes instruction UNPREDICTABLE
when calling vrevq64_m* with the same first and second arguments.

OK for trunk?

Thanks,

Christophe

gcc/ChangeLog:

* config/arm/mve.md (mve_vrev64q_m_<supf><mode>): Add early
clobber.
(mve_vrev64q_m_f<mode>): Likewise.

gcc/testsuite/ChangeLog:

* gcc.target/arm/mve/intrinsics/vrev64q_m_s16-clobber.c: New test.
gcc/config/arm/mve.md
gcc/testsuite/gcc.target/arm/mve/intrinsics/vrev64q_m_s16-clobber.c [new file with mode: 0644]