On 9/26/23 07:15, Juzhe-Zhong wrote:
The mem-to-mem insn pattern is splitted from reg-to-mem/mem-to-reg/reg-to-reg
causes ICE in RA since RA prefer they stay together.

Now, we split mem-to-mem as a pure pre-RA split pattern and only allow
define_insn match mem-to-mem VLS move in pre-RA stage (Forbid mem-to-mem move 
after RA).

Tested no difference. Committed.

        PR target/111566

gcc/ChangeLog:

        * config/riscv/vector.md (*mov<mode>_mem_to_mem):

gcc/testsuite/ChangeLog:

        * gcc.target/riscv/rvv/fortran/pr111566.f90: New test.
ChangeLog for the vector.md is missing.

In general we shouldn't be allowing mem->mem in most patterns since the hardware doesn't actually implement such instructions. I suspect that's the real problem here and that ultimately you're just papering over it.



Jeff

Reply via email to