-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
winch(aarch64): Improve 32-bit {s,u}div #9766
Comments
I'm not aware of any reasons why we couldn't add 32-bit variants of the (Incidentally, x86-64 has 32-bit divides too; and on both architectures I'd expect that high-performance implementations would probably take ~half the latency for a 32-bit version; so not a small win for any benchmark with a divide in a critical path.) |
Subscribe to Label Action
This issue or pull request has been labeled: "winch"
Thus the following users have been cc'd because of the following labels:
To subscribe or unsubscribe from this label, edit the |
I'd like to take a stab at that after I'm done with winch. Any guidance on how I should tackle that? |
One approach could be to take a look at how similar instructions have been added in the past e.g., #8453 |
While reviewing #9762, I realized that in the case of 32-bit operands a sign-extension is required given that
cranelift-codegen
, only accepts 64-bit operands.The ARM64 documentation states 1, 2 that 32-bit operands for division are allowed.
Introducing support for 32-bit operands means that in Winch we can skip the extension sequence when dealing with 32-bit operands.
As a side note, it seems that when migrating to ISLE the intention was to add support for 32-bit operands.
cc @alexcrichton / @cfallin I'm not entirely familiar with the development history of the Aarch64 backend, is there any other reason to be aware of when considering support for 32-bit operands?
The text was updated successfully, but these errors were encountered: