Source code
Revision control
Copy as Markdown
Other Tools
let module = new WebAssembly.Module(wasmTextToBinary(`(module
(func (export "rshift") (param $x i64) (result i64)
local.get $x
local.get $x
i64.shr_s
))`));
let instance = new WebAssembly.Instance(module);
let {rshift} = instance.exports;
for (let i = 0; i < 100; ++i) {
// Input which uses both int64 register pairs on 32-bit systems.
let x = BigInt(i) + 0x1_0000_0000n;
assertEq(rshift(x), BigInt.asIntN(64, x >> (x & 63n)));
}