-
Notifications
You must be signed in to change notification settings - Fork 12
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
[AIE2] Fix missing VST.SRS combine #172
Conversation
7448ba3
to
cd49311
Compare
e482762
to
9ecb860
Compare
if (getLoadStoreSize(StoreI) != 512 || | ||
ConcatOp->getOpcode() != AIE2::G_INTRINSIC || | ||
cast<GIntrinsic>(*ConcatOp).getIntrinsicID() != | ||
Intrinsic::aie2_concat_I512_I256) |
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'm wondering whether we would want to normalize this to G_CONCAT_VECTORS. Any way, having common pattern recognizer classes for these common glue patterns (e.g. CONCAT(vsz, vsz) -> vszx2) would really help readability, and be good candidates to have tablegen support for pattern matching.
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 agree, if we can solve this in PostLegalizer combiner I think the solution can be simpler. Something like:
X = CONCAT(SRS(A), SRS(B))
To something like:
X = SRS2(CONCAT(A, B))
And let Selector intact.
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.
That indeed seems to be a better way, but I'd rather not split the target-specific handling of intrinsics in one more place, and keep it solely here. I think we all agree the logic for selecting opcodes in this file isn't great, but hopefully we can table-gen-erate most of the logic at some point. Hopefully :)
9ecb860
to
68dc75b
Compare
f0455ca
to
89f6712
Compare
Hi @abhinay-anubola, I feel that we need to think in a common approach here. I identified similar case in DivAttributeBroadcasting_aie2_bf16_0:
I think the best here is to have a transparent way to handle those concat/regseq/bitcast among all operations. What do you think? |
c5797fc
to
5f025ff
Compare
5f025ff
to
72a06aa
Compare
This was solved by: #195 |
Combined into VST.SRS, if two 256-bit SRS are input to 512-bit STORE through CONCAT