This patch series fixes several corner cases of RISC-V vector instruction's encoding constraints.
Building on Anton's original work, this v2 series specifically addresses: 1. Illegal overlaps between source registers 2. Corner cases in complex vector instructions like vrgatherei16 3. Handling of register overlaps in vector widening/narrowing instructions 4. Fix unmasked RVV instruction encoding (e.g. vcompress.vm) Anton Blanchard (2): target/riscv: rvv: Source vector registers cannot overlap mask register target/riscv: rvv: Add CHECK arg to GEN_OPFVF_WIDEN_TRANS Max Chou (10): target/riscv: Add vext_check_input_eew to check mismatched input EEWs encoding constraint target/riscv: rvv: Apply vext_check_input_eew to vector register gather instructions target/riscv: rvv: Apply vext_check_input_eew to OPIVI/OPIVX/OPFVF(vext_check_ss) instructions target/riscv: rvv: Apply vext_check_input_eew to OPIVV/OPFVV(vext_check_sss) instructions target/riscv: rvv: Apply vext_check_input_eew to vector slide instructions(OPIVI/OPIVX) target/riscv: rvv: Apply vext_check_input_eew to vector integer extension instructions(OPMVV) target/riscv: rvv: Apply vext_check_input_eew to vector widen instructions(OPMVV/OPMVX/etc.) target/riscv: rvv: Apply vext_check_input_eew to vector narrow instructions target/riscv: rvv: Apply vext_check_input_eew to vector indexed load/store instructions target/riscv: Fix the rvv reserved encoding of unmasked instructions target/riscv/insn32.decode | 18 +-- target/riscv/insn_trans/trans_rvbf16.c.inc | 9 +- target/riscv/insn_trans/trans_rvv.c.inc | 167 +++++++++++++++++---- 3 files changed, 154 insertions(+), 40 deletions(-) -- 2.43.0