Implement wasm SIMD for x64 baseline
Categories
(Core :: JavaScript: WebAssembly, task, P3)
Tracking
()
People
(Reporter: bbouvier, Assigned: lth)
References
(Blocks 1 open bug)
Details
Attachments
(11 files, 3 obsolete files)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
149.44 KB,
application/gzip
|
Details | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
Current spec lives there at the moment: https://github.com/webassembly/simd
Assignee | ||
Comment 1•6 years ago
|
||
These are all the non-compilation, non-verification, non-parsing bits:
type and constant definitions, opcode dispatch, classification, etc.
There's a fair amount of fallout from adding a new V128 type but
within reason.
For the time being, use MIRType::Int8x16 as the MIRType for all SIMD
values. This only shows up in a couple of places in this patch,
notably where we convert Scalar to MIRType, and we can change it
easily.
Depends on D22295
Updated•6 years ago
|
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 3•5 years ago
|
||
Updated•5 years ago
|
Updated•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Assignee | ||
Comment 9•5 years ago
|
||
Taking a dependency on compiler gating, since SIMD will be not-ion and we'll need a way to fall back from Ion to baseline if we go straight to Ion compilation.
Updated•5 years ago
|
Updated•5 years ago
|
Assignee | ||
Comment 11•5 years ago
|
||
Rebased; dead i64<->f64 opcodes removed; new integer abs opcodes added (as stubs).
Assignee | ||
Comment 12•5 years ago
|
||
Rebased; updated to new gating logic; working on remaining operations.
Updated•5 years ago
|
Assignee | ||
Comment 13•5 years ago
•
|
||
All operations have been implemented. In the process of cleaning up the porting APIs, and adding missing run-time support. The work has been re-scoped: x64 only, SSE4.1 required, no AVX support required or expected.
Assignee | ||
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Assignee | ||
Comment 16•5 years ago
|
||
JS versions of the test cases in the SIMD spec, translated using the script at https://github.com/lars-t-hansen/run_wast.
Assignee | ||
Comment 17•5 years ago
|
||
Patches updated this morning with misc fixes.
Current state of patches:
- all currently spec'd instructions are implemented
- code passes all our own tests and almost all the non-NaN-generating SIMD spec tests
- there is a known (as-yet undiagnosed) bug in i8x16.shr_s, uncovered by the SIMD spec tests
- the NaN-generating spec tests are not failing per se, they're just currently excluded by the test translator until equality testing can be got right
Also:
- There is some remaining work around proper #ifdeffery (to make sure we don't pay for SIMD when it's not enabled, esp on x86-32) and some related vetting of register saving / restoring, this will affect mainly part 1.
- We may want to import the spec tests in their non-canonically translated state as a new part 8, since the canonical import is not currently possible (no interpreter support in the SIMD repo).
For other things, see the SIMD worksheet (google doc).
Assignee | ||
Comment 19•4 years ago
|
||
Patches rebased and updated with review comments, only some detailed cleanup remaining.
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 21•4 years ago
|
||
Patch set is complete, testing is finished, try run is green. Will rebase daily until after the freeze and then land.
Comment 22•4 years ago
|
||
Pushed by lhansen@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b48f9d171983 wasm simd, part 1: feature gating and related prep. r=rhunt https://hg.mozilla.org/integration/autoland/rev/dede8f837d1d wasm simd, part 2: the v128 type. r=rhunt https://hg.mozilla.org/integration/autoland/rev/6d61cc7132d6 wasm simd, part 3: opcodes and validator. r=rhunt https://hg.mozilla.org/integration/autoland/rev/fbe341549522 wasm simd, part 4: test cases for the validator. r=rhunt https://hg.mozilla.org/integration/autoland/rev/5e3c6893e69f wasm simd, part 5a: extract porting interfaces and x86/x64 impls. r=bbouvier https://hg.mozilla.org/integration/autoland/rev/deb81ad6bfc2 wasm simd, part 5b: new porting interfaces and x86/x64 assembler work. r=bbouvier https://hg.mozilla.org/integration/autoland/rev/587a9c21cec1 wasm simd, part 6: baseline compiler support. r=jseward https://hg.mozilla.org/integration/autoland/rev/a95567deaf98 wasm simd, part 7: functional test cases. r=rhunt https://hg.mozilla.org/integration/autoland/rev/0f3e454359c9 wasm simd, part 8: spec test cases. r=rhunt https://hg.mozilla.org/integration/autoland/rev/643507d65bdd wasm simd, part 9: shell switches. r=bbouvier
Comment 23•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/b48f9d171983
https://hg.mozilla.org/mozilla-central/rev/dede8f837d1d
https://hg.mozilla.org/mozilla-central/rev/6d61cc7132d6
https://hg.mozilla.org/mozilla-central/rev/fbe341549522
https://hg.mozilla.org/mozilla-central/rev/5e3c6893e69f
https://hg.mozilla.org/mozilla-central/rev/deb81ad6bfc2
https://hg.mozilla.org/mozilla-central/rev/587a9c21cec1
https://hg.mozilla.org/mozilla-central/rev/a95567deaf98
https://hg.mozilla.org/mozilla-central/rev/0f3e454359c9
https://hg.mozilla.org/mozilla-central/rev/643507d65bdd
Updated•4 years ago
|
Description
•