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
Fix several bugs on Hexagon and some cleanup #5570
Conversation
@aankit-ca @pranavb-ca please take a look. |
Windows failure is unrelated |
@dsharletg For vmpa, I think we can simply change a01 to |
Rest LGTM |
I think we need to do the interleaving in hvx_128.ll, because the interleaving is different. Shuffle::make_interleave interleaves the vectors before splitting to native vector widths, while this implementation interleaves them after splitting to native vector widths. What do you think? |
I'm sorry. I meant changing a01 to Shuffle::make_concat({mpys[0].first, mpys[1].first}); for vmpa |
But I think the same problem applies. By doing Shuffle::make_concat, we concatenate the vectors before slicing to native vector widths. But we need to concatenate the two operands after slicing to native vector widths, which is what the runtime hvx_128.ll implementation does. |
Aah. Right. Yeah we will need to the concatenation in .ll |
Cool, thanks for confirming :) This is a tricky issue, I've had this bug before myself. |
This PR fixes bugs:
It also removes VtmpyGenerator. This has been disabled for a long time, and now we have VectorReduce. Additionally, I have a WIP pass in another branch that finds vector reductions in a target independent lowering pass. If we try to bring back automatic finding of stencil vector reductions, we should build it into that pass instead of fixing VtmpyGenerator.