alexcrichton opened PR #9215 from alexcrichton:more-mul-opts
to bytecodealliance:main
:
This commits adds support for more patterns of improved 128-bit
multiplication to the various backends of Cranelift. Notably:
Using
isplit
to discard the lower bits of a multiplication maps
directly to instructions on aarch64 and riscv64.Multiplying sign-extended 64-bit halves maps directly to supported
instructions on s390x/riscv64/aarch64 (x86_64 already has these
implemented).This relies on adding a new method to test whether a
Value
is dead and
unused during lowering. While generally not useful this is applicable
for multi-result instructions such asisplit
where one result may end
up not being used. This also is required because the egraph
optimizations can't currently handle multi-result instructions like
isplit
so this can't be optimized toumulhi
orsmulhi
in CLIF.
alexcrichton requested abrown for a review on PR #9215.
alexcrichton requested wasmtime-compiler-reviewers for a review on PR #9215.
abrown submitted PR review.
abrown merged PR #9215.
Last updated: Nov 22 2024 at 16:03 UTC