This PR adds support for merging {s,u}extend instructions into a preceding load.
RISC-V doesn't have sinkable loads per se, but the regular load instructions sign / zero extend the loaded values by default. So here we model that by pretending that that is a sinkable load on an extend instruction.
This PR is also a part of #6056. I'm working on that, the first step is to support generating the same code with load+extend on all backends as we currently do with the specialized {u,s}loadNN instructions.
This issue or pull request has been labeled: "cranelift", "cranelift:area:riscv64", "isle"
Thus the following users have been cc'd because of the following labels:
* cfallin: isle
* fitzgen: isle
To subscribe or unsubscribe from this label, edit the .github/subscribe-to-label.json configuration file.
[Learn more.](https://github.com/bytecodealliance/subscribe-to-label-action)
👋 Hey,
This PR adds support for merging
{s,u}extend
instructions into a precedingload
.RISC-V doesn't have sinkable loads per se, but the regular load instructions sign / zero extend the loaded values by default. So here we model that by pretending that that is a sinkable load on an extend instruction.
This PR is also a part of #6056. I'm working on that, the first step is to support generating the same code with
load+extend
on all backends as we currently do with the specialized{u,s}loadNN
instructions.