Added register + immediate and register + register addressing modes for the following intrinsics:
- Masked load and stores:
- Sign and zero extended load and truncated stores.
- No extension or truncation.
- Masked non-temporal load and store.
Differential D74254
[llvm][aarch64] SVE addressing modes. fpetrogalli on Feb 7 2020, 1:35 PM. Authored by
Details
Added register + immediate and register + register addressing modes for the following intrinsics:
Diff Detail
Event TimelineComment Actions The patch now covers all the LLVM intrinsic listed in the summary:
Comment Actions Hi @fpetrogalli, thank you for working on this.
Comment Actions @andwar , thank you for the review. I'll update the patch asap.
I see your point, but the tests that use merge and store at the same time are using exactly the same addressing modes, it is not that they are using something different. So if something fails in the addressing mode of the load, it fails in the addressing mode of the store. Having them merged together saves quite some typing, and has no disadvantages in term of unit testing.
Fair point, I'll remove the plus.
Very good point. The type redefinition saved me a lot of typing, but now that the tests are there it is better o remove it.
They are necessary for the reg+imm tests. They are needed to make sure that the ADD node of the base address is always in the format (ADD %BASE (VSCALE CONST)). I'll see if I can add some unit tests specifically for the combiner changes.
Comment Actions Address code review from @andwar. I have added the tests for the DAG Combine changes. Comment Actions I have uploaded PDF renderings of the DAGS before and after the changes. I am not sure the tests for the combiner are explicit about the fact that the combiner is run on this pattern, but the graphs attached here show the effect of my changes on the code. I think that some of the patterns that are needed to show the changes in the output code are missing. This comment was removed by fpetrogalli. Comment Actions Ah, I've realised that you split the files per addressing modes. As the name of the patch would suggest :-) OK, keep it as it is. Thank you for adding DAG diagrams - they are very helpful!
Comment Actions Thank you @adwar. I have addressed your comments. Your awk script was very useful.
Comment Actions Thanks for creating this patch @fpetrogalli!
Comment Actions I have extracted the DAGCombiner changes in a separate patch as
Comment Actions LGTM!
|
nit: This one is missing a comment.