Re: [PATCH v4 5/5] RISC-V: Enable macro-fusion pairs for xt-c9501fdvt
Jeffrey Law <[email protected]> Wed, 5 Aug 2026 17:38:59 -0600
| 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