Promote accepted SIMD instructions
Categories
(Core :: JavaScript: WebAssembly, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox83 | --- | fixed |
People
(Reporter: lth, Assigned: lth)
References
Details
Attachments
(4 files)
(Copied from https://bugzilla.mozilla.org/show_bug.cgi?id=1664131#c2)
Floating-point round instructions have been accepted and merged:
https://github.com/WebAssembly/simd/pull/232#issuecomment-691229681
Pseudo-min and pseudo-max instructions have been accepted and merged:
https://github.com/WebAssembly/simd/pull/122#issuecomment-691198332
The non-adding version of the dot product have been accepted and are about to be merged:
https://github.com/WebAssembly/simd/pull/127#issuecomment-703994455
For all of those instructions it will be important to check the opcode assignments in emscripten/LLVM to make sure we're in agreement with them.
We should rename them internally and remove the experimental-SIMD guard. Test cases should be promoted from wasm/simd/experimental.js into ad-hack.js and should be rewritten to use standard syntax (not binary form).
Assignee | ||
Comment 1•4 years ago
|
||
Background: https://github.com/WebAssembly/simd/pull/232
For all the rounding SIMD instructions:
- remove the internal 'Experimental' opcode suffix in the C++ code
- remove the guard on experimental Wasm instructions in all the C++ decoders
- move the test cases from simd/experimental.js to simd/ad-hack.js
I have checked that current V8 and wasm-tools use the same opcode
mappings. V8 in turn guarantees the correct mapping for LLVM and
binaryen.
Drive-by bug fix: the test predicate for f64 square root was wrong, it
would round its argument to float. This did not matter for the test
inputs we had but started to matter when I added more difficult inputs
for testing rounding.
Assignee | ||
Comment 2•4 years ago
|
||
Background: https://github.com/WebAssembly/simd/pull/122
For all the pseudo-min/max SIMD instructions:
- remove the internal 'Experimental' opcode suffix in the C++ code
- remove the guard on experimental Wasm instructions in all the C++ decoders
- move the test cases from simd/experimental.js to simd/ad-hack.js
I have checked that current V8 and wasm-tools use the same opcode
mappings. V8 in turn guarantees the correct mapping for LLVM and
binaryen.
Depends on D92927
Assignee | ||
Comment 3•4 years ago
|
||
Background: https://github.com/WebAssembly/simd/pull/127
For the widening dot product instruction:
- remove the internal 'Experimental' opcode suffix in the C++ code
- remove the guard on the instruction in all the C++ decoders
- move the test cases from simd/experimental.js to simd/ad-hack.js
I have checked that current V8 and wasm-tools use the same opcode
mapping. V8 in turn guarantees the correct mapping for LLVM and
binaryen.
Depends on D92928
Assignee | ||
Comment 4•4 years ago
|
||
Pushed by lhansen@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/7659e8a95510 Pull in latest wast version. r=jseward https://hg.mozilla.org/integration/autoland/rev/d25f2b090cf4 Promote fp rounding wasm SIMD instructions to accepted status. r=jseward https://hg.mozilla.org/integration/autoland/rev/39bdfa950bc1 Promote pseudo-min/max wasm SIMD instructions to accepted status. r=jseward https://hg.mozilla.org/integration/autoland/rev/b8c9121fdb10 Promote widening dot product wasm SIMD instruction to accepted status. r=jseward
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 6•4 years ago
|
||
Actually, let's open new bugs if more instructions need to be promoted.
Comment 7•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/7659e8a95510
https://hg.mozilla.org/mozilla-central/rev/d25f2b090cf4
https://hg.mozilla.org/mozilla-central/rev/39bdfa950bc1
https://hg.mozilla.org/mozilla-central/rev/b8c9121fdb10
Description
•