[PATCH] D51750: Simply specific sequences involving XXSPLTW (ld->permute->splat, ld->splat)

Amy Kwan via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 6 13:55:12 PDT 2018


amyk created this revision.
amyk added reviewers: nemanjai, echristo, hfinkel.
Herald added a subscriber: hiraditya.

This patch includes a peephole optimization that involves simplifying specific sequences involving the `XXSPLTW` instruction.  Sequences simplified will differ and the transformation performed is dependent on if it is being done on https://reviews.llvm.org/P8 or https://reviews.llvm.org/P9.

For https://reviews.llvm.org/P9:

- `load -> permute (or a shift) -> xxspltw` will become `lxvwsx`
- `load -> xxspltw` will become `lxvwsx`

For https://reviews.llvm.org/P8:

- `load -> permute (or a shift) -> xxspltw` will become `load -> xxspltw`, ensuring that the correct element is splatted while removing the redundant permute instruction.


https://reviews.llvm.org/D51750

Files:
  llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
  llvm/test/CodeGen/PowerPC/VSX-XForm-Scalars.ll
  llvm/test/CodeGen/PowerPC/build-vector-tests.ll
  llvm/test/CodeGen/PowerPC/load-v4i8-improved.ll
  llvm/test/CodeGen/PowerPC/power9-moves-and-splats.ll
  llvm/test/CodeGen/PowerPC/qpx-load-splat.ll
  llvm/test/CodeGen/PowerPC/vsx.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D51750.164209.patch
Type: text/x-patch
Size: 23979 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180906/9444bb05/attachment.bin>


More information about the llvm-commits mailing list