diff options
author | Dan Gohman <dan433584@gmail.com> | 2016-01-27 01:37:52 +0000 |
---|---|---|
committer | Dan Gohman <dan433584@gmail.com> | 2016-01-27 01:37:52 +0000 |
commit | ece881d5182873dd780b53387047fb8300cd5c7d (patch) | |
tree | abfd8ec3bb13d6fa23034245edf134c4140e11ac /llvm/test/CodeGen/WebAssembly/mem-intrinsics.ll | |
parent | a3518ad0b7d42cce67e07e7a45206335866c37b8 (diff) | |
download | bcm5719-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.ll | 31 |
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 +} |