[llvm-branch-commits] [clang] [libcxx] [flang] [llvm] [libc] [compiler-rt] [RISCV] Support select optimization (PR #80124)

Wang Pengcheng via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Sat Feb 3 22:59:36 PST 2024


wangpc-pp wrote:

> JFYI, I don't find the AArch64 data particularly convincing for RISCV. The magnitude of the change even on AArch64 is small, and could easily be swung one direction or the other by differences in implementation between the backends.

Yeah! The result will differ for different targets/CPUs. One RISCV data for SPEC 2006 (which is not universal I think) on an OoO RISCV CPU, options: `-march=rv64gc_zba_zbb_zicond -O3`:
```
400.perlbench    0.538%
401.bzip2        0.018%
403.gcc          0.105%
429.mcf          1.028%
445.gobmk        -0.221%
456.hmmer        1.582%
458.sjeng        -0.026%
462.libquantum   -0.090%
464.h264ref      0.905%
471.omnetpp      -0.776%
473.astar        0.205%
```
The geomean is: 0.295%.
The result can be better with PGO I think (haven't tried it). Some related discussions: https://discourse.llvm.org/t/rfc-cmov-vs-branch-optimization.
So I think we can be just like AArch64, make it a tune feature and processors can add it if needed.

https://github.com/llvm/llvm-project/pull/80124


More information about the llvm-branch-commits mailing list