Stream: git-wasmtime

Topic: wasmtime / issue #13178 Cranelift: how to express polynom...


view this post on Zulip Wasmtime GitHub notifications bot (Apr 23 2026 at 10:29):

mkschreder opened issue #13178:

How would one express something like NEON polynomial / crypto-ish integer mul (e.g. P8 vmul over GF(2^8)) in cranelift and how much of that can be mapped into what cranelift is able to emit on x86-64 target? Would this be done with multiple clif instructions somehow or is it better to just defer this to interpreted path?

view this post on Zulip Wasmtime GitHub notifications bot (Apr 23 2026 at 10:29):

mkschreder added the bug label to Issue #13178.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 23 2026 at 10:29):

mkschreder added the cranelift label to Issue #13178.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 23 2026 at 17:37):

cfallin commented on issue #13178:

Hi @mkschreder -- are you referring to specific NEON instructions? If we don't have a corresponding CLIF operator with a lowering, we'd have to either define that new CLIF operator, or define a lowering from a canonical subgraph of simpler operators that define the operation. Both are possible and fairly straightforward with our lowering-pattern language (ISLE).

It's more of a design/architecture question as to whether we add specific CLIF operators or not. We'd have to look at the specific operations, whether our targets have instructions for them, whether they can be decomposed, etc. We've tended to try to keep CLIF minimal where possible but a fundamentally new operation (e.g. carryless multiply or whatever) isn't out of the question.

All this to say: "it depends" and more details would help!


Last updated: May 03 2026 at 22:13 UTC