-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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: