summaryrefslogtreecommitdiff
path: root/test/example/c-api-kitchen-sink.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/example/c-api-kitchen-sink.c')
-rw-r--r--test/example/c-api-kitchen-sink.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c
index cf2ce6c04..244ecc9b5 100644
--- a/test/example/c-api-kitchen-sink.c
+++ b/test/example/c-api-kitchen-sink.c
@@ -121,6 +121,31 @@ BinaryenExpressionRef makeSIMDShift(BinaryenModuleRef module, BinaryenOp op) {
return BinaryenSIMDShift(module, op, vec, makeInt32(module, 1));
}
+BinaryenExpressionRef makeMemoryInit(BinaryenModuleRef module) {
+ BinaryenExpressionRef dest = makeInt32(module, 1024);
+ BinaryenExpressionRef offset = makeInt32(module, 0);
+ BinaryenExpressionRef size = makeInt32(module, 12);
+ return BinaryenMemoryInit(module, 0, dest, offset, size);
+};
+
+BinaryenExpressionRef makeDataDrop(BinaryenModuleRef module) {
+ return BinaryenDataDrop(module, 0);
+};
+
+BinaryenExpressionRef makeMemoryCopy(BinaryenModuleRef module) {
+ BinaryenExpressionRef dest = makeInt32(module, 2048);
+ BinaryenExpressionRef source = makeInt32(module, 1024);
+ BinaryenExpressionRef size = makeInt32(module, 12);
+ return BinaryenMemoryCopy(module, dest, source, size);
+};
+
+BinaryenExpressionRef makeMemoryFill(BinaryenModuleRef module) {
+ BinaryenExpressionRef dest = makeInt32(module, 0);
+ BinaryenExpressionRef value = makeInt32(module, 42);
+ BinaryenExpressionRef size = makeInt32(module, 1024);
+ return BinaryenMemoryFill(module, dest, value, size);
+};
+
// tests
void test_types() {
@@ -387,6 +412,11 @@ void test_core() {
// Other SIMD
makeSIMDShuffle(module),
makeSIMDBitselect(module),
+ // Bulk memory
+ makeMemoryInit(module),
+ makeDataDrop(module),
+ makeMemoryCopy(module),
+ makeMemoryFill(module),
// All the rest
BinaryenBlock(module, NULL, NULL, 0, -1), // block with no name and no type
BinaryenIf(module, temp1, temp2, temp3),