arm: Make MVE masked stores read memory operand [PR 108177]
authorAndre Vieira <andre.simoesdiasvieira@arm.com>
Tue, 24 Jan 2023 16:59:23 +0000 (16:59 +0000)
committerAndre Vieira <andre.simoesdiasvieira@arm.com>
Tue, 24 Jan 2023 16:59:23 +0000 (16:59 +0000)
commitc1093923733a1072a237f112e3239b5ebd88eadd
tree4b7b200c0b78f8100417945e7425c5cb4bce968c
parent4d518ed1c0edbfff5208e09616f98ea412b55c52
arm: Make MVE masked stores read memory operand [PR 108177]

This patch adds the memory operand of MVE masked stores as input operands to
mimic the 'partial' writes, to prevent erroneous write-after-write
optimizations as described in the PR.

gcc/ChangeLog:

PR target/108177
* config/arm/mve.md (mve_vstrbq_p_<supf><mode>, mve_vstrhq_p_fv8hf,
mve_vstrhq_p_<supf><mode>, mve_vstrwq_p_<supf>v4si): Add memory operand
as input operand.

gcc/testsuite/ChangeLog:

* gcc.target/arm/mve/pr108177-1-run.c: New test.
* gcc.target/arm/mve/pr108177-1.c: New test.
* gcc.target/arm/mve/pr108177-10-run.c: New test.
* gcc.target/arm/mve/pr108177-10.c: New test.
* gcc.target/arm/mve/pr108177-11-run.c: New test.
* gcc.target/arm/mve/pr108177-11.c: New test.
* gcc.target/arm/mve/pr108177-12-run.c: New test.
* gcc.target/arm/mve/pr108177-12.c: New test.
* gcc.target/arm/mve/pr108177-13-run.c: New test.
* gcc.target/arm/mve/pr108177-13.c: New test.
* gcc.target/arm/mve/pr108177-14-run.c: New test.
* gcc.target/arm/mve/pr108177-14.c: New test.
* gcc.target/arm/mve/pr108177-2-run.c: New test.
* gcc.target/arm/mve/pr108177-2.c: New test.
* gcc.target/arm/mve/pr108177-3-run.c: New test.
* gcc.target/arm/mve/pr108177-3.c: New test.
* gcc.target/arm/mve/pr108177-4-run.c: New test.
* gcc.target/arm/mve/pr108177-4.c: New test.
* gcc.target/arm/mve/pr108177-5-run.c: New test.
* gcc.target/arm/mve/pr108177-5.c: New test.
* gcc.target/arm/mve/pr108177-6-run.c: New test.
* gcc.target/arm/mve/pr108177-6.c: New test.
* gcc.target/arm/mve/pr108177-7-run.c: New test.
* gcc.target/arm/mve/pr108177-7.c: New test.
* gcc.target/arm/mve/pr108177-8-run.c: New test.
* gcc.target/arm/mve/pr108177-8.c: New test.
* gcc.target/arm/mve/pr108177-9-run.c: New test.
* gcc.target/arm/mve/pr108177-9.c: New test.
* gcc.target/arm/mve/pr108177-main.x: New test include.
* gcc.target/arm/mve/pr108177.x: New test include.
31 files changed:
gcc/config/arm/mve.md
gcc/testsuite/gcc.target/arm/mve/pr108177-1-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-10-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-10.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-11-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-11.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-12-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-12.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-13-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-13.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-14-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-14.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-2-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-3-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-4-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-5-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-6-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-7-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-8-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-9-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-9.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177-main.x [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/pr108177.x [new file with mode: 0644]