This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][DAG] `canCombineShuffleToExtendVectorInreg()`: allow illegal types before legalization
Needs ReviewPublic

Authored by lebedev.ri on Dec 26 2022, 5:06 PM.

Details

Summary

[DAG] canCombineShuffleToExtendVectorInreg(): allow illegal types before legalization

This isn't all that interesting on itself, but this is a prerequisite
to get to the more interesting changes in a follow-up...

Diff Detail

Event Timeline

lebedev.ri created this revision.Dec 26 2022, 5:06 PM
lebedev.ri requested review of this revision.Dec 26 2022, 5:06 PM
lebedev.ri edited the summary of this revision. (Show Details)
lebedev.ri added a reviewer: RKSimon.
lebedev.ri added a subscriber: RKSimon.

Another batch of regressions gone.

(@RKSimon: this is the next patch after D140811, but ignore this one for now.)

fhahn added inline comments.Jan 2 2023, 10:44 AM
llvm/test/CodeGen/AArch64/fp-conversion-to-tbl.ll
452–457

I think this is not quite as clear cut as D140676, but I think this is still a regression over the original code where the constant-pool loads are outside the loop.

lebedev.ri added inline comments.Jan 2 2023, 10:47 AM
llvm/test/CodeGen/AArch64/fp-conversion-to-tbl.ll
452–457

I see. I'm still stomping out many many X86 regressions here,
and didn't look into this AArch64-one.
If someone else wants to, please feel free to do so?

lebedev.ri marked an inline comment as done.Jan 4 2023, 2:55 PM
lebedev.ri added inline comments.
llvm/test/CodeGen/AArch64/fp-conversion-to-tbl.ll
452–457

Looks like that regression has been resolved, but other changes appeared.

lebedev.ri added inline comments.Jan 4 2023, 3:07 PM
llvm/test/CodeGen/X86/zero_extend_vector_inreg.ll
2713–2714 ↗(On Diff #486403)

Looks like we lost UNDEF knowledge and can no longer eliminate these two redundant operations

2931 ↗(On Diff #486403)

Looks like we lost UNDEF knowledge and can no longer eliminate these two redundant operations

3147 ↗(On Diff #486403)

Looks like we lost UNDEF knowledge and can no longer eliminate these two redundant operations

3347 ↗(On Diff #486403)

Looks like we lost UNDEF knowledge and can no longer eliminate these two redundant operations

3361–3366 ↗(On Diff #486403)

Missing shuffle lowering strategy?

3703 ↗(On Diff #486403)

Looks like we lost UNDEF knowledge and can no longer eliminate these two redundant operations

4350–4353 ↗(On Diff #486403)

???

4370–4376 ↗(On Diff #486403)

???

4939 ↗(On Diff #486403)

Looks like we lost UNDEF knowledge and can no longer eliminate these two redundant operations