HomePhabricator

[X86] EltsFromConsecutiveLoads - support common source loads (REAPPLIED)

Description

[X86] EltsFromConsecutiveLoads - support common source loads (REAPPLIED)

This patch enables us to find the source loads for each element, splitting them into a Load and ByteOffset, and attempts to recognise consecutive loads that are in fact from the same source load.

A helper function, findEltLoadSrc, recurses to find a LoadSDNode and determines the element's byte offset within it. When attempting to match consecutive loads, byte offsetted loads then attempt to matched against a previous load that has already been confirmed to be a consecutive match.

Next step towards PR16739 - after this we just need to account for shuffling/repeated elements to create a vector load + shuffle.

Fixed out of bounds load assert identified in rL366501

Differential Revision: https://reviews.llvm.org/D64551

Details

Committed
RKSimonJul 22 2019, 5:44 AM
Differential Revision
D64551: [X86] EltsFromConsecutiveLoads - support common source loads
Parents
rL366680: AMDGPU/GlobalISel: Fix tests without asserts
Branches
Unknown
Tags
Unknown