diff options
author | LiaoChunyu <chunyu@iscas.ac.cn> | 2022-11-17 17:15:27 +0800 |
---|---|---|
committer | LiaoChunyu <chunyu@iscas.ac.cn> | 2022-11-25 20:18:30 +0800 |
commit | aa14f002d57b8b3cf30f07c782d2d93f358e51fd (patch) | |
tree | 303d5121eee9617f342211e6bd3640432acaf8fc /llvm/lib/Support/Threading.cpp | |
parent | 9d5e82e75c61df1a79e337770c1d54d83b33d96a (diff) | |
download | llvm-aa14f002d57b8b3cf30f07c782d2d93f358e51fd.zip llvm-aa14f002d57b8b3cf30f07c782d2d93f358e51fd.tar.gz llvm-aa14f002d57b8b3cf30f07c782d2d93f358e51fd.tar.bz2 |
[RISCV] Branchless lowering for (select (x < 0), TrueConstant, FalseConstant) and (select (x >= 0), TrueConstant, FalseConstant)
This patch reduces the number of unpredictable branches
(select (x < 0), y, z) -> x >> (XLEN - 1) & (y - z) + z
(select (x >= 0), y, z) -> x >> (XLEN - 1) & (z - y) + y
Reviewed By: craig.topper, reames
Differential Revision: https://reviews.llvm.org/D137949
Diffstat (limited to 'llvm/lib/Support/Threading.cpp')
0 files changed, 0 insertions, 0 deletions