The first patch is https://gcc.gnu.org/pipermail/gcc-patches/2022-November/607332.html. Accroding to Jeff's suggestion I added some conditions when reverse the rotate shift during RTL expansion and RTL optimization.
wangfeng (1): RISC-V: Optimze the reverse conditions of rotate shift gcc/config/riscv/bitmanip.md | 4 +- gcc/expmed.cc | 14 ++-- gcc/rtl.h | 1 + gcc/simplify-rtx.cc | 49 ++++++++++---- .../gcc.target/riscv/zbb-rol-ror-04.c | 52 +++++++++++++++ .../gcc.target/riscv/zbb-rol-ror-05.c | 24 +++++++ .../gcc.target/riscv/zbb-rol-ror-06.c | 36 +++++++++++ .../gcc.target/riscv/zbb-rol-ror-07.c | 64 +++++++++++++++++++ 8 files changed, 219 insertions(+), 25 deletions(-) create mode 100644 gcc/testsuite/gcc.target/riscv/zbb-rol-ror-04.c create mode 100644 gcc/testsuite/gcc.target/riscv/zbb-rol-ror-05.c create mode 100644 gcc/testsuite/gcc.target/riscv/zbb-rol-ror-06.c create mode 100644 gcc/testsuite/gcc.target/riscv/zbb-rol-ror-07.c -- 2.17.1