diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /js/src/jit-test/tests/wasm/builtin-modules/i8vecmul.js | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/jit-test/tests/wasm/builtin-modules/i8vecmul.js')
-rw-r--r-- | js/src/jit-test/tests/wasm/builtin-modules/i8vecmul.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/builtin-modules/i8vecmul.js b/js/src/jit-test/tests/wasm/builtin-modules/i8vecmul.js new file mode 100644 index 0000000000..86336b5d33 --- /dev/null +++ b/js/src/jit-test/tests/wasm/builtin-modules/i8vecmul.js @@ -0,0 +1,39 @@ +let memory = new WebAssembly.Memory({initial: 1}); +let bytes = new Uint8Array(memory.buffer); + +let module = wasmBuiltinI8VecMul(); +let instance = new WebAssembly.Instance(module, { + "": {"memory": memory} +}); +let {i8vecmul} = instance.exports; + +// Test basic vector pairwise product +{ + // [0, 1, 2, 3] . [0, 2, 4, 6] = [0, 2, 8, 18] + for (let i = 0; i < 4; i++) { + bytes[i] = i; + bytes[4 + i] = i * 2; + } + i8vecmul( + /* dest */ 8, + /* src1 */ 0, + /* src2 */ 4, + /* len */ 4); + for (let i = 0; i < 4; i++) { + assertEq(bytes[8 + i], i * i * 2); + } +} + +// Test bounds checking +{ + assertErrorMessage(() => i8vecmul(PageSizeInBytes - 1, 0, 0, 2), WebAssembly.RuntimeError, /index out of bounds/); + assertErrorMessage(() => i8vecmul(0, PageSizeInBytes - 1, 0, 2), WebAssembly.RuntimeError, /index out of bounds/); + assertErrorMessage(() => i8vecmul(0, 0, PageSizeInBytes - 1, 2), WebAssembly.RuntimeError, /index out of bounds/); +} + +// Test linking of intrinsics +{ + let linkInstance = wasmEvalText(`(module + (import "" "i8vecmul" (func (param i32 i32 i32 i32))) + )`, {"": instance.exports}); +} |