This is an archive of the discontinued LLVM Phabricator instance.

TableGen/GlobalISel: Fix handling of truncstore patterns
ClosedPublic

Authored by arsenm on Jul 8 2019, 7:31 AM.

Details

Reviewers
dsanders
Summary

This was failing to import the AMDGPU truncstore patterns. The
truncating stores from 32-bit to 8/16 were then somehow being
incorrectly selected to a 4-byte store.

A separate check is emitted for the LLT size in comparison to the
specific memory VT, which looks strange to me but makes sense based on
the hierarchy of PatFrags used for the default truncstoree PatFrags.

Diff Detail

Event Timeline

arsenm created this revision.Jul 8 2019, 7:31 AM
dsanders accepted this revision.Jul 12 2019, 1:23 PM

LGTM. Eliding the GIM_CheckMemorySizeLessThanLLT when there's both a check on the MemorySize and the LLT can be added separately

This revision is now accepted and ready to land.Jul 12 2019, 1:23 PM
arsenm closed this revision.Jul 15 2019, 2:15 PM

r366129

Thanks for doing this Matt. This bug was blocking landing the power of 2 load/store legalization patch for arm64.