On 7/29/2026 1:18 AM, Jin Ma wrote:
Enable the following macro-fusion pairs for xt-c9501fdvt:

   RISCV_FUSE_LUI_ADDI
   RISCV_FUSE_AUIPC_ADDI
   RISCV_FUSE_SUB_SEQZ
   RISCV_FUSE_ADD_ANDI
   RISCV_FUSE_ADD_LD
   RISCV_FUSE_ADD_ST
   RISCV_FUSE_ANDI_ADD
   RISCV_FUSE_LOGIC_LOGIC
   RISCV_FUSE_SLLI_SRLI
   RISCV_FUSE_SRLI_ADD
   RISCV_FUSE_PREINDEX_LD
   RISCV_FUSE_PREINDEX_ST
   RISCV_FUSE_POSTINDEX_LD
   RISCV_FUSE_POSTINDEX_ST
   RISCV_FUSE_LDST_PAIR_INC
   RISCV_FUSE_LDST_PAIR_DEC

Leave RISCV_FUSE_FLDFST_PAIR_INC and RISCV_FUSE_FLDFST_PAIR_DEC
disabled for xt-c9501fdvt; they will be enabled for future CPUs.

gcc/ChangeLog:

        * config/riscv/riscv.cc (xt_c9501_tune_info): Enable supported
        fusion pairs.

gcc/testsuite/ChangeLog:

        * gcc.target/riscv/fusion-add-addi-andi.c: Remove the fusion xfail.
        * gcc.target/riscv/fusion-add-ldst.c: Likewise.
        * gcc.target/riscv/fusion-addw-adduw-ldst.c: Likewise.
        * gcc.target/riscv/fusion-andi-add-addi.c: Likewise.
        * gcc.target/riscv/fusion-andi-adduw-rtl.c: Likewise.
        * gcc.target/riscv/fusion-arith-rtl-shapes.c: Likewise.
        * gcc.target/riscv/fusion-c950-lui-auipc.c: Likewise.
        * gcc.target/riscv/fusion-fp-zero-rtl.c: Likewise.
        * gcc.target/riscv/fusion-ldst-pair-dec.c: Likewise.
        * gcc.target/riscv/fusion-ldst-pair-inc.c: Likewise.
        * gcc.target/riscv/fusion-ldst-pair-store-base.c: Likewise.
        * gcc.target/riscv/fusion-load-store-type-rtl.c: Likewise.
        * gcc.target/riscv/fusion-logic-logic-direction-rtl.c: Likewise.
        * gcc.target/riscv/fusion-logic-logic-zbkb.c: Likewise.
        * gcc.target/riscv/fusion-logic-logic.c: Likewise.
        * gcc.target/riscv/fusion-memory-rtl-shapes.c: Likewise.
        * gcc.target/riscv/fusion-memory-subreg-address-rtl.c: Likewise.
        * gcc.target/riscv/fusion-mv-li-andi-rtl.c: Likewise.
        * gcc.target/riscv/fusion-mv-self-rtl.c: Likewise.
        * gcc.target/riscv/fusion-postindex-ldst.c: Likewise.
        * gcc.target/riscv/fusion-postindex-unsigned-load-rtl.c: Likewise.
        * gcc.target/riscv/fusion-preindex-ldst.c: Likewise.
        * gcc.target/riscv/fusion-rv32-fp-losum-rtl.c: Likewise.
        * gcc.target/riscv/fusion-rv32-subreg-positive-rtl.c: Likewise.
        * gcc.target/riscv/fusion-slli-srli.c: Likewise.
        * gcc.target/riscv/fusion-special-positive-rtl.c: Likewise.
        * gcc.target/riscv/fusion-srli-add.c: Likewise.
        * gcc.target/riscv/fusion-sub-seqz-snez.c: Likewise.
        * gcc.target/riscv/fusion-subreg-address-rtl.c: Likewise.
        * gcc.target/riscv/fusion-word-positive-rtl.c: Likewise.
So obviously this depends on prior patches and those may still change somewhat as we go through review.  So I'll ACK knowing that you may need to make minor adjustments as the prior patches get reviewed and any review comments are integrated.  So it's OK the trunk once the prerequisites are on the trunk and minor adjustments to deal with any review adjustments are pre-approved and do not require another review round.

Jeff

Reply via email to