summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2018-01-23 17:02:02 +0000
committerDan Gohman <dan433584@gmail.com>2018-01-23 17:02:02 +0000
commit5464941a6a5ad85f8d041bf95181980b9eb45498 (patch)
tree9bd9bf12919e32b39b06c060fc8776a273bda47a /llvm/test/CodeGen
parent8e2fc4f3f836a082b0599a6bd74ada26e6c44b7a (diff)
downloadbcm5719-llvm-5464941a6a5ad85f8d041bf95181980b9eb45498.tar.gz
bcm5719-llvm-5464941a6a5ad85f8d041bf95181980b9eb45498.zip
[WebAssembly] Add mem.* intrinsics.
The grow_memory and current_memory instructions are expected to be officially renamed to mem.grow and mem.size. Introduce new intrinsics with the new names. These new names aren't yet official, so for now, use them at your own risk. Also, take this opportunity to add arguments for the currently unused immediate field in those instructions. llvm-svn: 323222
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/WebAssembly/memory-addr32.ll21
1 files changed, 21 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/WebAssembly/memory-addr32.ll b/llvm/test/CodeGen/WebAssembly/memory-addr32.ll
index ad599b1b3f1..2d1f0f5ddc5 100644
--- a/llvm/test/CodeGen/WebAssembly/memory-addr32.ll
+++ b/llvm/test/CodeGen/WebAssembly/memory-addr32.ll
@@ -5,9 +5,30 @@
target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
target triple = "wasm32-unknown-unknown-wasm"
+declare i32 @llvm.wasm.mem.size.i32(i32) nounwind readonly
+declare i32 @llvm.wasm.mem.grow.i32(i32, i32) nounwind
declare i32 @llvm.wasm.current.memory.i32() nounwind readonly
declare i32 @llvm.wasm.grow.memory.i32(i32) nounwind
+; CHECK-LABEL: mem_size:
+; CHECK-NEXT: .result i32{{$}}
+; CHECK-NEXT: mem.size $push0=, 0{{$}}
+; CHECK-NEXT: return $pop0{{$}}
+define i32 @mem_size() {
+ %a = call i32 @llvm.wasm.mem.size.i32(i32 0)
+ ret i32 %a
+}
+
+; CHECK-LABEL: mem_grow:
+; CHECK-NEXT: .param i32{{$}}
+; CHECK-NEXT: .result i32{{$}}
+; CHECK: mem.grow $push0=, 0, $0{{$}}
+; CHECK-NEXT: return $pop0{{$}}
+define i32 @mem_grow(i32 %n) {
+ %a = call i32 @llvm.wasm.mem.grow.i32(i32 0, i32 %n)
+ ret i32 %a
+}
+
; CHECK-LABEL: current_memory:
; CHECK-NEXT: .result i32{{$}}
; CHECK-NEXT: current_memory $push0={{$}}
OpenPOWER on IntegriCloud