aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/COFFModuleDefinition.cpp
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2017-06-07 20:32:08 +0000
committerSanjay Patel <spatel@rotateright.com>2017-06-07 20:32:08 +0000
commit66f7fdb300f03644477a86f01669364b2ac7a610 (patch)
treec71b5884ae8c4da6b4eb5fecba256a78716a910a /llvm/lib/Object/COFFModuleDefinition.cpp
parentf3c003d1d3f6f35094aaa6c1c0e04229a9478ad9 (diff)
downloadllvm-66f7fdb300f03644477a86f01669364b2ac7a610.zip
llvm-66f7fdb300f03644477a86f01669364b2ac7a610.tar.gz
llvm-66f7fdb300f03644477a86f01669364b2ac7a610.tar.bz2
[InstCombine] fold lshr (sext X), C1 --> zext (lshr X, C2)
This was discussed in D33338. We have larger pattern-matching ending in a truncate that we can reduce or remove by handling these smaller patterns first. Further motivation is that narrower shift ops are easier for value tracking and zext is better than sext. http://rise4fun.com/Alive/rhh Name: boolshift %sext = sext i1 %x to i8 %r = lshr i8 %sext, 7 => %r = zext i1 %x to i8 Name: noboolshift %sext = sext i3 %x to i8 %r = lshr i8 %sext, 7 => %sh = lshr i3 %x, 2 %r = zext i3 %sh to i8 Differential Revision: https://reviews.llvm.org/D33879 llvm-svn: 304939
Diffstat (limited to 'llvm/lib/Object/COFFModuleDefinition.cpp')
0 files changed, 0 insertions, 0 deletions