[PATCH] [DagCombiner] Allow shuffles to merge through bitcasts

Simon Pilgrim llvm-dev at redking.me.uk
Fri Feb 27 07:23:57 PST 2015


Hi chandlerc, andreadb, qcolombet,

Currently shuffles may only be combined if they are of the same type, despite the fact that bitcasts are often introduced in between shuffle nodes (e.g. x86 shuffle type widening).

This patch allows a single input shuffle to peek through bitcasts and if the input is another shuffle will merge them, shuffling using the smallest sized type, and re-applying the bitcasts at the inputs and output instead.

Dropped old ShuffleToZext test - this patch removes the use of zext and vector-zext.ll covers these anyhow.

REPOSITORY
  rL LLVM

http://reviews.llvm.org/D7939

Files:
  lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  test/CodeGen/X86/2013-02-12-ShuffleToZext.ll
  test/CodeGen/X86/vector-shuffle-128-v16.ll
  test/CodeGen/X86/vector-shuffle-128-v2.ll
  test/CodeGen/X86/vector-shuffle-128-v4.ll
  test/CodeGen/X86/vector-shuffle-256-v4.ll
  test/CodeGen/X86/vector-shuffle-mmx.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7939.20853.patch
Type: text/x-patch
Size: 11650 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150227/fcccebf2/attachment.bin>


More information about the llvm-commits mailing list