[PATCH] D59738: [SLPVectorizer] reorderInputsAccordingToOpcode - remove non-Instruction canonicalization

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Mar 23 11:26:09 PDT 2019


RKSimon created this revision.
RKSimon added reviewers: ABataev, dtemirbulatov.
Herald added subscribers: javed.absar, jholewinski.
Herald added a project: LLVM.

Remove attempts to commute non-Instructions to the LHS - the codegen changes appear to rely on chance more than anything else and also have a tendency to fight existing instcombine canonicalization which moves constants to the RHS of commutable binary ops.

This is prep work towards:
(a) reusing reorderInputsAccordingToOpcode for alt-shuffles and removing the similar reorderAltShuffleOperands
(b) improving reordering to optimized cases with commutable and non-commutable instructions to still find splat/consecutive ops.


Repository:
  rL LLVM

https://reviews.llvm.org/D59738

Files:
  lib/Transforms/Vectorize/SLPVectorizer.cpp
  test/Transforms/LoopVectorize/X86/metadata-enable.ll
  test/Transforms/SLPVectorizer/AArch64/ext-trunc.ll
  test/Transforms/SLPVectorizer/AArch64/gather-cost.ll
  test/Transforms/SLPVectorizer/AArch64/getelementptr.ll
  test/Transforms/SLPVectorizer/NVPTX/v2f16.ll
  test/Transforms/SLPVectorizer/X86/PR35628_2.ll
  test/Transforms/SLPVectorizer/X86/PR35777.ll
  test/Transforms/SLPVectorizer/X86/PR39774.ll
  test/Transforms/SLPVectorizer/X86/PR40310.ll
  test/Transforms/SLPVectorizer/X86/barriercall.ll
  test/Transforms/SLPVectorizer/X86/commutativity.ll
  test/Transforms/SLPVectorizer/X86/compare-reduce.ll
  test/Transforms/SLPVectorizer/X86/crash_cmpop.ll
  test/Transforms/SLPVectorizer/X86/crash_mandeltext.ll
  test/Transforms/SLPVectorizer/X86/crash_smallpt.ll
  test/Transforms/SLPVectorizer/X86/cross_block_slp.ll
  test/Transforms/SLPVectorizer/X86/cse.ll
  test/Transforms/SLPVectorizer/X86/cycle_dup.ll
  test/Transforms/SLPVectorizer/X86/external_user.ll
  test/Transforms/SLPVectorizer/X86/extract.ll
  test/Transforms/SLPVectorizer/X86/extractcost.ll
  test/Transforms/SLPVectorizer/X86/hoist.ll
  test/Transforms/SLPVectorizer/X86/horizontal.ll
  test/Transforms/SLPVectorizer/X86/in-tree-user.ll
  test/Transforms/SLPVectorizer/X86/insert-after-bundle.ll
  test/Transforms/SLPVectorizer/X86/insert-element-build-vector.ll
  test/Transforms/SLPVectorizer/X86/long_chains.ll
  test/Transforms/SLPVectorizer/X86/loopinvariant.ll
  test/Transforms/SLPVectorizer/X86/multi_block.ll
  test/Transforms/SLPVectorizer/X86/multi_user.ll
  test/Transforms/SLPVectorizer/X86/operandorder.ll
  test/Transforms/SLPVectorizer/X86/phi.ll
  test/Transforms/SLPVectorizer/X86/pr35497.ll
  test/Transforms/SLPVectorizer/X86/propagate_ir_flags.ll
  test/Transforms/SLPVectorizer/X86/reduction.ll
  test/Transforms/SLPVectorizer/X86/reduction_loads.ll
  test/Transforms/SLPVectorizer/X86/reorder_repeated_ops.ll
  test/Transforms/SLPVectorizer/X86/resched.ll
  test/Transforms/SLPVectorizer/X86/saxpy.ll
  test/Transforms/SLPVectorizer/X86/schedule-bundle.ll
  test/Transforms/SLPVectorizer/X86/simple-loop.ll
  test/Transforms/SLPVectorizer/X86/value-bug.ll
  test/Transforms/SLPVectorizer/X86/vect_copyable_in_binops.ll
  test/Transforms/SLPVectorizer/X86/vectorize-reorder-reuse.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D59738.192006.patch
Type: text/x-patch
Size: 94107 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190323/1cf139fc/attachment-0001.bin>


More information about the llvm-commits mailing list