Stream: git-wasmtime

Topic: wasmtime / PR #14006 cranelift(x64): add the EVEX AVX512-...


view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 07:39):

darmie opened PR #14006 from darmie:x64-vpdpbusd-evex to bytecodealliance:main:

Follow-up to #13964 (VEX AVX-VNNI vpdpbusd). Adds the EVEX-encoded form so the same u8×i8 dot-accumulate fold also fires on hosts with AVX512-VNNI but no VEX AVX-VNNI (e.g. Ice Lake, Cascade Lake, Tiger Lake).

Adds vpdpbusd (EVEX.128.66.0F38.W0 50 /r) in the assembler-x64 DSL, a has_avx512vnni ISA flag with host detection, and a lowering rule at priority 7 that emits the EVEX form when the target has AVX512-VNNI + AVX512-VL. The existing VEX rule (priority 8) stays preferred when a host has both. has_avx512vnni is added to the cascadelake and icelake presets (propagating to cooperlake / icelake-server / tigerlake / sapphirerapids / graniterapids).

As in #13964, the new ISA flag also gets its has_avx512vnni arm in wasmtime's host-detect tables (engine.rs / config.rs) so serialized-module compatibility checks handle it.

Tested with a compile filetest (the target sets avx512vnni but not avx_vnni, so only the EVEX rule can fire) and an EVEX test run added to the shared runtest, executed under the Intel-SDE CI job on emulated AVX512-VNNI. VEX.128 / EVEX.128 only; 256-bit is a follow-up.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 07:39):

darmie requested cfallin for a review on PR #14006.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 07:39):

darmie requested wasmtime-compiler-reviewers for a review on PR #14006.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 07:39):

darmie requested wasmtime-core-reviewers for a review on PR #14006.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 09:34):

github-actions[bot] added the label cranelift on PR #14006.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 09:34):

github-actions[bot] added the label cranelift:meta on PR #14006.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 09:34):

github-actions[bot] added the label cranelift:area:x64 on PR #14006.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 09:34):

github-actions[bot] added the label isle on PR #14006.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 09:34):

github-actions[bot] added the label wasmtime:config on PR #14006.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 09:34):

github-actions[bot] added the label wasmtime:api on PR #14006.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 10:34):

github-actions[bot] commented on PR #14006:

Subscribe to Label Action

cc @cfallin, @fitzgen

<details>
This issue or pull request has been labeled: "cranelift", "cranelift:area:x64", "cranelift:meta", "isle", "wasmtime:api", "wasmtime:config"

Thus the following users have been cc'd because of the following labels:

To subscribe or unsubscribe from this label, edit the <code>.github/subscribe-to-label.json</code> configuration file.

Learn more.
</details>

view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 11:27):

github-actions[bot] commented on PR #14006:

Label Messager: wasmtime:config

It looks like you are changing Wasmtime's configuration options. Make sure to
complete this check list:

[fuzzing-config]: https://github.com/bytecodealliance/wasmtime/blob/ca0e8d0a1d8cefc0496dba2f77a670571d8fdcab/crates/fuzzing/src/generators.rs#L182-L194
[fuzzing-docs]: https://docs.wasmtime.dev/contributing-fuzzing.html


<details>

To modify this label's message, edit the <code>.github/label-messager/wasmtime-config.md</code> file.

To add new label messages or remove existing label messages, edit the
<code>.github/label-messager.json</code> configuration file.

Learn more.

</details>

view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 11:35):

darmie commented on PR #14006:

Similar to #13964

This PR doesn't add or change any public Config method or configuration option. The config.rs and engine.rs edits are internal host-feature-detection plumbing (detect_host_feature, and the flag→feature-name map in check_compatible_with_native_host), required whenever a new Cranelift x86 ISA setting is added (here has_avx_vnni) so a serialized module's ISA flags can be checked against the host at load time.

Testing the new lowering: the vpdpbusd fold has a compile filetest (isa/x64/simd-vpdpbusd.clif) and an executed runtest (runtests/simd-vpdpbusd.clif), including a b > 127 case so the unsigned reading is observable; the runtest runs under the Intel-SDE CI job on emulated AVX-VNNI. One thing worth flagging directly: the assembler-x64 fuzz roundtrip skips vpdpbusd, because the bundled capstone (0.14) doesn't disassemble AVX-VNNI and so has no reference to compare against; the encoding is instead verified by that executed runtest.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 14:33):

:thumbs_up: cfallin submitted PR review:

Thanks!

view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 14:33):

cfallin added PR #14006 cranelift(x64): add the EVEX AVX512-VNNI vpdpbusd form to the merge queue.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 14:59):

:check: cfallin merged PR #14006.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 28 2026 at 14:59):

cfallin removed PR #14006 cranelift(x64): add the EVEX AVX512-VNNI vpdpbusd form from the merge queue.


Last updated: Jul 29 2026 at 05:03 UTC