summaryrefslogtreecommitdiff
path: root/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
commit832e4943598d821687cec79f512803c1ca03cff7 (patch)
tree4b0bedc00698b5b31c90a8332edeeae9044e3186 /test/CodeGen/X86/fast-isel-x86-64.ll
parentff009ad1e1152ac6941ea4a85910f125868bd3de (diff)
downloadllvm-832e4943598d821687cec79f512803c1ca03cff7.tar.gz
llvm-832e4943598d821687cec79f512803c1ca03cff7.tar.bz2
llvm-832e4943598d821687cec79f512803c1ca03cff7.tar.xz
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% git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129755 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/fast-isel-x86-64.ll')
-rw-r--r--test/CodeGen/X86/fast-isel-x86-64.ll11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/CodeGen/X86/fast-isel-x86-64.ll b/test/CodeGen/X86/fast-isel-x86-64.ll
index 508af25772..1770e73223 100644
--- a/test/CodeGen/X86/fast-isel-x86-64.ll
+++ b/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
+}