theotherjimmy opened PR #12707 from theotherjimmy:z17-lxa to bytecodealliance:main:
Starting with Z17, s390x includes some specialized indexed address computation instruction that allow for computing addresses in a way that could map to finding an element within an array, skipping over a structure header of a constant size. While this does not also load the address, it is usually more efficient, at least in terms of code size, to use this newer load indexed address (lxa, llxa) instruction instead of expanded address computations using add instructions.
This is currently created as a draft, as I'm figuring out how to test this. I think testing is needed, as it's a specific sequence of IR instructions, and while I'm confident that I have them correct, it's better to be certain with testing.
alexcrichton commented on PR #12707:
cc @uweigand
github-actions[bot] added the label cranelift on PR #12707.
github-actions[bot] added the label isle on PR #12707.
github-actions[bot] commented on PR #12707:
Subscribe to Label Action
cc @cfallin, @fitzgen
<details>
This issue or pull request has been labeled: "cranelift", "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 <code>.github/subscribe-to-label.json</code> configuration file.
Learn more.
</details>
theotherjimmy updated PR #12707.
theotherjimmy updated PR #12707.
theotherjimmy commented on PR #12707:
Big refactor to avoid expanding the Inst enum. Still needs some runtests, and running said tests.
theotherjimmy updated PR #12707.
theotherjimmy commented on PR #12707:
I added rustfmt check to my auto-test script. Sorry I missed that earlier.
theotherjimmy updated PR #12707.
theotherjimmy commented on PR #12707:
I Wrote tests and verified with a Z17 system.
Last updated: Mar 23 2026 at 16:19 UTC