summaryrefslogtreecommitdiff
path: root/test/binaryen.js/expressions.js
diff options
context:
space:
mode:
authorDaniel Wirtz <dcode@dcode.io>2021-05-25 04:37:21 +0200
committerGitHub <noreply@github.com>2021-05-25 04:37:21 +0200
commit994757a6747793effc8e4bdda13c47ab7337afb8 (patch)
tree668aac8f4a91e6d59188d05cd3e5e6054cc9e5ef /test/binaryen.js/expressions.js
parent24d71aa0146a6dacfce5d84a11c88195e66eee0a (diff)
downloadbinaryen-994757a6747793effc8e4bdda13c47ab7337afb8.tar.gz
binaryen-994757a6747793effc8e4bdda13c47ab7337afb8.tar.bz2
binaryen-994757a6747793effc8e4bdda13c47ab7337afb8.zip
Add SIMDLoadStoreLane get/setters to C/JS API (#3904)
Diffstat (limited to 'test/binaryen.js/expressions.js')
-rw-r--r--test/binaryen.js/expressions.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/test/binaryen.js/expressions.js b/test/binaryen.js/expressions.js
index 6938bdd4c..ca45933a7 100644
--- a/test/binaryen.js/expressions.js
+++ b/test/binaryen.js/expressions.js
@@ -1207,6 +1207,68 @@ console.log("# SIMDLoad");
module.dispose();
})();
+console.log("# SIMDLoadStoreLane");
+(function testSIMDLoadStoreLane() {
+ const module = new binaryen.Module();
+
+ var op = binaryen.Operations.Load8LaneVec128;
+ var offset = 16;
+ var index = 1;
+ var align = 1;
+ var ptr = module.i32.const(1);
+ var vec = module.v128.const([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]);
+ const theSIMDLoadStoreLane = binaryen.SIMDLoadStoreLane(module.v128.load8_lane(offset, align, index, ptr, vec));
+ assert(theSIMDLoadStoreLane instanceof binaryen.SIMDLoadStoreLane);
+ assert(theSIMDLoadStoreLane instanceof binaryen.Expression);
+ assert(theSIMDLoadStoreLane.op === op);
+ assert(theSIMDLoadStoreLane.offset === offset);
+ assert(theSIMDLoadStoreLane.align === align);
+ assert(theSIMDLoadStoreLane.index === index);
+ assert(theSIMDLoadStoreLane.ptr === ptr);
+ assert(theSIMDLoadStoreLane.vec === vec);
+ assert(theSIMDLoadStoreLane.type === binaryen.v128);
+ assert(theSIMDLoadStoreLane.store === false);
+
+ theSIMDLoadStoreLane.op = op = binaryen.Operations.Load16LaneVec128;
+ assert(theSIMDLoadStoreLane.op === op);
+ theSIMDLoadStoreLane.offset = offset = 32;
+ assert(theSIMDLoadStoreLane.offset === offset);
+ theSIMDLoadStoreLane.align = align = 2;
+ assert(theSIMDLoadStoreLane.align === align);
+ theSIMDLoadStoreLane.index = index = 2;
+ assert(theSIMDLoadStoreLane.index === index);
+ theSIMDLoadStoreLane.ptr = ptr = module.i32.const(2);
+ assert(theSIMDLoadStoreLane.ptr === ptr);
+ theSIMDLoadStoreLane.vec = vec = module.v128.const([1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]);
+ assert(theSIMDLoadStoreLane.vec === vec);
+ theSIMDLoadStoreLane.type = binaryen.f64;
+ theSIMDLoadStoreLane.finalize();
+ assert(theSIMDLoadStoreLane.type === binaryen.v128);
+
+ console.log(theSIMDLoadStoreLane.toText());
+ assert(
+ theSIMDLoadStoreLane.toText()
+ ==
+ "(v128.load16_lane offset=32 2\n (i32.const 2)\n (v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101)\n)\n"
+ );
+
+ theSIMDLoadStoreLane.op = op = binaryen.Operations.Store16LaneVec128;
+ assert(theSIMDLoadStoreLane.op === op);
+ theSIMDLoadStoreLane.type = binaryen.f64;
+ assert(theSIMDLoadStoreLane.store === true);
+ theSIMDLoadStoreLane.finalize();
+ assert(theSIMDLoadStoreLane.type === binaryen.none);
+
+ console.log(theSIMDLoadStoreLane.toText());
+ assert(
+ theSIMDLoadStoreLane.toText()
+ ==
+ "(v128.store16_lane offset=32 2\n (i32.const 2)\n (v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101)\n)\n"
+ );
+
+ module.dispose();
+})();
+
console.log("# MemoryInit");
(function testMemoryInit() {
const module = new binaryen.Module();