This is an archive of the discontinued LLVM Phabricator instance.

[CodeGen] Add Pre-commit tests for D146988
ClosedPublic

Authored by igor.kirillov on Apr 5 2023, 1:51 PM.

Diff Detail

Event Timeline

igor.kirillov created this revision.Apr 5 2023, 1:51 PM
Herald added a project: Restricted Project. · View Herald TranscriptApr 5 2023, 1:51 PM
igor.kirillov requested review of this revision.Apr 5 2023, 1:51 PM
Herald added a project: Restricted Project. · View Herald TranscriptApr 5 2023, 1:51 PM
igor.kirillov added inline comments.Apr 5 2023, 1:59 PM
llvm/test/CodeGen/AArch64/complex-deinterleaving-multiuses.ll
116

Am I correct that we still want to deinterleave in case shufflevectors have external uses?

Update old and add new test.

dmgreen added a subscriber: dmgreen.Apr 6 2023, 8:58 AM

Thanks. Can you also add a testcase based on multiple_muls_shuffle_external where it passes in pointers and loads the data, as opposed to passing in vectors. The idea is that pattern of load+shuffle turning into ld2 is going to be very common from where these are generated. It is good to test both if we are making cost-model like decisions.

Otherwise this LGTM.

llvm/test/CodeGen/AArch64/complex-deinterleaving-multiuses.ll
116

I think we want the fastest code :) Which is usually the smallest but can depend on the exact instructions. I worry that it might depend on whether the shuffle will be folded into a ld2 or needs to be emitted anyway. Which may mean it needs to look at the shuffles operands to check whether it looks like they can be ignored or not.

Add one more test to show extra ld2 is not generated for load -> shuffle instructions

igor.kirillov marked an inline comment as done.Apr 6 2023, 1:32 PM
igor.kirillov added inline comments.
llvm/test/CodeGen/AArch64/complex-deinterleaving-multiuses.ll
116

Done - see multiple_muls_shuffle_external_with_loads

dmgreen accepted this revision.Apr 9 2023, 8:07 AM

Thanks. LGTM

This revision is now accepted and ready to land.Apr 9 2023, 8:07 AM
This revision was landed with ongoing or failed builds.Apr 11 2023, 4:48 AM
This revision was automatically updated to reflect the committed changes.
igor.kirillov marked an inline comment as done.