[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