summaryrefslogtreecommitdiff
path: root/test/Transforms/GVN
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-03-25 05:58:19 +0000
committerChris Lattner <sabre@nondot.org>2010-03-25 05:58:19 +0000
commit219d77430b3495091205249c1d5be51014616475 (patch)
treedb60bb971cffc5113354f107995a09b10b232d47 /test/Transforms/GVN
parentc388ace6f9012c503630eb633e3977e0fc42bb00 (diff)
downloadllvm-219d77430b3495091205249c1d5be51014616475.tar.gz
llvm-219d77430b3495091205249c1d5be51014616475.tar.bz2
llvm-219d77430b3495091205249c1d5be51014616475.tar.xz
fix PR6642, GVN forwarding from memset to load of the base of the memset.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99488 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/GVN')
-rw-r--r--test/Transforms/GVN/rle.ll12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/Transforms/GVN/rle.ll b/test/Transforms/GVN/rle.ll
index d419fd2424..d656c1a5fc 100644
--- a/test/Transforms/GVN/rle.ll
+++ b/test/Transforms/GVN/rle.ll
@@ -531,4 +531,16 @@ out:
}
+; PR6642
+define i32 @memset_to_load() nounwind readnone {
+entry:
+ %x = alloca [256 x i32], align 4 ; <[256 x i32]*> [#uses=2]
+ %tmp = bitcast [256 x i32]* %x to i8* ; <i8*> [#uses=1]
+ call void @llvm.memset.i64(i8* %tmp, i8 0, i64 1024, i32 4)
+ %arraydecay = getelementptr inbounds [256 x i32]* %x, i32 0, i32 0 ; <i32*>
+ %tmp1 = load i32* %arraydecay ; <i32> [#uses=1]
+ ret i32 %tmp1
+; CHECK: @memset_to_load
+; CHECK: ret i32 0
+}