diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp index 8965a44ffd2ba..390b71e7a46b9 100644 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -7137,8 +7137,9 @@ class HorizontalReduction { Type *ScalarTy = FirstReducedVal->getType(); auto *VecTy = FixedVectorType::get(ScalarTy, ReduxWidth); + RecurKind Kind = RdxTreeInst.getKind(); int SplittingRdxCost; - switch (RdxTreeInst.getKind()) { + switch (Kind) { case RecurKind::Add: case RecurKind::Mul: case RecurKind::Or: @@ -7155,7 +7156,6 @@ class HorizontalReduction { case RecurKind::UMax: case RecurKind::UMin: { auto *VecCondTy = cast(CmpInst::makeCmpResultType(VecTy)); - RecurKind Kind = RdxTreeInst.getKind(); bool IsUnsigned = Kind == RecurKind::UMax || Kind == RecurKind::UMin; SplittingRdxCost = TTI->getMinMaxReductionCost(VecTy, VecCondTy, @@ -7167,7 +7167,7 @@ class HorizontalReduction { } int ScalarReduxCost = 0; - switch (RdxTreeInst.getKind()) { + switch (Kind) { case RecurKind::Add: case RecurKind::Mul: case RecurKind::Or: