gnu/gcc/0ca2ba3b88532aefff95036205fa0e6db0abe718 RISC-V: Example dependent filter for RVV widen overlap.
This is an example of how a dependent filter would look like.
In RVV sources of widening instructions cannot overlap the
destination except in the highest-numbered part (for EMUL>1).
The dependent filter attached to the constraint "Wtt" is
implemented in riscv_widen_operand_ok.
gcc/ChangeLog:
* config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS):
Add widen overlap dependent constraint.
* config/riscv/riscv-protos.h (riscv_widen_overlap_ok): Declare.
* config/riscv/riscv.cc (riscv_widen_operand_ok): New function.
* config/riscv/vector.md: Use new constraint.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/pr112431-4.c: Un-xfail.
* gcc.target/riscv/rvv/base/pr112431-5.c: Ditto.
* gcc.target/riscv/rvv/base/pr112431-6.c: Ditto.
7 files changed