alexcrichton opened issue #13988:
This test:
(module (memory (export "shared") 1 1 shared) (func (export "eq32") (result i32) (i32.atomic.store (i32.const 0) (i32.const 1)) (memory.atomic.wait32 (i32.const 0) (i32.const 1) (i64.const 0))) (func (export "ne32") (result i32) (i32.atomic.store (i32.const 0) (i32.const 1)) (memory.atomic.wait32 (i32.const 0) (i32.const 0x01000000) (i64.const 0))) (func (export "eq64") (result i32) (i64.atomic.store (i32.const 8) (i64.const 1)) (memory.atomic.wait64 (i32.const 8) (i64.const 1) (i64.const 0))) (func (export "ne64") (result i32) (i64.atomic.store (i32.const 8) (i64.const 1)) (memory.atomic.wait64 (i32.const 8) (i64.const 0x0100000000000000) (i64.const 0))) ) (assert_return (invoke "eq32") (i32.const 2)) (assert_return (invoke "ne32") (i32.const 1)) (assert_return (invoke "eq64") (i32.const 2)) (assert_return (invoke "ne64") (i32.const 1))passes on little-endian hosts:
$ cargo run wast atomic_wait_endianness.wast Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.15s Running `/home/alex/code/wasmtime2/target/debug/wasmtime wast atomic_wait_endianness.wast`and fails on big-endian hosts:
$ cargo run --target s390x-unknown-linux-gnu wast atomic_wait_endianness.wast Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.20s Running `qemu-s390x -L /usr/s390x-linux-gnu -E LD_LIBRARY_PATH=/usr/s390x-linux-gnu/lib -E WASMTIME_TEST_NO_HOG_MEMORY=1 /home/alex/code/wasmtime2/target/s390x-unknown-linux-gnu/debug/wasmtime wast atomic_wait_endianness.wast` Error: failed to run script file 'atomic_wait_endianness.wast' Caused by: 0: failed directive on atomic_wait_endianness.wast:21 1: result 0 didn't match 2: expected 2 / 0x0000000000000002 actual 1 / 0x0000000000000001
alexcrichton added the bug label to Issue #13988.
alexcrichton added the wasm-proposal:threads label to Issue #13988.
Last updated: Jul 29 2026 at 05:03 UTC