[PATCH] [DAGCombiner] Combine shuffles of BUILD_VECTOR and SCALAR_TO_VECTOR

Simon Pilgrim llvm-dev at redking.me.uk
Sun Mar 22 07:10:56 PDT 2015


Hi qcolombet, chandlerc, andreadb, spatel,

This patch attempts to optimize the shuffling of 'scalar source' inputs - BUILD_VECTOR and SCALAR_TO_VECTOR nodes. This folds away a lot of unnecessary shuffle nodes, and allows quite a bit of constant folding that was being missed.

At the moment the inputs are only combined if they are only being used once - I'm interested in extending this so that constant inputs are always combined. It would create more constant data but would remove more shuffles (which may be introducing their own constant data for masks anyhow). Comments please.

Also removed a x86 insertps test that was testing for the old shuffle lowering system.

REPOSITORY
  rL LLVM

http://reviews.llvm.org/D8516

Files:
  lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  test/CodeGen/AArch64/arm64-neon-copy.ll
  test/CodeGen/AArch64/arm64-vshuffle.ll
  test/CodeGen/PowerPC/vperm-lowering.ll
  test/CodeGen/X86/mmx-bitcast.ll
  test/CodeGen/X86/sse41.ll
  test/CodeGen/X86/vec_insert-5.ll
  test/CodeGen/X86/vec_insert-mmx.ll
  test/CodeGen/X86/vec_zero_cse.ll
  test/CodeGen/X86/vector-shuffle-128-v16.ll
  test/CodeGen/X86/vector-shuffle-128-v8.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D8516.22419.patch
Type: text/x-patch
Size: 38484 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150322/5252d2b4/attachment.bin>


More information about the llvm-commits mailing list