On 11/11/26 11:01 AM, Jiawei wrote:
Fold redundant count masks in inverted bit extraction using define_split.
Across the baseline and Zbs-only builds, C/C++ selftests and RV32/RV64
QEMU checks passed: 48 correctness runs and 8 benchmark binaries.
Performance was measured in 16 gem5 Minor/O3 runs.
For the RV64 microkernel, gem5 instruction counts decreased 11.11%;
cycles decreased 9.99% on Minor and 14.27% on O3. K1 reductions were
11.12% in instructions and 14.31% in cycles, from 15 paired measurements.
Changes in v2:
Use define_split, as suggested by Jeff.
gcc/ChangeLog:
* config/riscv/bitmanip.md: Add a splitter for masked inverted
bit extraction.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/zbs-bext-3.c: New test.
LGTM and Sashiko clean. OK for the trunk.
Thanks,
Jeff