[llvm] expandFMINIMUMNUM_FMAXIMUMNUM: Improve compare between zeros (PR #140193)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 3 12:26:32 PST 2025
================
@@ -8866,13 +8867,19 @@ SDValue TargetLowering::expandFMINIMUMNUM_FMAXIMUMNUM(SDNode *Node,
DAG.getTargetConstant(IsMax ? fcPosZero : fcNegZero, DL, MVT::i32);
SDValue IsZero = DAG.getSetCC(DL, CCVT, MinMax,
DAG.getConstantFP(0.0, DL, VT), ISD::SETEQ);
- SDValue LCmp = DAG.getSelect(
- DL, VT, DAG.getNode(ISD::IS_FPCLASS, DL, CCVT, LHS, TestZero), LHS,
+ EVT IntVT = VT.changeTypeToInteger();
+ EVT FloatVT = VT.changeElementType(MVT::f32);
+ SDValue LHSTrunc = LHS;
+ if (!isTypeLegal(IntVT) && !isOperationLegal(ISD::IS_FPCLASS, VT)) {
----------------
arsenm wrote:
This is a pretty x86 specific hack, for hacking around the DAG's annoying phased legalization.
https://github.com/llvm/llvm-project/pull/140193
More information about the llvm-commits
mailing list