diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2021-07-13 13:44:01 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-13 20:44:01 +0000 |
commit | aafd1bf1be09d6368127f9878ab1779cc258f526 (patch) | |
tree | 85f9565e7dcacff3d67bc45545fa906c31f19db1 /test | |
parent | b217effd56b644c08f6ce4b86533c133b564af6d (diff) | |
download | binaryen-aafd1bf1be09d6368127f9878ab1779cc258f526.tar.gz binaryen-aafd1bf1be09d6368127f9878ab1779cc258f526.tar.bz2 binaryen-aafd1bf1be09d6368127f9878ab1779cc258f526.zip |
Implement interpretation of i64x2.bitmask (#3982)
Like a few other SIMD operations, this i64x2.bitmask had not been implemented in
the interpreter yet. Unlike the others, i64x2.bitmask has type i32 rather than
type v128, so Precompute was not skipping it, leading to a crash, as in
https://github.com/emscripten-core/emscripten/issues/14629. Fix the problem by
implementing i64x2.bitmask in the interpreter.
Diffstat (limited to 'test')
-rw-r--r-- | test/spec/simd.wast | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/test/spec/simd.wast b/test/spec/simd.wast index 4876a032d..0eda03fc5 100644 --- a/test/spec/simd.wast +++ b/test/spec/simd.wast @@ -824,7 +824,8 @@ ;; i64x2 arithmetic (assert_return (invoke "i64x2.neg" (v128.const i64x2 0x8000000000000000 42)) (v128.const i64x2 0x8000000000000000 -42)) -;; TODO: test i64x2.bitmask +(assert_return (invoke "i64x2.bitmask" (v128.const i64x2 0x8000000000000000 42)) (i32.const 1)) +(assert_return (invoke "i64x2.bitmask" (v128.const i64x2 1 -1)) (i32.const 2)) (assert_return (invoke "i64x2.shl" (v128.const i64x2 1 0x8000000000000000) (i32.const 1)) (v128.const i64x2 2 0)) (assert_return (invoke "i64x2.shl" (v128.const i64x2 1 0x8000000000000000) (i32.const 64)) (v128.const i64x2 1 0x8000000000000000)) (assert_return (invoke "i64x2.shr_s" (v128.const i64x2 1 0x8000000000000000) (i32.const 1)) (v128.const i64x2 0 0xc000000000000000)) |