diff options
author | Roman Lebedev <lebedev.ri@gmail.com> | 2019-11-05 11:49:12 +0300 |
---|---|---|
committer | Roman Lebedev <lebedev.ri@gmail.com> | 2019-11-05 12:41:26 +0300 |
commit | ccf1a5f4bbe680f20e26c29774d62bec6cb226da (patch) | |
tree | 6e583305c4f0a61240da8ceeb4bb7da34f3a6188 /lldb/source/Plugins/ScriptInterpreter/Python | |
parent | 0d47c7aba364962d14e4e25249d75da7bdf29b78 (diff) | |
download | bcm5719-llvm-ccf1a5f4bbe680f20e26c29774d62bec6cb226da.tar.gz bcm5719-llvm-ccf1a5f4bbe680f20e26c29774d62bec6cb226da.zip |
[InstCombine] dropRedundantMaskingOfLeftShiftInput(): truncation (PR42563)
Summary:
That fold keeps growing and growing :(
I think this may be one of the last pieces for it.
Since D67677/D67725, the fold knowns the general form
of the pattern - where some masking is needed:
https://rise4fun.com/Alive/F5R
https://rise4fun.com/Alive/gslRa
But there is one more huge piece missing - if you are extracting some bits,
it is not impossible that the origin is wider than the extraction,
i.e. there may be a truncation. And we don't deal with that yet.
But we can, and the generalization remains fully identical:
https://rise4fun.com/Alive/Uar
https://rise4fun.com/Alive/5SW
After a preparatory cleanup i think the diff looks rather clean.
One missing piece is that in some patterns (especially pat. b),
`-1` only needs to be `-1` in final type, but that is for later..
https://bugs.llvm.org/show_bug.cgi?id=42563
Reviewers: spatel, nikic
Reviewed By: spatel
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69125
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python')
0 files changed, 0 insertions, 0 deletions