Skip to content

Commit 5b3ba43

Browse files
committed
Restructure createSimpleTargetReduction to match VP path [NFC]
Reduces code significantly, but more importantly makes it obvious that this variant matches the VP variant just below.
1 parent c25293c commit 5b3ba43

File tree

1 file changed

+7
-19
lines changed

1 file changed

+7
-19
lines changed

llvm/lib/Transforms/Utils/LoopUtils.cpp

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1212,37 +1212,25 @@ Value *llvm::createSimpleTargetReduction(IRBuilderBase &Builder, Value *Src,
12121212
auto *SrcVecEltTy = cast<VectorType>(Src->getType())->getElementType();
12131213
switch (RdxKind) {
12141214
case RecurKind::Add:
1215-
return Builder.CreateAddReduce(Src);
12161215
case RecurKind::Mul:
1217-
return Builder.CreateMulReduce(Src);
12181216
case RecurKind::And:
1219-
return Builder.CreateAndReduce(Src);
12201217
case RecurKind::Or:
1221-
return Builder.CreateOrReduce(Src);
12221218
case RecurKind::Xor:
1223-
return Builder.CreateXorReduce(Src);
1224-
case RecurKind::FMulAdd:
1225-
case RecurKind::FAdd:
1226-
return Builder.CreateFAddReduce(ConstantFP::getNegativeZero(SrcVecEltTy),
1227-
Src);
1228-
case RecurKind::FMul:
1229-
return Builder.CreateFMulReduce(ConstantFP::get(SrcVecEltTy, 1.0), Src);
12301219
case RecurKind::SMax:
1231-
return Builder.CreateIntMaxReduce(Src, true);
12321220
case RecurKind::SMin:
1233-
return Builder.CreateIntMinReduce(Src, true);
12341221
case RecurKind::UMax:
1235-
return Builder.CreateIntMaxReduce(Src, false);
12361222
case RecurKind::UMin:
1237-
return Builder.CreateIntMinReduce(Src, false);
12381223
case RecurKind::FMax:
1239-
return Builder.CreateFPMaxReduce(Src);
12401224
case RecurKind::FMin:
1241-
return Builder.CreateFPMinReduce(Src);
12421225
case RecurKind::FMinimum:
1243-
return Builder.CreateFPMinimumReduce(Src);
12441226
case RecurKind::FMaximum:
1245-
return Builder.CreateFPMaximumReduce(Src);
1227+
return Builder.CreateUnaryIntrinsic(getReductionIntrinsicID(RdxKind), Src);
1228+
case RecurKind::FMulAdd:
1229+
case RecurKind::FAdd:
1230+
return Builder.CreateFAddReduce(ConstantFP::getNegativeZero(SrcVecEltTy),
1231+
Src);
1232+
case RecurKind::FMul:
1233+
return Builder.CreateFMulReduce(ConstantFP::get(SrcVecEltTy, 1.0), Src);
12461234
default:
12471235
llvm_unreachable("Unhandled opcode");
12481236
}

0 commit comments

Comments
 (0)