summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/fast-isel-x86-64.ll
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2011-04-19 05:52:03 +0000
committerChris Lattner <sabre@nondot.org>2011-04-19 05:52:03 +0000
commit91328b317bc66a948cd4066e72c0250acefa1639 (patch)
tree22eba152bf66d4a506ec33cb664f35213bf446a4 /llvm/test/CodeGen/X86/fast-isel-x86-64.ll
parent34a08c23443f9bb39195de56130f8eb07963387b (diff)
downloadbcm5719-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.ll11
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
+}
OpenPOWER on IntegriCloud