aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@sifive.com>2023-02-23 09:16:54 -0800
committerCraig Topper <craig.topper@sifive.com>2023-02-23 09:16:54 -0800
commit2fc5a5117c613b580be321187555976e4e60872e (patch)
treed932d6b7fcc8ff209a7c42a0f427fa9688b9c80c /llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
parente028c9742897cc14c47c426893fb40f571f6fad6 (diff)
downloadllvm-2fc5a5117c613b580be321187555976e4e60872e.zip
llvm-2fc5a5117c613b580be321187555976e4e60872e.tar.gz
llvm-2fc5a5117c613b580be321187555976e4e60872e.tar.bz2
[LegalizeTypes][RISCV] Add a special case to ExpandIntRes_UADDSUBO for (uaddo X, 1).
On targets that lack ADDCARRY support we split a wide uaddo into an ADD and a SETCC that both need to be split. For (uaddo X, 1) we can observe that when the add overflows the result will be 0. We can emit (seteq (or Lo, Hi), 0) to detect this. This improves D142071. There is an alternative here. We could use either ~(lo(X) & hi(X)) == 0 or (lo(X) & hi(X)) == -1 before the addition. That would be closer to the code before D142071. Reviewed By: liaolucy Differential Revision: https://reviews.llvm.org/D144614
Diffstat (limited to 'llvm/lib/Analysis/ModuleSummaryAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions