[PATCH] D12561: [X86][SSE] Match zero/any extension shuffles that don't start from the first element

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 2 10:17:04 PDT 2015


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

This patch generalizes the lowering of shuffles as zero extensions to allow extensions that don't start from the first element. It now recognises extensions starting anywhere in the lower 128-bits or at the start of any higher 128-bit lane.

The motivation was to reduce the number of high cost pshufb calls, but it also improves the SSE2 case as well.

Repository:
  rL LLVM

http://reviews.llvm.org/D12561

Files:
  lib/Target/X86/X86ISelLowering.cpp
  test/CodeGen/X86/machine-cp.ll
  test/CodeGen/X86/vec_cast2.ll
  test/CodeGen/X86/vec_int_to_fp.ll
  test/CodeGen/X86/vector-shuffle-256-v16.ll
  test/CodeGen/X86/vector-shuffle-256-v32.ll
  test/CodeGen/X86/vector-shuffle-sse4a.ll
  test/CodeGen/X86/vector-zext.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12561.33821.patch
Type: text/x-patch
Size: 51114 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150902/6b2105f3/attachment.bin>


More information about the llvm-commits mailing list