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?
mkschreder added the bug label to Issue #13178.
mkschreder added the cranelift label to Issue #13178.
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!
fitzgen closed 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?
fitzgen commented on issue #13178:
Issue was a question and OP has not responded to request for more clarification/info, so closing. Feel free to reopen if you are still running into uncertainties and need answers.
Last updated: Jun 01 2026 at 09:49 UTC