Re: [PATCH v4 5/5] RISC-V: Enable macro-fusion pairs f or xt-c9501fdvt

"Jin Ma" <[email protected]> Thu, 06 Aug 2026 23:11:49 +0800
Newsgroups gmane.comp.gcc.patches
Message-ID <[email protected]>
> 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

Understood.  I will update this patch to match the final versions of
the prerequisite patches and commit it after they are on trunk.  Thank
you for the review and pre-approval.

Thanks,
Jin