[all-commits] [llvm/llvm-project] ded818: [VectorCombine] Try to reduce shuffle cost for com...

David Green via All-commits all-commits at lists.llvm.org
Thu Apr 28 11:46:26 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ded8187e353f7c6c5bb70239c07110eccc38a579
      https://github.com/llvm/llvm-project/commit/ded8187e353f7c6c5bb70239c07110eccc38a579
  Author: David Green <david.green at arm.com>
  Date:   2022-04-28 (Thu, 28 Apr 2022)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/test/Transforms/VectorCombine/AArch64/vecreduce-shuffle.ll

  Log Message:
  -----------
  [VectorCombine] Try to reduce shuffle cost for commutative reduction operands

Given a shuffle feeding a commutative reduction, the lane ordering of
the shuffle will not alter the result. This is also true if there are a
number of operations between the reduction and the shuffle, providing
they only operate lane-wise. This patch searches for cases like that in
Vector Combine, allowing us to check the cost of the shuffle vs an
in-order identity shuffle and replace the order if possible. This only
handles a single shuffle at the moment to keep things simple, and is
able to ignore splats that produce results where every result is the
same.

This is a more powerful version of a combine that already happens in
instrcombine, capable of optimizing more cases by looking through more
instructions and being able to cost the shuffle.

Differential Revision: https://reviews.llvm.org/D123494




More information about the All-commits mailing list