alexcrichton opened PR #3569 from isle-2-imul
to main
:
This commit migrates the
imul
clif instruction lowering for AArch64 to
ISLE. This is a relatively complicated instruction with lots of special
cases due to the simd proposal for wasm. Like x64, however, the special
casing lends itself to ISLE quite well and the lowerings here in theory
are pretty straightforward.The main gotcha of this commit is that this encounters a unique
situation which hasn't been encountered yet with other lowerings, namely
theUmlal32
instruction used in the implementation ofi64x2.mul
is
unique in theVecRRRLongOp
class of instructions in that it both reads
and writes the destination register (use_mod
instead of simply
use_def
). This meant that I needed to add another helper in ISLe for
creating avec_rrrr_long
instruction (despite this enum variant not
actually existing) which implicitly moves the first operand into the
destination before issuing the actualVecRRRLong
instruction.<!--
Please ensure that the following steps are all taken care of before submitting
the PR.
[ ] This has been discussed in issue #..., or if not, please tell us why
here.[ ] A short description of what this does, why it is needed; if the
description becomes long, the matter should probably be discussed in an issue
first.[ ] This PR contains test cases, if meaningful.
- [ ] A reviewer from the core maintainer team has been assigned for this PR.
If you don't know who could review this, please indicate so. The list of
suggested reviewers on the right can help you.Please ensure all communication adheres to the code of conduct.
-->
fitzgen submitted PR review.
fitzgen merged PR #3569.
Last updated: Nov 22 2024 at 17:03 UTC