Skip to content

Commit ee237ab

Browse files
author
git apple-llvm automerger
committed
Merge commit '44231e459b4d' from apple/main into swift/next
2 parents 82cc78c + 44231e4 commit ee237ab

File tree

2 files changed

+453
-2
lines changed

2 files changed

+453
-2
lines changed

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1229,6 +1229,8 @@ void AArch64TargetLowering::addTypeForFixedLengthSVE(MVT VT) {
12291229
setOperationAction(ISD::UMAX, VT, Custom);
12301230
setOperationAction(ISD::UMIN, VT, Custom);
12311231
setOperationAction(ISD::VECREDUCE_ADD, VT, Custom);
1232+
setOperationAction(ISD::VECREDUCE_FMAX, VT, Custom);
1233+
setOperationAction(ISD::VECREDUCE_FMIN, VT, Custom);
12321234
setOperationAction(ISD::VECREDUCE_SMAX, VT, Custom);
12331235
setOperationAction(ISD::VECREDUCE_SMIN, VT, Custom);
12341236
setOperationAction(ISD::VECREDUCE_UMAX, VT, Custom);
@@ -9852,8 +9854,8 @@ SDValue AArch64TargetLowering::LowerVECREDUCE(SDValue Op,
98529854

98539855
// Try to lower fixed length reductions to SVE.
98549856
EVT SrcVT = Src.getValueType();
9855-
bool OverrideNEON = SrcVT.getVectorElementType() == MVT::i64 &&
9856-
Op.getOpcode() != ISD::VECREDUCE_ADD;
9857+
bool OverrideNEON = Op.getOpcode() != ISD::VECREDUCE_ADD &&
9858+
SrcVT.getVectorElementType() == MVT::i64;
98579859
if (useSVEForFixedLengthVectorVT(SrcVT, OverrideNEON)) {
98589860
switch (Op.getOpcode()) {
98599861
case ISD::VECREDUCE_ADD:
@@ -9866,6 +9868,10 @@ SDValue AArch64TargetLowering::LowerVECREDUCE(SDValue Op,
98669868
return LowerFixedLengthReductionToSVE(AArch64ISD::UMAXV_PRED, Op, DAG);
98679869
case ISD::VECREDUCE_UMIN:
98689870
return LowerFixedLengthReductionToSVE(AArch64ISD::UMINV_PRED, Op, DAG);
9871+
case ISD::VECREDUCE_FMAX:
9872+
return LowerFixedLengthReductionToSVE(AArch64ISD::FMAXNMV_PRED, Op, DAG);
9873+
case ISD::VECREDUCE_FMIN:
9874+
return LowerFixedLengthReductionToSVE(AArch64ISD::FMINNMV_PRED, Op, DAG);
98699875
default:
98709876
llvm_unreachable("Unhandled fixed length reduction");
98719877
}

0 commit comments

Comments
 (0)