From 44d1dbd24c20a0ee93063dcf44d68e2b8f0bf77c Mon Sep 17 00:00:00 2001 From: Yingwei Zheng Date: Tue, 25 Feb 2025 22:03:17 +0800 Subject: [X86][DAGCombiner] Skip x87 fp80 values in `combineFMulOrFDivWithIntPow2` (#128618) f80 is not a valid IEEE floating-point type. Closes https://github.com/llvm/llvm-project/issues/128528. --- llvm/lib/Support/APFloat.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'llvm/lib/Support/APFloat.cpp') diff --git a/llvm/lib/Support/APFloat.cpp b/llvm/lib/Support/APFloat.cpp index b0d92ae..cbee7f4 100644 --- a/llvm/lib/Support/APFloat.cpp +++ b/llvm/lib/Support/APFloat.cpp @@ -353,6 +353,11 @@ bool APFloatBase::semanticsHasNaN(const fltSemantics &semantics) { return semantics.nonFiniteBehavior != fltNonfiniteBehavior::FiniteOnly; } +bool APFloatBase::isIEEELikeFP(const fltSemantics &semantics) { + // Keep in sync with Type::isIEEELikeFPTy + return SemanticsToEnum(semantics) <= S_IEEEquad; +} + bool APFloatBase::isRepresentableAsNormalIn(const fltSemantics &Src, const fltSemantics &Dst) { // Exponent range must be larger. -- cgit v1.1