[llvm] 588115c - [SLP][NFC]Add a check for SelectInst to match description, NFC.
Alexey Bataev via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 31 13:05:04 PDT 2022
Author: Alexey Bataev
Date: 2022-08-31T13:04:21-07:00
New Revision: 588115c117fb5f746f595e182fd671ebe141f51e
URL: https://github.com/llvm/llvm-project/commit/588115c117fb5f746f595e182fd671ebe141f51e
DIFF: https://github.com/llvm/llvm-project/commit/588115c117fb5f746f595e182fd671ebe141f51e.diff
LOG: [SLP][NFC]Add a check for SelectInst to match description, NFC.
Added:
Modified:
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 265eac59cd6d..0ca276ef35dd 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -10555,8 +10555,8 @@ class HorizontalReduction {
// select x, y, false
// select x, true, y
static bool isBoolLogicOp(Instruction *I) {
- return match(I, m_LogicalAnd(m_Value(), m_Value())) ||
- match(I, m_LogicalOr(m_Value(), m_Value()));
+ return isa<SelectInst>(I) &&
+ (match(I, m_LogicalAnd()) || match(I, m_LogicalOr()));
}
/// Checks if instruction is associative and can be vectorized.
@@ -10782,7 +10782,7 @@ class HorizontalReduction {
/// Checks if the instruction is in basic block \p BB.
/// For a cmp+sel min/max reduction check that both ops are in \p BB.
static bool hasSameParent(Instruction *I, BasicBlock *BB) {
- if (isCmpSelMinMax(I) || (isBoolLogicOp(I) && isa<SelectInst>(I))) {
+ if (isCmpSelMinMax(I) || isBoolLogicOp(I)) {
auto *Sel = cast<SelectInst>(I);
auto *Cmp = dyn_cast<Instruction>(Sel->getCondition());
return Sel->getParent() == BB && Cmp && Cmp->getParent() == BB;
@@ -11304,7 +11304,7 @@ class HorizontalReduction {
// To prevent poison from leaking across what used to be sequential,
// safe, scalar boolean logic operations, the reduction operand must be
// frozen.
- if (isa<SelectInst>(RdxRootInst) && isBoolLogicOp(RdxRootInst))
+ if (isBoolLogicOp(RdxRootInst))
VectorizedRoot = Builder.CreateFreeze(VectorizedRoot);
Value *ReducedSubTree =
More information about the llvm-commits
mailing list