Implement the SIMD "v128.any_true" instruction, remove "iNxM.any_true"
Categories
(Core :: JavaScript: WebAssembly, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox87 | --- | fixed |
People
(Reporter: lth, Assigned: lth)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
See https://github.com/WebAssembly/simd/issues/416. It was observed that the any_true instructions only test for any-bit-set, so we only need one. The opcode will be that of i8x16.any_true. A bunch of programs will have to be recompiled.
[ x ] Test cases
[ x ] Wast
[ x ] Baseline (x86, x64, arm64)
[ x ] Ion (x86, x64)
Ion arm64 will land separately, with all the other Ion arm64 SIMD support (bug 1687629).
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 1•3 years ago
|
||
Assignee | ||
Comment 2•3 years ago
|
||
Even though we remove text support for iNxM.any_true and add text support for v128.any_true, the opcode for v128.any_true remains the same as i8x16.any_true. We should retain (for now) support for i16x8.any_true and i32x4.any_true at the binary level for temporary backward compatibility, until all tools are updated.
Assignee | ||
Comment 3•3 years ago
|
||
The committee agreed to change i8x16.any_true to v128.any_true and to remove i16x8.any_true
and i32x4.any_true, because they all generate the same machine code on all platforms:
they test whether any bit is set in the vector.
We rename I8x16AnyTrue internally to V128AnyTrue, but make no other substantial changes.
We keep I16x8AnyTrue and I32x4AnyTrue for now for backward compatibility, these will
be removed when we do the final opcode renumbering before release.
Text support and test case changes already landed as part of bug 1687654.
Depends on D99761
Pushed by lhansen@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/f98cc2c02f85 Fix iNxM.any_true. r=jseward
Comment 5•3 years ago
|
||
bugherder |
Description
•