diff options
author | Nadav Rotem <nrotem@apple.com> | 2012-09-29 06:33:25 +0000 |
---|---|---|
committer | Nadav Rotem <nrotem@apple.com> | 2012-09-29 06:33:25 +0000 |
commit | 72f7b0811efef58080a909abbc14d74c40c0867d (patch) | |
tree | b6382d9eb88191bc00bb83d3db24d7030fc0b9c2 /test/CodeGen/X86/loop-strength-reduce-3.ll | |
parent | aa64c182805702c3d3e5d414adaee10b39e9eef5 (diff) | |
download | llvm-72f7b0811efef58080a909abbc14d74c40c0867d.tar.gz llvm-72f7b0811efef58080a909abbc14d74c40c0867d.tar.bz2 llvm-72f7b0811efef58080a909abbc14d74c40c0867d.tar.xz |
A DAGCombine optimization for merging consecutive stores. This optimization is not profitable in many cases
because moden processos can store multiple values in parallel, and preparing the consecutive store requires
some work. We only handle these cases:
1. Consecutive stores where the values and consecutive loads. For example:
int a = p->a;
int b = p->b;
q->a = a;
q->b = b;
2. Consecutive stores where the values are constants. Foe example:
q->a = 4;
q->b = 5;
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164885 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/loop-strength-reduce-3.ll')
-rw-r--r-- | test/CodeGen/X86/loop-strength-reduce-3.ll | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/test/CodeGen/X86/loop-strength-reduce-3.ll b/test/CodeGen/X86/loop-strength-reduce-3.ll index b1c9fb9c07..e2d77f2a6f 100644 --- a/test/CodeGen/X86/loop-strength-reduce-3.ll +++ b/test/CodeGen/X86/loop-strength-reduce-3.ll @@ -1,8 +1,7 @@ -; RUN: llc < %s -mtriple=i386-apple-darwin -relocation-model=dynamic-no-pic | FileCheck %s +; RUN: llc < %s -mtriple=i386-apple-darwin -mcpu=corei7 -relocation-model=dynamic-no-pic | FileCheck %s ; CHECK: align -; CHECK: movl $4, -4(%ecx) -; CHECK: movl $5, (%ecx) +; CHECK: movlpd %xmm0, -4(%ecx) ; CHECK: addl $4, %ecx ; CHECK: decl %eax ; CHECK: jne |