summaryrefslogtreecommitdiff
path: root/test/Transforms/LoopIdiom
diff options
context:
space:
mode:
authorJingyue Wu <jingyue@google.com>2015-06-24 19:28:40 +0000
committerJingyue Wu <jingyue@google.com>2015-06-24 19:28:40 +0000
commit5d59315f13ff8bb19eda0c378964b95676680f0f (patch)
tree52a0a9d13fc8772e79413ec93fbd4df04ba245c4 /test/Transforms/LoopIdiom
parent1171dada028c4a79953b9ecc6a726b1f8abd78d3 (diff)
[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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240573 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/LoopIdiom')
-rw-r--r--test/Transforms/LoopIdiom/basic.ll2
1 files changed, 1 insertions, 1 deletions
diff --git a/test/Transforms/LoopIdiom/basic.ll b/test/Transforms/LoopIdiom/basic.ll
index a8a2c8efa38..c633ae95d16 100644
--- a/test/Transforms/LoopIdiom/basic.ll
+++ b/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
}