[PATCH] D17680: [X86][SSE] Lower 128-bit MOVDDUP with existing VBROADCAST mechanisms

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Sat Feb 27 03:48:40 PST 2016


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

We have a number of useful lowering strategies for VBROADCAST instructions (both from memory and register element 0) which the 128-bit form of the MOVDDUP instruction can make use of.

This patch tweaks lowerVectorShuffleAsBroadcast to enable it to broadcast 2f64 args using MOVDDUP as well.

It does require a slight tweak to the lowerVectorShuffleAsBroadcast mechanism as the existing MOVDDUP lowering uses isShuffleEquivalent which can match binary shuffles that can lower to (unary) broadcasts.

Repository:
  rL LLVM

http://reviews.llvm.org/D17680

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/extractelement-load.ll
  test/CodeGen/X86/vec_extract-sse4.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17680.49293.patch
Type: text/x-patch
Size: 13016 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160227/edc2490d/attachment.bin>


More information about the llvm-commits mailing list