[llvm] [SLP] NFC. Add hasState check. (PR #122443)
Han-Kuan Chen via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 10 04:03:46 PST 2025
https://github.com/HanKuanChen created https://github.com/llvm/llvm-project/pull/122443
None
>From 184736df58fce1a323d3e75c49cc46d6bbf0e7d9 Mon Sep 17 00:00:00 2001
From: Han-Kuan Chen <hankuan.chen at sifive.com>
Date: Fri, 10 Jan 2025 04:02:19 -0800
Subject: [PATCH] [SLP] NFC. Add hasState check.
---
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index cdfec332af37ab..a3ee90e6207c04 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -9877,6 +9877,7 @@ void BoUpSLP::transformNodes() {
buildTree_rec(Slice, 0, EdgeInfo(&E, UINT_MAX));
if (PrevSize + 1 == VectorizableTree.size() &&
VectorizableTree[PrevSize]->isGather() &&
+ VectorizableTree[PrevSize]->hasState() &&
VectorizableTree[PrevSize]->getOpcode() !=
Instruction::ExtractElement &&
!isSplat(Slice)) {
@@ -13576,9 +13577,11 @@ BoUpSLP::isGatherShuffledEntry(
if (!TE->UserTreeIndices.empty() &&
TE->UserTreeIndices.front().UserTE->isGather() &&
TE->UserTreeIndices.front().EdgeIdx == UINT_MAX) {
- assert((TE->Idx == 0 || TE->getOpcode() == Instruction::ExtractElement ||
- isSplat(TE->Scalars)) &&
- "Expected splat or extractelements only node.");
+ assert(
+ (TE->Idx == 0 ||
+ (TE->hasState() && TE->getOpcode() == Instruction::ExtractElement) ||
+ isSplat(TE->Scalars)) &&
+ "Expected splat or extractelements only node.");
return {};
}
unsigned SliceSize = getPartNumElems(VL.size(), NumParts);
More information about the llvm-commits
mailing list