diff options
author | Evan Cheng <evan.cheng@apple.com> | 2010-04-01 06:04:33 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2010-04-01 06:04:33 +0000 |
commit | 43cd9e3845fa82b616848ec7e3fbe231406b89ab (patch) | |
tree | 6a17065834b755a3fa0802ff5a81237621c5ac1f /llvm/test/CodeGen/X86/byval7.ll | |
parent | 738b0f9ec753895807664e75d15ae1e3e7d58cb4 (diff) | |
download | bcm5719-llvm-43cd9e3845fa82b616848ec7e3fbe231406b89ab.tar.gz bcm5719-llvm-43cd9e3845fa82b616848ec7e3fbe231406b89ab.zip |
Fix sdisel memcpy, memset, memmove lowering:
1. Makes it possible to lower with floating point loads and stores.
2. Avoid unaligned loads / stores unless it's fast.
3. Fix some memcpy lowering logic bug related to when to optimize a
load from constant string into a constant.
4. Adjust x86 memcpy lowering threshold to make it more sane.
5. Fix x86 target hook so it uses vector and floating point memory
ops more effectively.
rdar://7774704
llvm-svn: 100090
Diffstat (limited to 'llvm/test/CodeGen/X86/byval7.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/byval7.ll | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/X86/byval7.ll b/llvm/test/CodeGen/X86/byval7.ll index 0da93bad04e..686ed9c74dd 100644 --- a/llvm/test/CodeGen/X86/byval7.ll +++ b/llvm/test/CodeGen/X86/byval7.ll @@ -1,10 +1,17 @@ -; RUN: llc < %s -march=x86 -mcpu=yonah | egrep {add|lea} | grep 16 +; RUN: llc < %s -march=x86 -mcpu=yonah | FileCheck %s %struct.S = type { <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, + <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64> } define i32 @main() nounwind { entry: +; CHECK: main: +; CHECK: movl $1, (%esp) +; CHECK: leal 16(%esp), %edi +; CHECK: movl $36, %ecx +; CHECK: leal 160(%esp), %esi +; CHECK: rep;movsl %s = alloca %struct.S ; <%struct.S*> [#uses=2] %tmp15 = getelementptr %struct.S* %s, i32 0, i32 0 ; <<2 x i64>*> [#uses=1] store <2 x i64> < i64 8589934595, i64 1 >, <2 x i64>* %tmp15, align 16 |