aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDan Gohman <sunfish@mozilla.com>2014-03-05 19:01:25 -0800
committerDan Gohman <sunfish@mozilla.com>2014-03-05 19:01:25 -0800
commited9def75db9dbefd6b5a1f877d74fef8cc5fc720 (patch)
tree6fc2bf3b2ccf65c806939d9214614589f9980e19 /test
parent0dfc8b303cac8e56b1dec466627462d24dbacb78 (diff)
Don't emit redirects for llvm.memcpy.p0i8.p0i8.i32 and friends.
We never reference these intrinsics by name, so we don't need redirects for them.
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/JS/mem-intrinsics.ll14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/CodeGen/JS/mem-intrinsics.ll b/test/CodeGen/JS/mem-intrinsics.ll
index 52b13f3336..995d70d535 100644
--- a/test/CodeGen/JS/mem-intrinsics.ll
+++ b/test/CodeGen/JS/mem-intrinsics.ll
@@ -16,6 +16,13 @@ define void @test_loop_memcpy(i8* %d, i8* %s) {
ret void
}
+; CHECK: test_call_memcpy
+; CHECK: memcpy(($d|0),($s|0),65536)
+define void @test_call_memcpy(i8* %d, i8* %s) {
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %d, i8* %s, i32 65536, i32 4, i1 false)
+ ret void
+}
+
; CHECK: test_unrolled_memset
; CHECK: HEAP32[$d+0>>2]=0|0;HEAP32[$d+4>>2]=0|0;HEAP32[$d+8>>2]=0|0;HEAP32[$d+12>>2]=0|0;HEAP32[$d+16>>2]=0|0;HEAP32[$d+20>>2]=0|0;HEAP32[$d+24>>2]=0|0;HEAP32[$d+28>>2]=0|0;
define void @test_unrolled_memset(i8* %d, i8* %s) {
@@ -30,6 +37,13 @@ define void @test_loop_memset(i8* %d, i8* %s) {
ret void
}
+; CHECK: test_call_memset
+; CHECK: memset(($d|0),0,65536)
+define void @test_call_memset(i8* %d, i8* %s) {
+ call void @llvm.memset.p0i8.i32(i8* %d, i8 0, i32 65536, i32 4, i1 false)
+ ret void
+}
+
; Also, don't emit declarations for the intrinsic functions.
; CHECK-NOT: p0i8