diff options
author | Nirav Dave <niravd@google.com> | 2017-04-18 15:12:13 +0000 |
---|---|---|
committer | Nirav Dave <niravd@google.com> | 2017-04-18 15:12:13 +0000 |
commit | e50544cdf20ea615481958bdbe37314845c72df3 (patch) | |
tree | 2b063524db97b5e5ebc8285914ebd9b17f7710ee | |
parent | d942397e24f76850420d0f70e66bdbb79e49d300 (diff) | |
download | bcm5719-llvm-e50544cdf20ea615481958bdbe37314845c72df3.tar.gz bcm5719-llvm-e50544cdf20ea615481958bdbe37314845c72df3.zip |
Add base-index-based store merge test
llvm-svn: 300559
-rw-r--r-- | llvm/test/CodeGen/X86/merge_store.ll | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/merge_store.ll b/llvm/test/CodeGen/X86/merge_store.ll index 31c1f658242..dcb7bd010e5 100644 --- a/llvm/test/CodeGen/X86/merge_store.ll +++ b/llvm/test/CodeGen/X86/merge_store.ll @@ -28,3 +28,34 @@ entry: for.end: ret void } + + + +;; CHECK-LABEL: indexed-store-merge + +;; We should be able to merge the 4 consecutive stores. +;; FIXMECHECK: movl $0, 2(%rsi,%rdi) + +;; CHECK: movb $0, 2(%rsi,%rdi) +;; CHECK: movb $0, 3(%rsi,%rdi) +;; CHECK: movb $0, 4(%rsi,%rdi) +;; CHECK: movb $0, 5(%rsi,%rdi) +;; CHECK: movb $0, (%rsi) +define void @indexed-store-merge(i64 %p, i8* %v) { +entry: + %p2 = add nsw i64 %p, 2 + %v2 = getelementptr i8, i8* %v, i64 %p2 + store i8 0, i8* %v2, align 2 + %p3 = add nsw i64 %p, 3 + %v3 = getelementptr i8, i8* %v, i64 %p3 + store i8 0, i8* %v3, align 1 + %p4 = add nsw i64 %p, 4 + %v4 = getelementptr i8, i8* %v, i64 %p4 + store i8 0, i8* %v4, align 2 + %p5 = add nsw i64 %p, 5 + %v5 = getelementptr i8, i8* %v, i64 %p5 + store i8 0, i8* %v5, align 1 + %v0 = getelementptr i8, i8* %v, i64 0 + store i8 0, i8* %v0, align 2 + ret void +} |