[llvm] 196a080 - DAG: Handle fminnum_ieee/fmaxnum_ieee in basic legalization
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Tue May 28 11:33:25 PDT 2024
Author: Matt Arsenault
Date: 2024-05-28T20:31:17+02:00
New Revision: 196a0809822ba4ac0fc669a46cbacee8afbe36c2
URL: https://github.com/llvm/llvm-project/commit/196a0809822ba4ac0fc669a46cbacee8afbe36c2
DIFF: https://github.com/llvm/llvm-project/commit/196a0809822ba4ac0fc669a46cbacee8afbe36c2.diff
LOG: DAG: Handle fminnum_ieee/fmaxnum_ieee in basic legalization
Handle these in promote float and vector widening. Currently we happen
to avoid emitting these unless legal or custom. Avoids regression in
a future commit which wants to unconditionally emit these.
Added:
Modified:
llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
Removed:
################################################################################
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
index fc96ecdc66280..fb1424f75e097 100644
--- a/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
@@ -2488,6 +2488,8 @@ void DAGTypeLegalizer::PromoteFloatResult(SDNode *N, unsigned ResNo) {
case ISD::FMINIMUM:
case ISD::FMAXNUM:
case ISD::FMINNUM:
+ case ISD::FMAXNUM_IEEE:
+ case ISD::FMINNUM_IEEE:
case ISD::FMUL:
case ISD::FPOW:
case ISD::FREM:
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
index 40e621f0db220..14e8708fd3f38 100644
--- a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
@@ -4237,8 +4237,12 @@ void DAGTypeLegalizer::WidenVectorResult(SDNode *N, unsigned ResNo) {
case ISD::SHL: case ISD::VP_SHL:
case ISD::SRA: case ISD::VP_SRA:
case ISD::SRL: case ISD::VP_SRL:
- case ISD::FMINNUM: case ISD::VP_FMINNUM:
- case ISD::FMAXNUM: case ISD::VP_FMAXNUM:
+ case ISD::FMINNUM:
+ case ISD::FMINNUM_IEEE:
+ case ISD::VP_FMINNUM:
+ case ISD::FMAXNUM:
+ case ISD::FMAXNUM_IEEE:
+ case ISD::VP_FMAXNUM:
case ISD::FMINIMUM:
case ISD::VP_FMINIMUM:
case ISD::FMAXIMUM:
More information about the llvm-commits
mailing list