This patch modifies IncrementMemoryAddress to use a vscale
when calculating the new address if the data type is scalable.
Also adds tablegen patterns which match an extract_subvector
of a legal predicate type with zip1/zip2 instructions
Paths
| Differential D83137
[SVE][CodeGen] Legalisation of masked loads and stores ClosedPublic Authored by kmclaughlin on Jul 3 2020, 10:05 AM.
Details Summary This patch modifies IncrementMemoryAddress to use a vscale Also adds tablegen patterns which match an extract_subvector
Diff Detail Event TimelineComment Actions The patch overall looks good to me - just a question about the assert!
Comment Actions Changes to IncrementMemoryAddress:
kmclaughlin added inline comments.
This revision is now accepted and ready to land.Jul 10 2020, 12:25 AM
Comment Actions LGTM
Comment Actions Thanks for reviewing this patch, @efriedma & @david-arm
Closed by commit rG2762da0a16a7: [SVE][CodeGen] Legalisation of masked loads and stores (authored by kmclaughlin). · Explain WhyJul 16 2020, 2:57 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 276145 llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/test/CodeGen/AArch64/sve-split-load.ll
llvm/test/CodeGen/AArch64/sve-split-store.ll
|
Do we know if this is something we catch earlier and hence should never get here? I just wonder if here it's not really an assert that something went wrong with the code, but perhaps we just hit a case we don't support yet? If it's just because we don't support it yet, instead of asserting we could do:
if (DataVT.isScalableVector())