File tree Expand file tree Collapse file tree 1 file changed +8
-8
lines changed
llvm/lib/Transforms/Vectorize Expand file tree Collapse file tree 1 file changed +8
-8
lines changed Original file line number Diff line number Diff line change @@ -1802,18 +1802,18 @@ void VPReductionRecipe::execute(VPTransformState &State) {
18021802 (Instruction::BinaryOps)RdxDesc.getOpcode (Kind), PrevInChain,
18031803 NewVecOp);
18041804 PrevInChain = NewRed;
1805+ NextInChain = NewRed;
18051806 } else {
18061807 PrevInChain = State.get (getChainOp (), Part, /* IsScalar*/ true );
18071808 NewRed = createTargetReduction (State.Builder , RdxDesc, NewVecOp);
1809+ if (RecurrenceDescriptor::isMinMaxRecurrenceKind (Kind))
1810+ NextInChain = createMinMaxOp (State.Builder , RdxDesc.getRecurrenceKind (),
1811+ NewRed, PrevInChain);
1812+ else
1813+ NextInChain = State.Builder .CreateBinOp (
1814+ (Instruction::BinaryOps)RdxDesc.getOpcode (Kind), NewRed,
1815+ PrevInChain);
18081816 }
1809- if (RecurrenceDescriptor::isMinMaxRecurrenceKind (Kind)) {
1810- NextInChain = createMinMaxOp (State.Builder , RdxDesc.getRecurrenceKind (),
1811- NewRed, PrevInChain);
1812- } else if (IsOrdered)
1813- NextInChain = NewRed;
1814- else
1815- NextInChain = State.Builder .CreateBinOp (
1816- (Instruction::BinaryOps)RdxDesc.getOpcode (Kind), NewRed, PrevInChain);
18171817 State.set (this , NextInChain, Part, /* IsScalar*/ true );
18181818 }
18191819}
You can’t perform that action at this time.
0 commit comments