diff options
author | Chris Lattner <sabre@nondot.org> | 2010-03-25 05:58:19 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-03-25 05:58:19 +0000 |
commit | 219d77430b3495091205249c1d5be51014616475 (patch) | |
tree | db60bb971cffc5113354f107995a09b10b232d47 /test/Transforms/GVN | |
parent | c388ace6f9012c503630eb633e3977e0fc42bb00 (diff) | |
download | llvm-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.ll | 12 |
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 +} |