summaryrefslogtreecommitdiff
path: root/test/Transforms/DeadStoreElimination
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-11-30 00:43:16 +0000
committerChris Lattner <sabre@nondot.org>2010-11-30 00:43:16 +0000
commit13815d9d3eec3d0ef2fc2f8a09e8ca8a9fa2654a (patch)
treeb0215137792fcc4e92a136ba2c22577649c851ec /test/Transforms/DeadStoreElimination
parent647fea57fd56b7c0e24f98e01f2a70fd265cc461 (diff)
downloadllvm-13815d9d3eec3d0ef2fc2f8a09e8ca8a9fa2654a.tar.gz
llvm-13815d9d3eec3d0ef2fc2f8a09e8ca8a9fa2654a.tar.bz2
llvm-13815d9d3eec3d0ef2fc2f8a09e8ca8a9fa2654a.tar.xz
enhance basicaa to return "Mod" for a memcpy call when the
queried location doesn't overlap the source, and add a testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120370 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/DeadStoreElimination')
-rw-r--r--test/Transforms/DeadStoreElimination/simple.ll15
1 files changed, 13 insertions, 2 deletions
diff --git a/test/Transforms/DeadStoreElimination/simple.ll b/test/Transforms/DeadStoreElimination/simple.ll
index c426c0a08b..3237ae2d4f 100644
--- a/test/Transforms/DeadStoreElimination/simple.ll
+++ b/test/Transforms/DeadStoreElimination/simple.ll
@@ -55,16 +55,27 @@ define void @test5(i32* %Q) {
; CHECK-NEXT: ret void
}
-declare void @llvm.memset.i32(i8*, i8, i32, i32)
+declare void @llvm.memset.i64(i8*, i8, i64, i32)
+declare void @llvm.memcpy.i64(i8*, i8*, i64, i32)
; Should delete store of 10 even though memset is a may-store to P (P and Q may
; alias).
define void @test6(i32 *%p, i8 *%q) {
store i32 10, i32* %p, align 4 ;; dead.
- call void @llvm.memset.i32(i8* %q, i8 42, i32 900, i32 1)
+ call void @llvm.memset.i64(i8* %q, i8 42, i64 900, i32 1)
store i32 30, i32* %p, align 4
ret void
; CHECK: @test6
; CHECK-NEXT: call void @llvm.memset
}
+; Should delete store of 10 even though memcpy is a may-store to P (P and Q may
+; alias).
+define void @test7(i32 *%p, i8 *%q, i8* noalias %r) {
+ store i32 10, i32* %p, align 4 ;; dead.
+ call void @llvm.memcpy.i64(i8* %q, i8* %r, i64 900, i32 1)
+ store i32 30, i32* %p, align 4
+ ret void
+; CHECK: @test7
+; CHECK-NEXT: call void @llvm.memcpy
+}