This is an archive of the discontinued LLVM Phabricator instance.

[TTI][X86] Merge getInterleavedMemoryOpCostAVX2 into getInterleavedMemoryOpCost. NFC
ClosedPublic

Authored by RKSimon on Oct 14 2021, 10:22 AM.

Details

Summary

This a NFC refactor patch to merge the AVX2 interleaved cost handling back into the getInterleavedMemoryOpCost base method - while getInterleavedMemoryOpCostAVX512 uses instruction and patterns very specific to AVX512+, much of the costs analysis for AVX2 can be reused for all SSE targets.

This is the first step towards improving SSE and AVX1 costs that will reuse the relevant AVX2 costs by splitting some of the tables - for instance AVX1 has very similar costs for most vXi64/vXf64 interleave patterns and many sub-128bit vector costs are the same all the way down to SSE2 (or at least SSSE3).

Diff Detail

Event Timeline

RKSimon created this revision.Oct 14 2021, 10:22 AM
RKSimon requested review of this revision.Oct 14 2021, 10:22 AM
Herald added a project: Restricted Project. · View Herald TranscriptOct 14 2021, 10:22 AM

@lebedev.ri I'm not sure how much this is going to interfere with your current patches, particularly the gather/gap work? If you wish to commandeer this patch so you can get it merged without affecting your own work that'd be fine.

lebedev.ri accepted this revision.Oct 14 2021, 10:29 AM
This revision is now accepted and ready to land.Oct 14 2021, 10:29 AM

Thanks for the quick reply!

This revision was landed with ongoing or failed builds.Oct 14 2021, 10:46 AM
This revision was automatically updated to reflect the committed changes.