This is an archive of the discontinued LLVM Phabricator instance.

[POWERPC][LE] prevent vxs load and store from expanding to lxvd2x/xxswapd and xxswapd/stxvd2x for aligned vectors
ClosedPublic

Authored by lei on Nov 18 2016, 9:16 AM.

Details

Summary

On power7/8 LE, prevent vxs load and store from expanding to lxvd2x/xxswapd and xxswapd/stxvd2x when vector is aligned with elements up to 4 bytes.

PR# 30730

Diff Detail

Repository
rL LLVM

Event Timeline

lei updated this revision to Diff 78537.Nov 18 2016, 9:16 AM
lei retitled this revision from to [POWERPC][LE] prevent vxs load and store from expanding to lxvd2x/xxswapd and xxswapd/stxvd2x for aligned vectors.
lei updated this object.
lei added subscribers: llvm-commits, echristo.
kbarton requested changes to this revision.Nov 18 2016, 11:12 AM
kbarton edited edge metadata.

The patterns for the int_ppc_vsx_lxvw4x and int_ppc_vsx_stxvw4x are still here.
These patterns should be intercepted and dealt with earlier, but if they are not they will match here and end up generating correct code. Can you please remove these patterns for LE. That way if they survive to this point, the program should fail to compile instead of generating incorrect code.

This revision now requires changes to proceed.Nov 18 2016, 11:12 AM
lei updated this revision to Diff 78855.Nov 22 2016, 5:28 AM
lei edited edge metadata.

Address kbarton's request to remove patterns for int_ppc_vsx_lxvw4x and int_ppc_vsx_stxvw4x for LE.

kbarton accepted this revision.Nov 22 2016, 10:49 AM
kbarton edited edge metadata.

LGTM

This revision is now accepted and ready to land.Nov 22 2016, 10:49 AM
nemanjai edited edge metadata.Nov 22 2016, 11:12 AM

Committed revision 287679.

lei closed this revision.Nov 24 2016, 12:24 PM
nemanjai reopened this revision.Nov 29 2016, 3:17 PM

I reverted this commit because it was causing some failures for Google. We will investigate once they produce a reduced test case but in the meantime, we were asked to revert this. Reopening the review until we get this resolved.
Revision for the revert:
Committed revision 288214.

This revision is now accepted and ready to land.Nov 29 2016, 3:17 PM
lei updated this revision to Diff 97092.Apr 28 2017, 7:18 AM

Rebase to trunk and update additional test case added.

This revision was automatically updated to reflect the committed changes.