diff options
author | Daniel Wirtz <dcode@dcode.io> | 2021-05-25 04:37:21 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-25 04:37:21 +0200 |
commit | 994757a6747793effc8e4bdda13c47ab7337afb8 (patch) | |
tree | 668aac8f4a91e6d59188d05cd3e5e6054cc9e5ef /test/binaryen.js/expressions.js | |
parent | 24d71aa0146a6dacfce5d84a11c88195e66eee0a (diff) | |
download | binaryen-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.js | 62 |
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(); |