[PATCH] D83245: [PowerPC][Power10] Exploit the xxsplti32dx instruction when lowering VECTOR_SHUFFLE.

Amy Kwan via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 6 11:17:47 PDT 2020


amyk created this revision.
amyk added reviewers: power-llvm-team, PowerPC, nemanjai, hfinkel.
amyk added a project: LLVM.
Herald added subscribers: shchenz, hiraditya.

This patch aims to exploit the `xxsplti32dx XT, IX, IMM32` instruction when lowering `VECTOR_SHUFFLE`s.

We implement `lowerToXXSPLTI32DX` when lowering vector shuffles to check if:

- Element size is 4 bytes
- The RHS is a constant vector (and constant splat of 4-bytes)
- The shuffle mask is a suitable mask for the XXSPLTI32DX instruction where it is one of the 32 masks:

  <0, 4-7, 2, 4-7>
  <4-7, 1, 4-7, 3>


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D83245

Files:
  llvm/lib/Target/PowerPC/PPCISelLowering.cpp
  llvm/lib/Target/PowerPC/PPCISelLowering.h
  llvm/lib/Target/PowerPC/PPCInstrPrefix.td
  llvm/test/CodeGen/PowerPC/p10-splatImm32.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D83245.275769.patch
Type: text/x-patch
Size: 10966 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200706/fa0c26c9/attachment.bin>


More information about the llvm-commits mailing list