summaryrefslogtreecommitdiff
path: root/js/src/jit-test/tests/SIMD/store.js
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2023-09-18 16:57:09 +0200
committerMoonchild <moonchild@palemoon.org>2023-09-18 16:57:09 +0200
commit7003ea7dc4e6164fc2451e4255da0cc1a7b4d22f (patch)
tree3a098fa1b2914b1c7cd6eea39fc0fc53ce3b9fa1 /js/src/jit-test/tests/SIMD/store.js
parent8635073418a294520172bf5b05d886b35e4bcdc3 (diff)
downloaduxp-7003ea7dc4e6164fc2451e4255da0cc1a7b4d22f.tar.gz
Issue #2307 - Part 3: Remove SIMD.js support
This gets rid of the SIMD-specific scalar types in JS. This considerably deviates from Mozilla's work because of our divergent path.
Diffstat (limited to 'js/src/jit-test/tests/SIMD/store.js')
-rw-r--r--js/src/jit-test/tests/SIMD/store.js143
1 files changed, 0 insertions, 143 deletions
diff --git a/js/src/jit-test/tests/SIMD/store.js b/js/src/jit-test/tests/SIMD/store.js
deleted file mode 100644
index 8cfa354277..0000000000
--- a/js/src/jit-test/tests/SIMD/store.js
+++ /dev/null
@@ -1,143 +0,0 @@
-load(libdir + 'simd.js');
-
-setJitCompilerOption("ion.warmup.trigger", 40);
-
-function f() {
- var f32 = new Float32Array(16);
- for (var i = 0; i < 16; i++)
- f32[i] = i + 1;
-
- var f64 = new Float64Array(f32.buffer);
- var i32 = new Int32Array(f32.buffer);
- var u32 = new Uint32Array(f32.buffer);
- var i16 = new Int16Array(f32.buffer);
- var u16 = new Uint16Array(f32.buffer);
- var i8 = new Int8Array(f32.buffer);
- var u8 = new Uint8Array(f32.buffer);
-
- var f4 = SIMD.Float32x4(42, 43, 44, 45);
-
- function check(n) {
- assertEq(f32[0], 42);
- assertEq(f32[1], n > 1 ? 43 : 2);
- assertEq(f32[2], n > 2 ? 44 : 3);
- assertEq(f32[3], n > 3 ? 45 : 4);
-
- f32[0] = 1;
- f32[1] = 2;
- f32[2] = 3;
- f32[3] = 4;
- }
-
- function testStore() {
- SIMD.Float32x4.store(f64, 0, f4);
- check(4);
- SIMD.Float32x4.store(f32, 0, f4);
- check(4);
- SIMD.Float32x4.store(i32, 0, f4);
- check(4);
- SIMD.Float32x4.store(u32, 0, f4);
- check(4);
- SIMD.Float32x4.store(i16, 0, f4);
- check(4);
- SIMD.Float32x4.store(u16, 0, f4);
- check(4);
- SIMD.Float32x4.store(i8, 0, f4);
- check(4);
- SIMD.Float32x4.store(u8, 0, f4);
- check(4);
- }
-
- function testStore1() {
- SIMD.Float32x4.store1(f64, 0, f4);
- check(1);
- SIMD.Float32x4.store1(f32, 0, f4);
- check(1);
- SIMD.Float32x4.store1(i32, 0, f4);
- check(1);
- SIMD.Float32x4.store1(u32, 0, f4);
- check(1);
- SIMD.Float32x4.store1(i16, 0, f4);
- check(1);
- SIMD.Float32x4.store1(u16, 0, f4);
- check(1);
- SIMD.Float32x4.store1(i8, 0, f4);
- check(1);
- SIMD.Float32x4.store1(u8, 0, f4);
- check(1);
- }
-
- function testStore2() {
- SIMD.Float32x4.store2(f64, 0, f4);
- check(2);
- SIMD.Float32x4.store2(f32, 0, f4);
- check(2);
- SIMD.Float32x4.store2(i32, 0, f4);
- check(2);
- SIMD.Float32x4.store2(u32, 0, f4);
- check(2);
- SIMD.Float32x4.store2(i16, 0, f4);
- check(2);
- SIMD.Float32x4.store2(u16, 0, f4);
- check(2);
- SIMD.Float32x4.store2(i8, 0, f4);
- check(2);
- SIMD.Float32x4.store2(u8, 0, f4);
- check(2);
- }
-
- function testStore3() {
- SIMD.Float32x4.store3(f64, 0, f4);
- check(3);
- SIMD.Float32x4.store3(f32, 0, f4);
- check(3);
- SIMD.Float32x4.store3(i32, 0, f4);
- check(3);
- SIMD.Float32x4.store3(u32, 0, f4);
- check(3);
- SIMD.Float32x4.store3(i16, 0, f4);
- check(3);
- SIMD.Float32x4.store3(u16, 0, f4);
- check(3);
- SIMD.Float32x4.store3(i8, 0, f4);
- check(3);
- SIMD.Float32x4.store3(u8, 0, f4);
- check(3);
- }
-
- for (var i = 0; i < 150; i++) {
- testStore();
- testStore1();
- testStore2();
- testStore3();
- }
-}
-
-f();
-
-function testBailout(uglyDuckling) {
- var f32 = new Float32Array(16);
- for (var i = 0; i < 16; i++)
- f32[i] = i + 1;
-
- var i8 = new Int8Array(f32.buffer);
-
- var f4 = SIMD.Float32x4(42, 43, 44, 45);
-
- for (var i = 0; i < 150; i++) {
- var caught = false;
- try {
- SIMD.Float32x4.store(i8, (i < 149) ? 0 : (16 << 2) - (4 << 2) + 1, f4);
- } catch (e) {
- print(e);
- assertEq(e instanceof RangeError, true);
- caught = true;
- }
- assertEq(i < 149 || caught, true);
- }
-}
-
-print('Testing range checks...');
-testBailout(-1);
-testBailout(-15);
-testBailout(12 * 4 + 1);