-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Hoist vector slices using rewrite rules #7243
Conversation
This lets us add associative variants more easily, which are helpful in the work on staging strided loads.
correctness_intrinsics is giving me an infinite loop:
|
The Shuffle visitor wants to sink them
Turns out the shuffle visitor wants to sink extract_element calls, and extract_element counts as a degenerate slice_vector, so it was also being hoisted. I restricted my rewrite rules to non-degenerate slice_vectors |
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 pending green
Might be worth adding a comment about this on this above the rules. |
Any update on this PR? |
If the bots go green it's good to merge. Otherwise I'll need to make time to debug after the siggraph deadline. |
How risky do you think this is? Does it need a preflight test inside google? |
It's probably worth a preflight test. |
At least one failure inside google:
EDIT: the mismatched types are |
Seems like all of the rules need a check that the lanes of |
Good point, that's probably the issue. |
(re-requested review so this doesn't accidentally get merged yet) |
@steven-johnson Could you check inside Google again, when you have the chance? I think the bug you're seeing should be fixed now. |
will do |
Running check now. Does this PR need a test? |
Good point. I'll try to find time this afternoon to add a test for the improved hoisting and another one for the bug you found. |
Thanks for taking this over, AJ. |
Failures seem unrelated? One build failure and a mullapudi2016 issue (#7292). @steven-johnson is performance_inner_loop_parallel sometimes flaky? Or is that something I should investigate? |
Both of those are known to be flaky, unfortunately We need to track them down but they aren't related. |
Looks clean inside Google. |
* Hoist slices using rewrite rules This lets us add associative variants more easily, which are helpful in the work on staging strided loads. * Don't hoist extract_element shuffles The Shuffle visitor wants to sink them * Add some static asserts * Add explanatory comment on shuffle hoisting * Fix comment * add lanes predicate to slice hoisting * add vector slice hoisting test cases Co-authored-by: Steven Johnson <[email protected]> Co-authored-by: Alexander <[email protected]>
This lets us add associative variants more easily, which are helpful in the work on staging strided loads.