Hi,

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.

Regression tested on arm-none-eabi for armv8.1-m.main+mve.fp. 

OK for trunk?

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.

Attachment: pr108177.patch
Description: pr108177.patch

Reply via email to