aboutsummaryrefslogtreecommitdiffstats
path: root/test/Transforms
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2008-11-30 08:32:11 +0000
committerEli Friedman <eli.friedman@gmail.com>2008-11-30 08:32:11 +0000
commitd83ae7d698248958e157aeeaca9fb114bf1e2b60 (patch)
tree938cb496ea57576a5a424b316c3d0bfac2380478 /test/Transforms
parent91db5271d2f09e4b56e3658277417408ffa70cbe (diff)
downloadexternal_llvm-d83ae7d698248958e157aeeaca9fb114bf1e2b60.zip
external_llvm-d83ae7d698248958e157aeeaca9fb114bf1e2b60.tar.gz
external_llvm-d83ae7d698248958e157aeeaca9fb114bf1e2b60.tar.bz2
Optimize memmove and memset into the LLVM builtins. Note that these
only show up in code from front-ends besides llvm-gcc, like clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60287 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms')
-rw-r--r--test/Transforms/SimplifyLibCalls/memmove.ll12
-rw-r--r--test/Transforms/SimplifyLibCalls/memset.ll12
2 files changed, 24 insertions, 0 deletions
diff --git a/test/Transforms/SimplifyLibCalls/memmove.ll b/test/Transforms/SimplifyLibCalls/memmove.ll
new file mode 100644
index 0000000..d960960
--- /dev/null
+++ b/test/Transforms/SimplifyLibCalls/memmove.ll
@@ -0,0 +1,12 @@
+; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep {llvm.memmove}
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
+target triple = "i686-pc-linux-gnu"
+
+define i8* @test(i8* %a, i8* %b, i32 %x) {
+entry:
+ %call = call i8* @memmove(i8* %a, i8* %b, i32 %x )
+ ret i8* %call
+}
+
+declare i8* @memmove(i8*,i8*,i32)
+
diff --git a/test/Transforms/SimplifyLibCalls/memset.ll b/test/Transforms/SimplifyLibCalls/memset.ll
new file mode 100644
index 0000000..0c10915
--- /dev/null
+++ b/test/Transforms/SimplifyLibCalls/memset.ll
@@ -0,0 +1,12 @@
+; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep {llvm.memset}
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
+target triple = "i686-pc-linux-gnu"
+
+define i8* @test(i8* %a, i32 %b, i32 %x) {
+entry:
+ %call = call i8* @memset(i8* %a, i32 %b, i32 %x )
+ ret i8* %call
+}
+
+declare i8* @memset(i8*,i32,i32)
+