-
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
AArch64 SIMD: replace LoadSplat
with pattern-matching on load+splat
#2376
Conversation
764bee0
to
9f00ac5
Compare
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.
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.
@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 |
This PR uses the isel changes introduced in #2366 that allows loads to sink and merge with other operations in order to replace the
LoadSplat
instruction with more general pattern-matching.LoadSplat
was 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