diff options
author | Chris Lattner <sabre@nondot.org> | 2011-04-19 05:52:03 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2011-04-19 05:52:03 +0000 |
commit | 91328b317bc66a948cd4066e72c0250acefa1639 (patch) | |
tree | 22eba152bf66d4a506ec33cb664f35213bf446a4 /llvm/test/CodeGen/X86/fast-isel-x86-64.ll | |
parent | 34a08c23443f9bb39195de56130f8eb07963387b (diff) | |
download | bcm5719-llvm-91328b317bc66a948cd4066e72c0250acefa1639.tar.gz bcm5719-llvm-91328b317bc66a948cd4066e72c0250acefa1639.zip |
Implement support for x86 fastisel of small fixed-sized memcpys, which are generated
en-mass for C++ PODs. On my c++ test file, this cuts the fast isel rejects by 10x
and shrinks the generated .s file by 5%
llvm-svn: 129755
Diffstat (limited to 'llvm/test/CodeGen/X86/fast-isel-x86-64.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/fast-isel-x86-64.ll | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/fast-isel-x86-64.ll b/llvm/test/CodeGen/X86/fast-isel-x86-64.ll index 508af25772c..1770e732230 100644 --- a/llvm/test/CodeGen/X86/fast-isel-x86-64.ll +++ b/llvm/test/CodeGen/X86/fast-isel-x86-64.ll @@ -170,3 +170,14 @@ entry: ; CHECK: callq } +declare void @llvm.memcpy.p0i8.p0i8.i64(i8*, i8*, i64, i32, i1) + +; rdar://9289488 - fast-isel shouldn't bail out on llvm.memcpy +define void @test15(i8* %a, i8* %b) nounwind { + call void @llvm.memcpy.p0i8.p0i8.i64(i8* %a, i8* %b, i64 4, i32 4, i1 false) + ret void +; CHECK: test15: +; CHECK-NEXT: movl (%rsi), %eax +; CHECK-NEXT: movl %eax, (%rdi) +; CHECK-NEXT: ret +} |