summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/WebAssembly/mem-intrinsics.ll
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2016-01-27 01:37:52 +0000
committerDan Gohman <dan433584@gmail.com>2016-01-27 01:37:52 +0000
commitece881d5182873dd780b53387047fb8300cd5c7d (patch)
treeabfd8ec3bb13d6fa23034245edf134c4140e11ac /llvm/test/CodeGen/WebAssembly/mem-intrinsics.ll
parenta3518ad0b7d42cce67e07e7a45206335866c37b8 (diff)
downloadbcm5719-llvm-ece881d5182873dd780b53387047fb8300cd5c7d.tar.gz
bcm5719-llvm-ece881d5182873dd780b53387047fb8300cd5c7d.zip
[WebAssembly] Add a test for the mem-intrinsic code in WebAssemblyPeephole.cpp
llvm-svn: 258895
Diffstat (limited to 'llvm/test/CodeGen/WebAssembly/mem-intrinsics.ll')
-rw-r--r--llvm/test/CodeGen/WebAssembly/mem-intrinsics.ll31
1 files changed, 31 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/WebAssembly/mem-intrinsics.ll b/llvm/test/CodeGen/WebAssembly/mem-intrinsics.ll
index 669f6ecd8be..4284e8e9de3 100644
--- a/llvm/test/CodeGen/WebAssembly/mem-intrinsics.ll
+++ b/llvm/test/CodeGen/WebAssembly/mem-intrinsics.ll
@@ -74,3 +74,34 @@ entry:
call void @llvm.memset.p0i8.i32(i8* %1, i8 256, i32 1024, i32 16, i1 false)
ret void
}
+
+; If the result value of memset doesn't get stackified, it should be marked
+; $discard.
+
+; CHECK-LABEL: discard_result:
+; CHECK: i32.call $discard=, memset@FUNCTION, $0, $1, $2
+declare i8* @def()
+define i8* @discard_result(i8* %arg, i8 %arg1, i32 %arg2, i32 %arg3, i32 %arg4) {
+bb:
+ %tmp = icmp eq i32 %arg3, 0
+ br i1 %tmp, label %bb5, label %bb9
+
+bb5:
+ %tmp6 = icmp eq i32 %arg4, 0
+ br i1 %tmp6, label %bb7, label %bb8
+
+bb7:
+ call void @llvm.memset.p0i8.i32(i8* %arg, i8 %arg1, i32 %arg2, i32 1, i1 false)
+ br label %bb11
+
+bb8:
+ br label %bb11
+
+bb9:
+ %tmp10 = call i8* @def()
+ br label %bb11
+
+bb11:
+ %tmp12 = phi i8* [ %arg, %bb7 ], [ %arg, %bb8 ], [ %tmp10, %bb9 ]
+ ret i8* %tmp12
+}
OpenPOWER on IntegriCloud