[PATCH] D54267: [X86][SSE] Add lowerVectorShuffleAsByteRotateAndPermute (PR39387)

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 8 09:22:18 PST 2018


RKSimon created this revision.
RKSimon added reviewers: craig.topper, spatel, andreadb, lebedev.ri.

This patch adds the ability to use a PALIGNR to rotate a pair of inputs to select a range containing all the referenced elements, followed by a single input permute to put them in the right location.

The code works fine for 256 and 512-bit vectors as well (although its currently limited to in-line shuffles), but I'm seeing a number of regressions (mainly we'd prefer blend+permute in many cases) that need addressing before enabling on anything but v16i8.


Repository:
  rL LLVM

https://reviews.llvm.org/D54267

Files:
  lib/Target/X86/X86ISelLowering.cpp
  test/CodeGen/X86/insertelement-ones.ll
  test/CodeGen/X86/vector-shuffle-128-v16.ll
  test/CodeGen/X86/vector-shuffle-256-v32.ll
  test/CodeGen/X86/x86-interleaved-access.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D54267.173183.patch
Type: text/x-patch
Size: 33938 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181108/b6436b6d/attachment.bin>


More information about the llvm-commits mailing list