[llvm] 829f2f2 - [VectorCombine] Mark function as changed if shuffle is created.
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 1 13:40:03 PDT 2025
Author: Florian Hahn
Date: 2025-07-01T21:38:29+01:00
New Revision: 829f2f2448f53572d097420e0df0f62b11fa0417
URL: https://github.com/llvm/llvm-project/commit/829f2f2448f53572d097420e0df0f62b11fa0417
DIFF: https://github.com/llvm/llvm-project/commit/829f2f2448f53572d097420e0df0f62b11fa0417.diff
LOG: [VectorCombine] Mark function as changed if shuffle is created.
777d6b5de90b7e0 exposed a code path where a function is modified but not
marked accordingly. Make sure we return true from foldShuffleFromReductions
if only a shuffle has been inserted/replaced.
Should fix https://lab.llvm.org/buildbot/#/builders/187/builds/7578.
Added:
Modified:
llvm/lib/Transforms/Vectorize/VectorCombine.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Vectorize/VectorCombine.cpp b/llvm/lib/Transforms/Vectorize/VectorCombine.cpp
index 9a42ed20d6973..b2fced47b9527 100644
--- a/llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+++ b/llvm/lib/Transforms/Vectorize/VectorCombine.cpp
@@ -2979,17 +2979,20 @@ bool VectorCombine::foldShuffleFromReductions(Instruction &I) {
<< "\n");
LLVM_DEBUG(dbgs() << " OldCost: " << OldCost << " vs NewCost: " << NewCost
<< "\n");
+ bool MadeChanges = false;
if (NewCost < OldCost) {
Builder.SetInsertPoint(Shuffle);
Value *NewShuffle = Builder.CreateShuffleVector(
Shuffle->getOperand(0), Shuffle->getOperand(1), ConcatMask);
LLVM_DEBUG(dbgs() << "Created new shuffle: " << *NewShuffle << "\n");
replaceValue(*Shuffle, *NewShuffle);
+ MadeChanges = true;
}
// See if we can re-use foldSelectShuffle, getting it to reduce the size of
// the shuffle into a nicer order, as it can ignore the order of the shuffles.
- return foldSelectShuffle(*Shuffle, true);
+ MadeChanges |= foldSelectShuffle(*Shuffle, true);
+ return MadeChanges;
}
/// Determine if its more efficient to fold:
More information about the llvm-commits
mailing list