diff options
author | Chris Lattner <sabre@nondot.org> | 2004-11-13 19:50:12 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-11-13 19:50:12 +0000 |
commit | 50af16a97b3983c224a48ae4369d7e9facf8174e (patch) | |
tree | 65c919b6cf46be906fc0f562734b82995a9a5497 /lib/Transforms/Utils/CodeExtractor.cpp | |
parent | 706759e8c99ee78bec9fc90c9ac7efd668b284d3 (diff) |
Simplify handling of shifts to be the same as we do for adds. Add support
for (X * C1) + (X * C2) (where * can be mul or shl), allowing us to fold:
Y+Y+Y+Y+Y+Y+Y+Y
into
%tmp.8 = shl long %Y, ubyte 3 ; <long> [#uses=1]
instead of
%tmp.4 = shl long %Y, ubyte 2 ; <long> [#uses=1]
%tmp.12 = shl long %Y, ubyte 2 ; <long> [#uses=1]
%tmp.8 = add long %tmp.4, %tmp.12 ; <long> [#uses=1]
This implements add.ll:test25
Also add support for (X*C1)-(X*C2) -> X*(C1-C2), implementing sub.ll:test18
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17704 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/CodeExtractor.cpp')
0 files changed, 0 insertions, 0 deletions