[PATCH] D26297: [AVX-512] Add support for lowering shuffles to VALIGND/VALIGNQ

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 3 23:21:03 PDT 2016


craig.topper created this revision.
craig.topper added reviewers: delena, RKSimon.
craig.topper added subscribers: llvm-commits, Farhana.

VALIGND and VALIGNQ are similar to PALIGNR but instead of working on a 128-bit lane they work on the entire vector register. This change leverages the shuffle rotate detection code used for PALIGNR to detect these cases.

For 128-bit vectors, we favor VALIGND/Q over PALIGNR so that we naturely match the vector element size in case the shuffle is part of a masked operation


https://reviews.llvm.org/D26297

Files:
  lib/Target/X86/X86ISelLowering.cpp
  test/CodeGen/X86/vector-shuffle-128-v2.ll
  test/CodeGen/X86/vector-shuffle-128-v4.ll
  test/CodeGen/X86/vector-shuffle-128-v8.ll
  test/CodeGen/X86/vector-shuffle-256-v4.ll
  test/CodeGen/X86/vector-shuffle-256-v8.ll
  test/CodeGen/X86/vector-shuffle-512-v16.ll
  test/CodeGen/X86/vector-shuffle-512-v8.ll
  test/CodeGen/X86/vector-shuffle-v1.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D26297.76911.patch
Type: text/x-patch
Size: 26038 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161104/b5bef671/attachment.bin>


More information about the llvm-commits mailing list