Skip to content

Commit 7100092

Browse files
committed
correct AnyOf opcode, nfc
1 parent 267e240 commit 7100092

File tree

2 files changed

+7
-10
lines changed

2 files changed

+7
-10
lines changed

llvm/lib/Analysis/IVDescriptors.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1154,6 +1154,8 @@ unsigned RecurrenceDescriptor::getOpcode(RecurKind Kind) {
11541154
return Instruction::Add;
11551155
case RecurKind::Mul:
11561156
return Instruction::Mul;
1157+
case RecurKind::IAnyOf:
1158+
case RecurKind::FAnyOf:
11571159
case RecurKind::Or:
11581160
return Instruction::Or;
11591161
case RecurKind::And:
@@ -1169,7 +1171,6 @@ unsigned RecurrenceDescriptor::getOpcode(RecurKind Kind) {
11691171
case RecurKind::SMin:
11701172
case RecurKind::UMax:
11711173
case RecurKind::UMin:
1172-
case RecurKind::IAnyOf:
11731174
case RecurKind::IFindLastIV:
11741175
return Instruction::ICmp;
11751176
case RecurKind::FMax:
@@ -1178,7 +1179,6 @@ unsigned RecurrenceDescriptor::getOpcode(RecurKind Kind) {
11781179
case RecurKind::FMinimum:
11791180
case RecurKind::FMaximumNum:
11801181
case RecurKind::FMinimumNum:
1181-
case RecurKind::FAnyOf:
11821182
case RecurKind::FFindLastIV:
11831183
return Instruction::FCmp;
11841184
default:

llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -678,10 +678,6 @@ Value *VPInstruction::generate(VPTransformState &State) {
678678
}
679679
// Reduce all of the unrolled parts into a single vector.
680680
Value *ReducedPartRdx = RdxParts[0];
681-
unsigned Op = RdxDesc.getOpcode();
682-
if (RecurrenceDescriptor::isAnyOfRecurrenceKind(RK))
683-
Op = Instruction::Or;
684-
685681
if (PhiR->isOrdered()) {
686682
ReducedPartRdx = RdxParts[UF - 1];
687683
} else {
@@ -690,11 +686,12 @@ Value *VPInstruction::generate(VPTransformState &State) {
690686
Builder.setFastMathFlags(RdxDesc.getFastMathFlags());
691687
for (unsigned Part = 1; Part < UF; ++Part) {
692688
Value *RdxPart = RdxParts[Part];
693-
if (Op != Instruction::ICmp && Op != Instruction::FCmp)
694-
ReducedPartRdx = Builder.CreateBinOp(
695-
(Instruction::BinaryOps)Op, RdxPart, ReducedPartRdx, "bin.rdx");
696-
else
689+
if (RecurrenceDescriptor::isMinMaxRecurrenceKind(RK))
697690
ReducedPartRdx = createMinMaxOp(Builder, RK, ReducedPartRdx, RdxPart);
691+
else
692+
ReducedPartRdx =
693+
Builder.CreateBinOp((Instruction::BinaryOps)RdxDesc.getOpcode(),
694+
RdxPart, ReducedPartRdx, "bin.rdx");
698695
}
699696
}
700697

0 commit comments

Comments
 (0)