aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandObjectMemory.cpp
diff options
context:
space:
mode:
authorPierre van Houtryve <pierre.vanhoutryve@amd.com>2023-01-06 08:33:49 -0500
committerPierre van Houtryve <pierre.vanhoutryve@amd.com>2023-01-10 03:37:23 -0500
commitb3fdb7b0cba49e7f24fd8207c677b0541045755c (patch)
tree248a6c8aa57fca54125afb406b8a58c4975e4fdb /lldb/source/Commands/CommandObjectMemory.cpp
parent4e78f88561af26c74b4b7fa2a017cd836a9f9bf4 (diff)
downloadllvm-b3fdb7b0cba49e7f24fd8207c677b0541045755c.zip
llvm-b3fdb7b0cba49e7f24fd8207c677b0541045755c.tar.gz
llvm-b3fdb7b0cba49e7f24fd8207c677b0541045755c.tar.bz2
[InstCombine] Combine lshr of add -> (a + b < a)
Tries to perform (lshr (add (zext X), (zext Y)), K) -> (icmp ult (add X, Y), X) where - The add's operands are zexts from a K-bits integer to a bigger type. - The add is only used by the shr, or by iK (or narrower) truncates. - The lshr type has more than 2 bits (other types are boolean math). - K > 1 This seems to be a pattern that just comes from OpenCL front-ends, so adding DAG/GISel combines doesn't seem to be worth the complexity. Original patch D107552 by @abinavpp - adapted to use (a + b < a) instead of uaddo following discussion on the review. See this issue https://github.com/RadeonOpenCompute/ROCm/issues/488 Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D138814
Diffstat (limited to 'lldb/source/Commands/CommandObjectMemory.cpp')
0 files changed, 0 insertions, 0 deletions