AArch64 SIMD: replace LoadSplat with pattern-matching on load+splat#2376
Merged
cfallin merged 2 commits intobytecodealliance:mainfrom Nov 17, 2020
Merged
AArch64 SIMD: replace LoadSplat with pattern-matching on load+splat#2376cfallin merged 2 commits intobytecodealliance:mainfrom
LoadSplat with pattern-matching on load+splat#2376cfallin merged 2 commits intobytecodealliance:mainfrom
Conversation
akirilov-arm
reviewed
Nov 7, 2020
abrown
reviewed
Nov 9, 2020
abrown
reviewed
Nov 9, 2020
764bee0 to
9f00ac5
Compare
akirilov-arm
approved these changes
Nov 10, 2020
Contributor
akirilov-arm
left a comment
There was a problem hiding this comment.
LGTM, but I haven't reviewed #2366 and I looked just at the AArch64 and common changes.
This was added as an incremental step to improve AArch64 code quality in PR bytecodealliance#2278. At the time, we did not have a way to pattern-match the load + splat opcode sequence that the relevant Wasm opcodes lowered to. However, now with PR bytecodealliance#2366, we can merge effectful instructions such as loads into other ops, and so we can do this pattern matching directly. The pattern-matching update will come in a subsequent commit.
Member
Author
|
@julian-seward1 would you be able to review this at at some point soon? It's blocking #2389 and I just had to invest some time to rebase it over some other changes; hoping to get it in to avoid chasing |
julian-seward1
approved these changes
Nov 17, 2020
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR uses the isel changes introduced in #2366 that allows loads to sink and merge with other operations in order to replace the
LoadSplatinstruction with more general pattern-matching.LoadSplatwas added as an incremental step to improve AArch64 code quality in #2278. At the time, we did not have a way to pattern-match the load + splat opcode sequence that the relevant Wasm opcodes lowered to. However, now with PR #2366, we can merge effectful instructions such as loads into other ops, and so we can do this pattern matching directly.PR includes commit from #2366 to allow simultaneous review/CI.
cc @julian-seward1 @akirilov-arm @abrown