- User Since
- Jun 23 2020, 7:14 AM (41 w, 6 d)
Wed, Mar 24
It seems to be difficult to identify the remainder loop; Checking the llvm.loop.isvectorized attribute (like in ARMTargetTransformInfo) caused all gains to be negated, and caused a slight regression when compared to without this change. I've instead included a check for the llvm.loop.unroll.disable attribute, which was seen on the remainder loop IR. This check causes no difference to the benchmark numbers. (Though thinking about it now, that might be due to it being handled elsewhere, making this check redundant)
Mar 8 2021
I've done some more benchmarks with the provided suggestions;
Mar 4 2021
Feb 8 2021
Feb 5 2021
If this version is working that's great, but check it's still OK.
Feb 3 2021
just have a brief look if there are any meaningful codegen difference in e.g. TSVC/Searching-dbl/Searching-dbl.test.
Feb 2 2021
I don't think I would mind merging this with D95632 to keep things in one place; don't think separating brings much value in this case.
Abandoning this and combining it with D95631.
Jan 28 2021
Jan 18 2021
Jan 15 2021
Jan 14 2021
Jan 13 2021
Addressed comments; modifying checks and updating tests.
Jan 11 2021
Jan 8 2021
Jan 7 2021
Made the return value respect whether any operands are to be sunk.
Jan 6 2021
Addressed comments, updating the checks and tests
Jan 5 2021
Added test case for non-splat shuffles
Dec 31 2020
I can't see any issues with this, LGTM
Dec 18 2020
Fixed incorrect error-handling
Dec 16 2020
Addressed comments, and re-added a couple of "Unsupported combines" tests.
Dec 15 2020
Fixed formatting, and removed "Unsupported combines" tests as they were failing due to a separate issue (and contribute very little value to this patch)
Fixed broken commit
Dec 14 2020
Dec 8 2020
Addressed comments, and rebased on top of the changes in the parent revision.
Dec 7 2020
Fixed more formatting issues (that were apparently missed by clang-format before?)
Can you run clang-format on the patch to make it more readable?
Done, sorry about that (Guess I should have another look at my pre-commit hooks)
Dec 2 2020
Removed redundant/useless debug prints that were erroneously included in the patch.
Addressed comments, and changed to be more targeted. The rearrangement will only be performed if the pattern feeds into a mul instruction, and only if the type combination is valid for smull/umull folding.
Nov 11 2020
This looks like two separate patches to me.
Nov 3 2020
Nov 2 2020
This pattern isn't needed I don't think
Oct 29 2020
I appreciate that the history and context for this has been a bit obscured. Most of it can be gathered on the patch D83667
I think a MIR test would be better here.
Oct 26 2020
Looks nice to me. Is it worth adding mul (sext_inreg, sext i32) patterns too in case one operand is sext and the other is being masked? mul is commutative so I think it would only be two extra patterns, one for sext and one for zext.
Oct 22 2020
Oct 21 2020
Rebased atop changes to https://reviews.llvm.org/D88494
Oct 19 2020
I'm a little concerned IfConversion isn't really prepared to deal with the distinction here: in some cases, if conversion doesn't predicate all the instructions in the if-converted block.
Oct 12 2020
Do we really need the boolean to default to false? There are only two callers, as far as I can tell.
Sep 29 2020
Aug 14 2020
Looks like we've lost access to https://crbug.com/1114852, so can't access the build repro. Is this something you can sort out for us?
Aug 13 2020
Hi @akhuang, thanks for bringing this up.
Aug 10 2020
LGTM, if no one else has any issues.
Source changes look good to me, just a few test-related points to address.
Aug 3 2020
Addressed comments, and rebased to include D84653 (Which handles the IT-block instruction legality)
Jul 13 2020
Jul 2 2020
Jul 1 2020
Updates some comments. NFC when compared to prior diffs
Jun 26 2020
Addressing inline comments
Jun 24 2020
Reworded/improved summary, and included full patch context