-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Add support for Sve.Store() #102262
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
Merged
Merged
Add support for Sve.Store() #102262
Changes from 2 commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
5f0fe23
Add support for Sve.Store()
SwapnilGaikwad 9ed628f
Fix formatting issues
SwapnilGaikwad 23a8653
Merge main
SwapnilGaikwad 348421f
Remove incorrect instructions from comment
SwapnilGaikwad 4acdbc9
Merge main
SwapnilGaikwad 9d55cd4
Rename Sve.Store() -> Sve.StoreAndZip()
SwapnilGaikwad 7aa7eee
Refactor test templates
SwapnilGaikwad File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking at #102180 reminded me that we can do the following....
For
NI_Sve_Storeremove the Special Code Gen flag and this case statement. This will cause the generic code to callemitIns_R_R_R().You can now add a special case in
emitIns_R_R_R()so that forNI_Sve_Storeit just calls down toemitIns_R_R_R_I()with0for the immediate. Eg:runtime/src/coreclr/jit/emitarm64sve.cpp
Line 4377 in 692660e
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Curious...
NI_AdvSimd_StoreusesgtNewSimdStoreNode()which eventually gets generated ingenCodeForStoreInd(). This has extra code, for example, isvolatile checks.Meanwhile
NI_AdvSimd_StoreSelectedScalarimports like a normal hwintrinsic and gets generated inhwintrinsiccodegenarm64.cpp. This is the same for the various other stores.Is there a special reason for using
genCodeForStoreInd?Why do the other stores not use
genCodeForStoreInd?Should
NI_Sve_StoreusegenCodeForStoreInd?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will have to double check on this one. Opened #102347