[PATCH] D15310: [X86][AVX] Fold loads + splats into broadcast instructions

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 7 14:47:00 PST 2015


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

On AVX and AVX2, BROADCAST instructions can load a scalar into all elements of a target vector.

This patch improves the lowering of 'splat' shuffles of a loaded vector into a broadcast - currently the lowering only works for cases where we are splatting the zero'th element, which is now generalised to any element.

Fix for PR23022

Repository:
  rL LLVM

http://reviews.llvm.org/D15310

Files:
  lib/Target/X86/X86ISelLowering.cpp
  test/CodeGen/X86/avx-splat.ll
  test/CodeGen/X86/avx-vbroadcast.ll
  test/CodeGen/X86/avx2-vbroadcast.ll
  test/CodeGen/X86/vector-shuffle-256-v4.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15310.42111.patch
Type: text/x-patch
Size: 15691 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151207/4043270b/attachment-0001.bin>


More information about the llvm-commits mailing list