diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /js/src/jit-test/tests/wasm/simd/ion-bug1688262.js | |
parent | Initial commit. (diff) | |
download | firefox-esr-upstream.tar.xz firefox-esr-upstream.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/jit-test/tests/wasm/simd/ion-bug1688262.js')
-rw-r--r-- | js/src/jit-test/tests/wasm/simd/ion-bug1688262.js | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/simd/ion-bug1688262.js b/js/src/jit-test/tests/wasm/simd/ion-bug1688262.js new file mode 100644 index 0000000000..ebb2f72864 --- /dev/null +++ b/js/src/jit-test/tests/wasm/simd/ion-bug1688262.js @@ -0,0 +1,22 @@ +// |jit-test| skip-if: !wasmSimdEnabled() + +// Shuffle pattern incorrectly recognized as a rotate due to a missing guard in +// the optimizer. + +let ins = wasmEvalText(` + (module + (memory (export "mem") 1) + (func (export "test") + (v128.store (i32.const 0) + (i8x16.shuffle 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 + (v128.load (i32.const 16)) + (v128.const i32x4 0 0 0 0))))) +`); + +let mem = new Int8Array(ins.exports.mem.buffer); +let input = [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]; +let output = [10, 11, 12, 13, 14, 15, 16, 17, 18, 10, 11, 12, 13, 14, 15, 16]; +mem.set(input, 16); +ins.exports.test(); +let result = Array.from(mem.subarray(0, 16)); +assertDeepEq(output, result); |