please be noted the series depend on the zcmp switch that Jiawei posted https://gcc.gnu.org/pipermail/gcc-patches/2023-April/615289.html
The 1st patch is a follow up on Kito's V3 review. Others are new. Fei Gao (4): [RISC-V] support cm.push cm.pop cm.popret in zcmp [RISC-V] support cm.popretz in zcmp [RISC-V] resolve confilct between zcmp multi push/pop and shrink-wrap-separate [RISC-V] support cm.mva01s cm.mvsa01 in zcmp gcc/config/riscv/iterators.md | 15 + gcc/config/riscv/peephole.md | 28 + gcc/config/riscv/predicates.md | 107 ++ gcc/config/riscv/riscv-protos.h | 1 + gcc/config/riscv/riscv.cc | 445 ++++- gcc/config/riscv/riscv.h | 23 + gcc/config/riscv/riscv.md | 4 + gcc/config/riscv/zc.md | 1457 +++++++++++++++++ gcc/shrink-wrap.cc | 25 +- gcc/shrink-wrap.h | 1 + gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c | 21 + gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c | 251 +++ gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c | 251 +++ .../riscv/zcmp_shrink_wrap_separate.c | 97 ++ .../riscv/zcmp_shrink_wrap_separate2.c | 97 ++ .../gcc.target/riscv/zcmp_stack_alignment.c | 23 + 16 files changed, 2795 insertions(+), 51 deletions(-) create mode 100644 gcc/config/riscv/zc.md create mode 100644 gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c create mode 100644 gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c create mode 100644 gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate.c create mode 100644 gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate2.c create mode 100644 gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c -- 2.17.1