diff options
| author | Amaury Sechet <deadalnix@gmail.com> | 2016-01-06 19:47:24 +0000 |
|---|---|---|
| committer | Amaury Sechet <deadalnix@gmail.com> | 2016-01-06 19:47:24 +0000 |
| commit | 3235c082531cc25e086f208c3be0dc0c2a4f0944 (patch) | |
| tree | 75beb3a2a72ad2b175d5d9b151d9794c484f6e7a /llvm/test | |
| parent | 5fc9f6999d3b29f461b416e06fa09a69e10e9553 (diff) | |
| download | bcm5719-llvm-3235c082531cc25e086f208c3be0dc0c2a4f0944.tar.gz bcm5719-llvm-3235c082531cc25e086f208c3be0dc0c2a4f0944.zip | |
Promote aggregate store to memset when possible
Summary: As per title. This will allow the optimizer to pick up on it.
Reviewers: craig.topper, spatel, dexonsmith, Prazek, chandlerc, joker.eph, majnemer
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D15923
llvm-svn: 256969
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll b/llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll index 75a1a8f96e2..3c3b22bb335 100644 --- a/llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll +++ b/llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll @@ -3,7 +3,7 @@ target datalayout = "e-i64:64-f80:128-n8:16:32:64" target triple = "x86_64-unknown-linux-gnu" -%S = type { i8*, i32 } +%S = type { i8*, i8, i32 } define void @copy(%S* %src, %S* %dst) { ; CHECK-LABEL: copy @@ -37,8 +37,10 @@ define void @noaliasdst(%S* %src, %S* noalias %dst) { define void @destroysrc(%S* %src, %S* %dst) { ; CHECK-LABEL: destroysrc -; CHECK-NOT: call -; CHECK: ret void +; CHECK: load %S, %S* %src +; CHECK: call void @llvm.memset.p0i8.i64 +; CHECK-NEXT: store %S %1, %S* %dst +; CHECK-NEXT: ret void %1 = load %S, %S* %src store %S zeroinitializer, %S* %src store %S %1, %S* %dst @@ -49,7 +51,7 @@ define void @destroynoaliassrc(%S* noalias %src, %S* %dst) { ; CHECK-LABEL: destroynoaliassrc ; CHECK-NOT: load ; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64 -; CHECK-NEXT: store %S zeroinitializer, %S* %src +; CHECK-NEXT: call void @llvm.memset.p0i8.i64 ; CHECK-NEXT: ret void %1 = load %S, %S* %src store %S zeroinitializer, %S* %src |

