[llvm] f48026b - [DAG] canCreateUndefOrPoison - fmaxnum/fminnum/fmaximum/fminimum/fmaximumnum/fminimumnum don't create poison (#197195)
via llvm-commits
llvm-commits at lists.llvm.org
Tue May 12 08:02:21 PDT 2026
Author: Simon Pilgrim
Date: 2026-05-12T15:02:13Z
New Revision: f48026b10efe2c22cafda6f8def385b577ef8dd7
URL: https://github.com/llvm/llvm-project/commit/f48026b10efe2c22cafda6f8def385b577ef8dd7
DIFF: https://github.com/llvm/llvm-project/commit/f48026b10efe2c22cafda6f8def385b577ef8dd7.diff
LOG: [DAG] canCreateUndefOrPoison - fmaxnum/fminnum/fmaximum/fminimum/fmaximumnum/fminimumnum don't create poison (#197195)
Test coverage is proving tricky due to lack of folds that work with these - I'm open to suggestions if we don't want to just eyeball this.
Added:
Modified:
llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Removed:
################################################################################
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index f0b03b89ec1d9..9af378ec28868 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -5964,6 +5964,14 @@ bool SelectionDAG::canCreateUndefOrPoison(SDValue Op, const APInt &DemandedElts,
case ISD::FMAD:
case ISD::FMULADD:
case ISD::FP_EXTEND:
+ case ISD::FMINNUM:
+ case ISD::FMAXNUM:
+ case ISD::FMINNUM_IEEE:
+ case ISD::FMAXNUM_IEEE:
+ case ISD::FMINIMUM:
+ case ISD::FMAXIMUM:
+ case ISD::FMINIMUMNUM:
+ case ISD::FMAXIMUMNUM:
case ISD::FP_TO_SINT_SAT:
case ISD::FP_TO_UINT_SAT:
case ISD::TRUNCATE_SSAT_S:
More information about the llvm-commits
mailing list