diff options
| author | Jingyue Wu <jingyue@google.com> | 2015-06-24 19:28:40 +0000 |
|---|---|---|
| committer | Jingyue Wu <jingyue@google.com> | 2015-06-24 19:28:40 +0000 |
| commit | 6f72aed3ecda230814e1701d96f235d9a04b84af (patch) | |
| tree | fc22625fadcab9e965646a900c63c4f02fd3d664 /llvm/test/Transforms/LoopIdiom | |
| parent | c1ffd69c3424dc8cdb3a24f18cd3e4901ce918aa (diff) | |
| download | bcm5719-llvm-6f72aed3ecda230814e1701d96f235d9a04b84af.tar.gz bcm5719-llvm-6f72aed3ecda230814e1701d96f235d9a04b84af.zip | |
[LSR] canonicalize Prod*(1<<C) to Prod<<C
Summary:
Because LSR happens at a late stage where mul of a power of 2 is
typically canonicalized to shl, this canonicalization emits code that
can be better CSE'ed.
Test Plan:
Transforms/LoopStrengthReduce/shl.ll shows how this change makes GVN more
powerful. Fixes some existing tests due to this change.
Reviewers: sanjoy, majnemer, atrick
Reviewed By: majnemer, atrick
Subscribers: majnemer, llvm-commits
Differential Revision: http://reviews.llvm.org/D10448
llvm-svn: 240573
Diffstat (limited to 'llvm/test/Transforms/LoopIdiom')
| -rw-r--r-- | llvm/test/Transforms/LoopIdiom/basic.ll | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/test/Transforms/LoopIdiom/basic.ll b/llvm/test/Transforms/LoopIdiom/basic.ll index a8a2c8efa38..c633ae95d16 100644 --- a/llvm/test/Transforms/LoopIdiom/basic.ll +++ b/llvm/test/Transforms/LoopIdiom/basic.ll @@ -69,7 +69,7 @@ for.end: ; preds = %for.body, %entry ret void ; CHECK-LABEL: @test2( ; CHECK: br i1 %cmp10, -; CHECK: %0 = mul i64 %Size, 4 +; CHECK: %0 = shl i64 %Size, 2 ; CHECK: call void @llvm.memset.p0i8.i64(i8* %Base1, i8 1, i64 %0, i32 4, i1 false) ; CHECK-NOT: store } |

