[PATCH] D22859: [X86][SSE] Enable target shuffle combining to combine multiple shuffle inputs.

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 27 06:24:00 PDT 2016


RKSimon created this revision.
RKSimon added reviewers: chandlerc, delena, ab, spatel, andreadb.
RKSimon added a subscriber: llvm-commits.
RKSimon set the repository for this revision to rL LLVM.

We currently only support combining target shuffles that consist of a single source input (plus elements known to be undef/zero).

This patch generalizes the recursive combining of the target shuffle to collect all the inputs, merging any duplicates along the way, into a full set of src ops and its shuffle mask.

We uncover a number of cases where we have failed to combine a unary shuffle because the input has been duplicated and separated during lowering.

This will allow us to combine to 2-input shuffles in a future patch.

Repository:
  rL LLVM

https://reviews.llvm.org/D22859

Files:
  lib/Target/X86/X86ISelLowering.cpp
  test/CodeGen/X86/avx512-build-vector.ll
  test/CodeGen/X86/clear_upper_vector_element_bits.ll
  test/CodeGen/X86/vector-shuffle-256-v16.ll
  test/CodeGen/X86/vector-shuffle-256-v32.ll
  test/CodeGen/X86/vector-shuffle-combining.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D22859.65719.patch
Type: text/x-patch
Size: 19852 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160727/5f0ae7cd/attachment.bin>


More information about the llvm-commits mailing list