This is an archive of the discontinued LLVM Phabricator instance.

[Power9] Add support for stxvw4x.be and stxvd2x.be intrinsics
ClosedPublic

Authored by syzaara on Oct 23 2018, 8:27 AM.

Details

Summary

On Power9, we currently don't have pattern to select the following intrinsics:
llvm.ppc.vsx.stxvw4x.be
llvm.ppc.vsx.stxvd2x.be

The patterns already exist but are guarded by HasOnlySwappingMemOps, which is not set for Power9.
Moved patterns down to be with int_ppc_vsx_lxvw4x_be, int_ppc_vsx_lxvd2x_be which aren't guarded for Power9.

Diff Detail

Repository
rL LLVM

Event Timeline

syzaara created this revision.Oct 23 2018, 8:27 AM
nemanjai accepted this revision.Nov 2 2018, 11:51 AM

The test case fix can be done on the commit. Approving this now.

llvm/test/CodeGen/PowerPC/vsx_builtins.ll
11 ↗(On Diff #170651)

Well, it is key with this implementation that we do not emit a swap after this. So you should either use update_llc_checks.py to check for the specific sequence of instructions (which I think makes the most sense) or add CHECK-NOT:'s for xxswapd.

This revision is now accepted and ready to land.Nov 2 2018, 11:51 AM
This revision was automatically updated to reflect the committed changes.