This is an archive of the discontinued LLVM Phabricator instance.

[x86] allow peeking through an extract_subvector to find a splatted operand
ClosedPublic

Authored by spatel on Feb 20 2020, 9:15 AM.

Details

Summary

The motivating case is seen in "splat4_v8f32_load_store" and based on code in PR42024:
https://bugs.llvm.org/show_bug.cgi?id=42024
(I haven't stepped through the v8i32 sibling test yet to see why that diverged.)

There are other potential improvements visible like allowing scalarization or vector narrowing. My reading of AVX512 is still weak, so please have a close look at those diffs to make sure that's good.

Diff Detail

Event Timeline

spatel created this revision.Feb 20 2020, 9:15 AM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 20 2020, 9:15 AM
RKSimon accepted this revision.Feb 20 2020, 9:34 AM

LGTM - as a future tidyup we may want to investigate merging the subvector tracking code with the "findEltLoadSrc" code used by EltsFromConsecutiveLoads (please can you add a TODO for now?)

This revision is now accepted and ready to land.Feb 20 2020, 9:34 AM
This revision was automatically updated to reflect the committed changes.