[PATCH] D154937: [InstCombine] Generalize foldAndOrOfICmpEqZeroAndICmp
Dhruv Chawla via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 11 03:05:39 PDT 2023
0xdc03 created this revision.
0xdc03 added a reviewer: nikic.
Herald added subscribers: StephenFan, hiraditya.
Herald added a project: All.
0xdc03 requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
This patch generalizes the fold implemented by foldAndOrOfICmpEqZeroAndICmp,
which are:
(icmp eq X, 0) | (icmp ult Other, X) -> (icmp ule Other, X-1)
(icmp ne X, 0) & (icmp uge Other, X) -> (icmp ugt Other, X-1)
to the following:
(icmp eq X, C) | (icmp ult Other, (X - C)) -> (icmp ule Other, (X - (C + 1)))
(icmp ne X, C) & (icmp uge Other, (X - C)) -> (icmp ugt Other, (X - (C + 1)))
The function foldAndOrOfICmpEqZeroAndICmp is also renamed to
foldAndOrOfICmpEqConstantAndICmp to reflect the changes.
Proofs: https://alive2.llvm.org/ce/z/yXGv6q
Fixes #63749.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D154937
Files:
llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
llvm/test/Transforms/InstCombine/and-or-icmp-const-icmp.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D154937.538991.patch
Type: text/x-patch
Size: 22970 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230711/2a26d263/attachment.bin>
More information about the llvm-commits
mailing list