Stream: git-wasmtime

Topic: wasmtime / PR #2327 CL/aarch64: implement the wasm SIMD `...


view this post on Zulip Wasmtime GitHub notifications bot (Oct 27 2020 at 14:06):

julian-seward1 opened PR #2327 from arm64-simd-dotmul to main:

This patch implements, for aarch64, the following wasm SIMD extensions

i32x4.dot_i16x8_s instruction
https://github.com/WebAssembly/simd/pull/127

It also updates dependencies as follows, in order that the new instruction can
be parsed, decoded, etc:

wat to 1.0.27
wast to 26.0.1
wasmparser to 0.65.0
wasmprinter to 0.2.12

The changes are straightforward:

There is no testcase in this commit, because that is a separate repo. The
implementation has been tested, nevertheless.

<!--

Please ensure that the following steps are all taken care of before submitting
the PR.

Please ensure all communication adheres to the code of conduct.
-->

view this post on Zulip Wasmtime GitHub notifications bot (Oct 27 2020 at 14:29):

julian-seward1 requested yurydelendik for a review on PR #2327.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 27 2020 at 17:49):

akirilov-arm submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 27 2020 at 17:49):

akirilov-arm submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 27 2020 at 17:49):

akirilov-arm created PR Review Comment:

Just a comment (no need to take action) - it's probably time to introduce an Inst variant for widening binary operations, so that the handling of the high and the low halves can be streamlined, for example, but we can do this separately. We previously took a shortcut here because Umlal was the only odd man out.

cc @jgouly

view this post on Zulip Wasmtime GitHub notifications bot (Oct 27 2020 at 17:49):

akirilov-arm created PR Review Comment:

How about panicking and printing the type otherwise?

view this post on Zulip Wasmtime GitHub notifications bot (Oct 27 2020 at 17:51):

julian-seward1 submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 27 2020 at 17:51):

julian-seward1 created PR Review Comment:

Ah, good point, I forgot. Silly me. Will fix.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 27 2020 at 17:52):

julian-seward1 submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 27 2020 at 17:52):

julian-seward1 created PR Review Comment:

Yeah, that sounds like a nice cleanup for a followup. I'm curious though .. when you say "handling of the high and the low halves can be streamlined", what did you have in mind, roughly?

view this post on Zulip Wasmtime GitHub notifications bot (Oct 27 2020 at 18:06):

akirilov-arm submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 27 2020 at 18:06):

akirilov-arm created PR Review Comment:

Have a look at Inst::VecMiscNarrow, which organizes things similarly, but for narrowing operations. TBH I don't have an exact code change in mind (as I said, neither Joey, nor I did anything yet because there was no real need), but having a separate boolean parameter to specify the half is probably going to be the way to do it.

I dislike the ISA's approach (via the vector shape), but it has constraints (encoding space) that are not applicable to the Inst enum. Anyway, the Inst variants don't necessarily map 1:1 to machine instructions, so we can use that to improve ergonomics (e.g. we support bitwise operations on arbitrary vector shapes, not just 8-bit elements).

view this post on Zulip Wasmtime GitHub notifications bot (Oct 27 2020 at 18:21):

akirilov-arm submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 27 2020 at 18:21):

akirilov-arm created PR Review Comment:

Actually even better would be returning Err(CodegenError::...) - @cfallin was previously encouraging this.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 27 2020 at 22:31):

cfallin submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 27 2020 at 22:31):

cfallin created PR Review Comment:

+1; best to propagate the error upward, since we have the types to do so.

view this post on Zulip Wasmtime GitHub notifications bot (Nov 02 2020 at 17:13):

yurydelendik submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Nov 03 2020 at 10:39):

julian-seward1 updated PR #2327 from arm64-simd-dotmul to main:

This patch implements, for aarch64, the following wasm SIMD extensions

i32x4.dot_i16x8_s instruction
https://github.com/WebAssembly/simd/pull/127

It also updates dependencies as follows, in order that the new instruction can
be parsed, decoded, etc:

wat to 1.0.27
wast to 26.0.1
wasmparser to 0.65.0
wasmprinter to 0.2.12

The changes are straightforward:

There is no testcase in this commit, because that is a separate repo. The
implementation has been tested, nevertheless.

<!--

Please ensure that the following steps are all taken care of before submitting
the PR.

Please ensure all communication adheres to the code of conduct.
-->

view this post on Zulip Wasmtime GitHub notifications bot (Nov 03 2020 at 11:37):

julian-seward1 updated PR #2327 from arm64-simd-dotmul to main:

This patch implements, for aarch64, the following wasm SIMD extensions

i32x4.dot_i16x8_s instruction
https://github.com/WebAssembly/simd/pull/127

It also updates dependencies as follows, in order that the new instruction can
be parsed, decoded, etc:

wat to 1.0.27
wast to 26.0.1
wasmparser to 0.65.0
wasmprinter to 0.2.12

The changes are straightforward:

There is no testcase in this commit, because that is a separate repo. The
implementation has been tested, nevertheless.

<!--

Please ensure that the following steps are all taken care of before submitting
the PR.

Please ensure all communication adheres to the code of conduct.
-->

view this post on Zulip Wasmtime GitHub notifications bot (Nov 03 2020 at 12:17):

akirilov-arm submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Nov 03 2020 at 12:40):

julian-seward1 updated PR #2327 from arm64-simd-dotmul to main:

This patch implements, for aarch64, the following wasm SIMD extensions

i32x4.dot_i16x8_s instruction
https://github.com/WebAssembly/simd/pull/127

It also updates dependencies as follows, in order that the new instruction can
be parsed, decoded, etc:

wat to 1.0.27
wast to 26.0.1
wasmparser to 0.65.0
wasmprinter to 0.2.12

The changes are straightforward:

There is no testcase in this commit, because that is a separate repo. The
implementation has been tested, nevertheless.

<!--

Please ensure that the following steps are all taken care of before submitting
the PR.

Please ensure all communication adheres to the code of conduct.
-->

view this post on Zulip Wasmtime GitHub notifications bot (Nov 03 2020 at 13:25):

julian-seward1 merged PR #2327.


Last updated: Dec 23 2024 at 12:05 UTC